17 unsigned long len,temp, k, pos0 = 0,len0 = 0, pos1 = 0, compr = 0;
20 for (k=0; k<16; k+=2) {
21 if (ip[k] == 0 && ip[k+1] == 0) {
26 if (k == 14) { k = 16;
goto last; }
29 if ((temp=k-pos1) > len0) {
37 for (len=0,k=0; k<16; k+=2) {
42 if (pos0 == k && len0) {
43 if (k == 0) { ++len;
if (s) *s++ =
':'; }
44 ++len;
if (s) *s++ =
':';
48 temp = ((
unsigned long) (
unsigned char) ip[k] << 8) +
49 (
unsigned long) (
unsigned char) ip[k+1];
50 temp =
fmt_xlong(s,temp); len += temp;
if (s) s += temp;
51 if (k<14) { ++len;
if (s) *s++ =
':'; }
unsigned int fmt_xlong(char *, unsigned long)
unsigned int ip4_fmt(char *, const char *)
const unsigned char V4mappedprefix[12]
unsigned int ip6_compactaddr(char *s, char ip[16])
#define byte_equal(s, n, t)