(krb5_parse_nametype): parse nametype and return their integer values.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@21254 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -1218,3 +1218,37 @@ krb5_sname_to_principal (krb5_context context, | |||||||
|     krb5_free_host_realm(context, realms); |     krb5_free_host_realm(context, realms); | ||||||
|     return ret; |     return ret; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | struct { | ||||||
|  |     const char *type; | ||||||
|  |     int32_t value; | ||||||
|  | } nametypes[] = { | ||||||
|  |     { "UNKNOWN", KRB5_NT_UNKNOWN }, | ||||||
|  |     { "PRINCIPAL", KRB5_NT_PRINCIPAL }, | ||||||
|  |     { "SRV_INST", KRB5_NT_SRV_INST }, | ||||||
|  |     { "SRV_HST", KRB5_NT_SRV_HST }, | ||||||
|  |     { "SRV_XHST", KRB5_NT_SRV_XHST }, | ||||||
|  |     { "UID", KRB5_NT_UID }, | ||||||
|  |     { "X500_PRINCIPAL", KRB5_NT_X500_PRINCIPAL }, | ||||||
|  |     { "SMTP_NAME", KRB5_NT_SMTP_NAME }, | ||||||
|  |     { "ENTERPRISE_PRINCIPAL", KRB5_NT_ENTERPRISE_PRINCIPAL }, | ||||||
|  |     { "ENT_PRINCIPAL_AND_ID", KRB5_NT_ENT_PRINCIPAL_AND_ID }, | ||||||
|  |     { "MS_PRINCIPAL", KRB5_NT_MS_PRINCIPAL }, | ||||||
|  |     { "MS_PRINCIPAL_AND_ID", KRB5_NT_MS_PRINCIPAL_AND_ID }, | ||||||
|  |     { NULL } | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | krb5_error_code | ||||||
|  | krb5_parse_nametype(krb5_context context, const char *str, int32_t *nametype) | ||||||
|  | { | ||||||
|  |     size_t i; | ||||||
|  |      | ||||||
|  |     for(i = 0; nametypes[i].type; i++) { | ||||||
|  | 	if (strcasecmp(nametypes[i].type, str) == 0) { | ||||||
|  | 	    *nametype = nametypes[i].value; | ||||||
|  | 	    return 0; | ||||||
|  | 	} | ||||||
|  |     } | ||||||
|  |     krb5_set_error_string(context, "Failed to find name type %s", str); | ||||||
|  |     return KRB5_PARSE_MALFORMED; | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Love Hörnquist Åstrand
					Love Hörnquist Åstrand