diff options
Diffstat (limited to 'libc/inet/resolv.c')
-rw-r--r-- | libc/inet/resolv.c | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c index b2cca27d1..f02781b0b 100644 --- a/libc/inet/resolv.c +++ b/libc/inet/resolv.c @@ -560,38 +560,7 @@ void __decode_header(unsigned char *data, the data */ int __encode_dotted(const char *dotted, unsigned char *dest, int maxlen) { -#ifndef WHY_UCLIBC_WHY_DID_YOU_DO_THIS return (dn_comp(dotted, dest, maxlen, NULL, NULL)); -#else - unsigned used = 0; - - while (dotted && *dotted) { - char *c = strchr(dotted, '.'); - int l = c ? c - dotted : strlen(dotted); - - /* two consecutive dots are not valid */ - if (l == 0) - return -1; - - if (l >= (maxlen - used - 1)) - return -1; - - dest[used++] = l; - memcpy(dest + used, dotted, l); - used += l; - - if (!c) - break; - dotted = c + 1; - } - - if (maxlen < 1) - return -1; - - dest[used++] = 0; - - return used; -#endif } #endif /* L_encoded */ @@ -606,67 +575,7 @@ int __decode_dotted(const unsigned char *packet, char *dest, int dest_len) { -#ifndef WHY_UCLIBC_WHY_DID_YOU_DO_THIS return (dn_expand(packet, packet + packet_len, packet + offset, dest, dest_len)); -#else - unsigned b; - bool measure = 1; - unsigned total = 0; - unsigned used = 0; - unsigned maxiter = 256; - - if (!packet) - return -1; - - dest[0] = '\0'; - while (--maxiter) { - if (offset >= packet_len) - return -1; - b = packet[offset++]; - if (b == 0) - break; - - if (measure) - total++; - - if ((b & 0xc0) == 0xc0) { - if (offset >= packet_len) - return -1; - if (measure) - total++; - /* compressed item, redirect */ - offset = ((b & 0x3f) << 8) | packet[offset]; - measure = 0; - continue; - } - - if (used + b + 1 >= dest_len) - return -1; - if (offset + b >= packet_len) - return -1; - memcpy(dest + used, packet + offset, b); - offset += b; - used += b; - - if (measure) - total += b; - - if (packet[offset] != 0) - dest[used++] = '.'; - else - dest[used++] = '\0'; - } - if (!maxiter) - return -1; - - /* The null byte must be counted too */ - if (measure) - total++; - - DPRINTF("Total decode len = %d\n", total); - - return total; -#endif } #endif /* L_decoded */ |