--- modules/enumroute.cpp.orig 2007-11-15 10:36:30 +0000 +++ modules/enumroute.cpp 2007-11-15 10:38:23 +0000 @@ -106,6 +106,35 @@ return n+1; } +#ifdef __UCLIBC__ +/* lifted from openbsd source */ +static int dn_skipname(const u_char *comp_dn, const u_char *eom) +{ + const u_char *cp; + int n; + + cp = comp_dn; + while (cp < eom && (n = *cp++)) { + /* + * check for indirection + */ + switch (n & INDIR_MASK) { + case 0: /* normal case, n == len */ + cp += n; + continue; + case INDIR_MASK: /* indirection */ + cp++; + break; + default: /* illegal type */ + return (-1); + } + break; + } + if (cp > eom) + return (-1); + return (cp - comp_dn); +} +#endif static String s_prefix; static String s_forkStop;