(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:
Johan Danielsson
1999-03-29 19:27:14 +00:00
parent 7765cd8de2
commit fbebae0272

View File

@@ -255,7 +255,7 @@ ipv6_print_addr (const krb5_address *addr, char *str, size_t len)
buf[0] = '\0';
for(i = 0; i < addr->address.length; 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, buf2, sizeof(buf));
}
@@ -399,8 +399,22 @@ krb5_print_address (const krb5_address *addr,
{
struct addr_operations *a = find_atype(addr->addr_type);
if (a == NULL)
return KRB5_PROG_ATYPE_NOSUPP;
if (a == NULL) {
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);
return 0;
}