(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