(krb5_sname_to_principal): implement different nametypes. Also free
memory. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2797 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -528,11 +528,41 @@ krb5_sname_to_principal (krb5_context context, | ||||
|     if (ret) | ||||
| 	return ret; | ||||
|      | ||||
|     return krb5_build_principal (context, | ||||
| 				 ret_princ, | ||||
| 				 strlen(r[0]), | ||||
| 				 r[0], | ||||
| 				 sname, | ||||
| 				 hostname, | ||||
| 				 0); | ||||
|     if (type == KRB5_NT_SRV_HST) { | ||||
| 	struct hostent *hostent; | ||||
| 	char *h; | ||||
|  | ||||
| 	hostent = gethostbyname (hostname); | ||||
| 	if (hostent != NULL) | ||||
| 	    hostname = hostent->h_name; | ||||
| 	h = strdup (hostname); | ||||
| 	if (h == NULL) { | ||||
| 	    krb5_free_host_realm (context, r); | ||||
| 	    return ENOMEM; | ||||
| 	} | ||||
| 	strlwr (h); | ||||
| 	ret = krb5_build_principal (context, | ||||
| 				    ret_princ, | ||||
| 				    strlen(r[0]), | ||||
| 				    r[0], | ||||
| 				    sname, | ||||
| 				    h, | ||||
| 				    NULL); | ||||
| 	krb5_free_host_realm (context, r); | ||||
| 	free (h); | ||||
| 	return ret; | ||||
|     } else if (type == KRB5_NT_UNKNOWNN) { | ||||
| 	ret = krb5_build_principal (context, | ||||
| 				    ret_princ, | ||||
| 				    strlen(r[0]), | ||||
| 				    r[0], | ||||
| 				    sname, | ||||
| 				    hostname, | ||||
| 				    NULL); | ||||
| 	krb5_free_host_realm (context, r); | ||||
| 	return ret; | ||||
|     } else { | ||||
| 	krb5_free_host_realm (context, r); | ||||
| 	return KRB5_SNAME_UNSUPP_NAMETYPE; | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Assar Westerlund
					Assar Westerlund