Patch from Luke Howard to allow dynamic gss_mo
This commit is contained in:
@@ -454,9 +454,16 @@ typedef OM_uint32 GSSAPI_CALLCONV _gss_release_any_name_mapping_t (
|
|||||||
gss_any_t * /* input */
|
gss_any_t * /* input */
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
typedef struct gss_mo_desc_struct gss_mo_desc;
|
typedef struct gss_mo_desc_struct gss_mo_desc;
|
||||||
|
|
||||||
|
typedef OM_uint32 GSSAPI_CALLCONV
|
||||||
|
_gss_mo_init (OM_uint32 *, gss_OID, gss_mo_desc **, size_t *);
|
||||||
|
|
||||||
|
|
||||||
struct gss_mo_desc_struct {
|
struct gss_mo_desc_struct {
|
||||||
gss_OID option;
|
gss_OID option;
|
||||||
OM_uint32 flags;
|
OM_uint32 flags;
|
||||||
@@ -469,7 +476,7 @@ struct gss_mo_desc_struct {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#define GMI_VERSION 4
|
#define GMI_VERSION 5
|
||||||
|
|
||||||
/* gm_flags */
|
/* gm_flags */
|
||||||
#define GM_USE_MG_CRED 1 /* uses mech glue credentials */
|
#define GM_USE_MG_CRED 1 /* uses mech glue credentials */
|
||||||
|
@@ -242,6 +242,8 @@ _gss_load_mech(void)
|
|||||||
rk_cloexec_file(fp);
|
rk_cloexec_file(fp);
|
||||||
|
|
||||||
while (fgets(buf, sizeof(buf), fp)) {
|
while (fgets(buf, sizeof(buf), fp)) {
|
||||||
|
_gss_mo_init *mi;
|
||||||
|
|
||||||
if (*buf == '#')
|
if (*buf == '#')
|
||||||
continue;
|
continue;
|
||||||
p = buf;
|
p = buf;
|
||||||
@@ -350,6 +352,16 @@ _gss_load_mech(void)
|
|||||||
OPTSYM(map_name_to_any);
|
OPTSYM(map_name_to_any);
|
||||||
OPTSYM(release_any_name_mapping);
|
OPTSYM(release_any_name_mapping);
|
||||||
|
|
||||||
|
mi = dlsym(so, "gss_mo_init");
|
||||||
|
if (mi != NULL) {
|
||||||
|
major_status = mi(&minor_status,
|
||||||
|
&mech_oid,
|
||||||
|
&m->gm_mech.gm_mo,
|
||||||
|
&m->gm_mech.gm_mo_num);
|
||||||
|
if (GSS_ERROR(major_status))
|
||||||
|
goto bad;
|
||||||
|
}
|
||||||
|
|
||||||
HEIM_SLIST_INSERT_HEAD(&_gss_mechs, m, gm_link);
|
HEIM_SLIST_INSERT_HEAD(&_gss_mechs, m, gm_link);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user