add _gss_mo_get_ctx_as_value
This commit is contained in:
		| @@ -54,7 +54,19 @@ _gss_mo_get_option_0(gss_const_OID mech, gss_mo_desc *mo, gss_buffer_t value) | ||||
|     return get_option_def(0, mech, mo, value); | ||||
| } | ||||
|  | ||||
| GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL | ||||
| int | ||||
| _gss_mo_get_ctx_as_value(gss_const_OID mech, gss_mo_desc *mo, gss_buffer_t value) | ||||
| { | ||||
|     if (value) { | ||||
| 	value->value = strdup((char *)mo->ctx); | ||||
| 	if (value->value == NULL) | ||||
| 	    return 1; | ||||
| 	value->length = strlen((char *)mo->ctx); | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| GSSAPI_LIB_FUNCTION int GSSAPI_LIB_CALL | ||||
| gss_mo_set(gss_const_OID mech, gss_const_OID option, | ||||
| 	   int enable, gss_buffer_t value) | ||||
| { | ||||
| @@ -70,7 +82,7 @@ gss_mo_set(gss_const_OID mech, gss_const_OID option, | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL | ||||
| GSSAPI_LIB_FUNCTION int GSSAPI_LIB_CALL | ||||
| gss_mo_get(gss_const_OID mech, gss_const_OID option, gss_buffer_t value) | ||||
| { | ||||
|     gssapi_mech_interface m; | ||||
| @@ -153,7 +165,10 @@ mo_name(const gss_const_OID mech, gss_const_OID option, gss_buffer_t name) | ||||
|     if (name == NULL) | ||||
| 	return GSS_S_COMPLETE; | ||||
|  | ||||
|     return gss_mo_name(mech, option, name); | ||||
|     if (gss_mo_get(mech, option, name) != 0 && value->length == 0) | ||||
| 	return GSS_S_FAILURE; | ||||
|  | ||||
|     return GSS_S_COMPLETE; | ||||
| } | ||||
|  | ||||
| /** | ||||
| @@ -225,7 +240,7 @@ gss_inquire_mech_for_saslname(OM_uint32 *minor_status, | ||||
|     *mech_type = NULL; | ||||
|  | ||||
|     SLIST_FOREACH(m, &_gss_mechs, gm_link) { | ||||
| 	major = gss_mo_name(&m->gm_mech_oid, GSS_MA_SASL_MECH_NAME, &name); | ||||
| 	major = mo_name(&m->gm_mech_oid, GSS_MA_SASL_MECH_NAME, &name); | ||||
| 	if (major) | ||||
| 	    continue; | ||||
| 	if (name.length == sasl_mech_name->length && | ||||
| @@ -342,6 +357,8 @@ gss_display_mech_attr(OM_uint32 * minor_status, | ||||
|     if (minor_status) | ||||
| 	*minor_status = 0; | ||||
|  | ||||
|     /* XXX check if the mech implements this, if it does, lets ask it for its idea first */ | ||||
|  | ||||
|     for (n = 0; ma == NULL && _gss_ont_ma[n].oid; n++) | ||||
| 	if (gss_oid_equal(mech_attr, _gss_ont_ma[n].oid)) | ||||
| 	    ma = &_gss_ont_ma[n]; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Love Hornquist Astrand
					Love Hornquist Astrand