(krb5_print_address): handle unknown address types;
(ipv6_print_addr): print in 16-bit groups (as it should) git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5804 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -255,7 +255,7 @@ ipv6_print_addr (const krb5_address *addr, char *str, size_t len) | |||||||
| 	    buf[0] = '\0'; | 	    buf[0] = '\0'; | ||||||
| 	    for(i = 0; i < addr->address.length; i++) { | 	    for(i = 0; i < addr->address.length; i++) { | ||||||
| 		snprintf(buf2, sizeof(buf2), "%02x", p[i]); | 		snprintf(buf2, sizeof(buf2), "%02x", p[i]); | ||||||
| 		if(i > 0) | 		if(i > 0 && (i & 1) == 0) | ||||||
| 		    strcat_truncate(buf, ":", sizeof(buf)); | 		    strcat_truncate(buf, ":", sizeof(buf)); | ||||||
| 		strcat_truncate(buf, buf2, sizeof(buf)); | 		strcat_truncate(buf, buf2, sizeof(buf)); | ||||||
| 	    } | 	    } | ||||||
| @@ -399,8 +399,22 @@ krb5_print_address (const krb5_address *addr, | |||||||
| { | { | ||||||
|     struct addr_operations *a = find_atype(addr->addr_type); |     struct addr_operations *a = find_atype(addr->addr_type); | ||||||
|  |  | ||||||
|     if (a == NULL) |     if (a == NULL) { | ||||||
| 	return KRB5_PROG_ATYPE_NOSUPP; | 	char *s; | ||||||
|  | 	size_t l; | ||||||
|  | 	int i; | ||||||
|  | 	s = str; | ||||||
|  | 	l = snprintf(s, len, "TYPE_%d:", addr->addr_type); | ||||||
|  | 	s += l; | ||||||
|  | 	len -= len; | ||||||
|  | 	for(i = 0; i < addr->address.length; i++) { | ||||||
|  | 	    l = snprintf(s, len, "%02x", ((char*)addr->address.data)[i]); | ||||||
|  | 	    len -= l; | ||||||
|  | 	    s += l; | ||||||
|  | 	} | ||||||
|  | 	*ret_len = s - str; | ||||||
|  | 	return 0; | ||||||
|  |     } | ||||||
|     *ret_len = (*a->print_addr)(addr, str, len); |     *ret_len = (*a->print_addr)(addr, str, len); | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Johan Danielsson
					Johan Danielsson