Make iso_addr's output conform to modern conventions for NSAP
representation. Original code by pst but ported in as part of enhancements to BIND 4.9.2 and returned to Vixie.
This commit is contained in:
parent
6ce81dd1b2
commit
af2c9cfd5b
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=2978
@ -90,30 +90,28 @@ iso_addr(addr)
|
||||
out_addr.isoa_len = cp - out_addr.isoa_genaddr;
|
||||
return (&out_addr);
|
||||
}
|
||||
|
||||
static char hexlist[] = "0123456789abcdef";
|
||||
|
||||
char *
|
||||
iso_ntoa(isoa)
|
||||
const struct iso_addr *isoa;
|
||||
{
|
||||
static char obuf[64];
|
||||
register char *out = obuf;
|
||||
register int i;
|
||||
register u_char *in = (u_char *)isoa->isoa_genaddr;
|
||||
u_char *inlim = in + isoa->isoa_len;
|
||||
static char tmpbuf[sizeof(isoa->isoa_genaddr)*3];
|
||||
const u_char *binary;
|
||||
char *cp;
|
||||
int i;
|
||||
|
||||
out[1] = 0;
|
||||
while (in < inlim) {
|
||||
i = *in++;
|
||||
*out++ = '.';
|
||||
if (i > 0xf) {
|
||||
out[1] = hexlist[i & 0xf];
|
||||
i >>= 4;
|
||||
out[0] = hexlist[i];
|
||||
out += 2;
|
||||
} else
|
||||
*out++ = hexlist[i];
|
||||
binary = isoa->isoa_genaddr;
|
||||
cp = tmpbuf;
|
||||
|
||||
for (i = 0; i < isoa->isoa_len; i++) {
|
||||
*cp++ = hexlist[*binary >> 4];
|
||||
*cp++ = hexlist[*binary++ & 0xf];
|
||||
|
||||
if ((((i % 2) == 0) && ((i + 1) < isoa->isoa_len)))
|
||||
*cp++ = '.';
|
||||
}
|
||||
*out = 0;
|
||||
return(obuf + 1);
|
||||
*cp = '\0';
|
||||
return tmpbuf;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user