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 */ | ||||
| 	    ); | ||||
|  | ||||
| /* | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| 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 { | ||||
|     gss_OID option; | ||||
|     OM_uint32 flags; | ||||
| @@ -469,7 +476,7 @@ struct gss_mo_desc_struct { | ||||
| }; | ||||
|  | ||||
|  | ||||
| #define GMI_VERSION 4 | ||||
| #define GMI_VERSION 5 | ||||
|  | ||||
| /* gm_flags */ | ||||
| #define GM_USE_MG_CRED      	1	/* uses mech glue credentials */ | ||||
|   | ||||
| @@ -242,6 +242,8 @@ _gss_load_mech(void) | ||||
| 	rk_cloexec_file(fp); | ||||
|  | ||||
| 	while (fgets(buf, sizeof(buf), fp)) { | ||||
| 		_gss_mo_init *mi; | ||||
|  | ||||
| 		if (*buf == '#') | ||||
| 			continue; | ||||
| 		p = buf; | ||||
| @@ -350,6 +352,16 @@ _gss_load_mech(void) | ||||
| 		OPTSYM(map_name_to_any); | ||||
| 		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); | ||||
| 		continue; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Love Hornquist Astrand
					Love Hornquist Astrand