diff options
Diffstat (limited to 'package/mtr/patches')
| -rw-r--r-- | package/mtr/patches/501-dns.patch | 511 | ||||
| -rw-r--r-- | package/mtr/patches/patch-curses_c | 21 | ||||
| -rw-r--r-- | package/mtr/patches/patch-report_c | 30 | 
3 files changed, 0 insertions, 562 deletions
| diff --git a/package/mtr/patches/501-dns.patch b/package/mtr/patches/501-dns.patch deleted file mode 100644 index f1c915580..000000000 --- a/package/mtr/patches/501-dns.patch +++ /dev/null @@ -1,511 +0,0 @@ -diff -Naur mtr-0.69.old/dns.c mtr-0.69.new/dns.c ---- mtr-0.69.old/dns.c	2005-01-11 09:32:42.000000000 +0100 -+++ mtr-0.69.new/dns.c	2005-10-03 21:31:27.000000000 +0200 -@@ -853,6 +853,507 @@ -   fputs("\r",stderr); - } -  -+#ifdef __UCLIBC__ -+ -+static const char       digits[] = "0123456789"; -+#define __set_errno(e) (errno = (e)) -+ -+#define NS_PUT16(s, cp) do { \ -+        register u_int16_t t_s = (u_int16_t)(s); \ -+        register u_char *t_cp = (u_char *)(cp); \ -+        *t_cp++ = t_s >> 8; \ -+        *t_cp   = t_s; \ -+        (cp) += NS_INT16SZ; \ -+} while (0) -+ -+ -+ -+#define NS_PUT32(l, cp) do { \ -+        register u_int32_t t_l = (u_int32_t)(l); \ -+        register u_char *t_cp = (u_char *)(cp); \ -+        *t_cp++ = t_l >> 24; \ -+        *t_cp++ = t_l >> 16; \ -+        *t_cp++ = t_l >> 8; \ -+        *t_cp   = t_l; \ -+        (cp) += NS_INT32SZ; \ -+} while (0) -+ -+ -+void -+ns_put16(u_int src, u_char *dst) { -+        NS_PUT16(src, dst); -+} -+ -+void -+ns_put32(u_long src, u_char *dst) { -+        NS_PUT32(src, dst); -+} -+ -+void __putshort(u_int16_t src, u_char *dst) { ns_put16(src, dst); } -+void __putlong(u_int32_t src, u_char *dst) { ns_put32(src, dst); } -+ -+int -+mklower(int ch) { -+        if (ch >= 0x41 && ch <= 0x5A) -+                return (ch + 0x20); -+        return (ch); -+} -+ -+ -+static int -+dn_find(const u_char *domain, const u_char *msg, -+        const u_char * const *dnptrs, -+        const u_char * const *lastdnptr) -+{ -+        const u_char *dn, *cp, *sp; -+        const u_char * const *cpp; -+        u_int n; -+ -+        for (cpp = dnptrs; cpp < lastdnptr; cpp++) { -+                sp = *cpp; -+                /* -+                 * terminate search on: -+                 * root label -+                 * compression pointer -+                 * unusable offset -+                 */ -+                while (*sp != 0 && (*sp & NS_CMPRSFLGS) == 0 && -+                       (sp - msg) < 0x4000) { -+                        dn = domain; -+                        cp = sp; -+                        while ((n = *cp++) != 0) { -+                                /* -+                                 * check for indirection -+                                 */ -+                                switch (n & NS_CMPRSFLGS) { -+                                case 0:         /* normal case, n == len */ -+                                        if (n != *dn++) -+                                                goto next; -+                                        for ((void)NULL; n > 0; n--) -+                                                if (mklower(*dn++) != -+                                                    mklower(*cp++)) -+                                                        goto next; -+                                        /* Is next root for both ? */ -+                                        if (*dn == '\0' && *cp == '\0') -+                                                return (sp - msg); -+                                        if (*dn) -+                                                continue; -+                                        goto next; -+ -+                                case NS_CMPRSFLGS:      /* indirection */ -+                                        cp = msg + (((n & 0x3f) << 8) | *cp); -+                                        break; -+ -+                                default:        /* illegal type */ -+                                        __set_errno (EMSGSIZE); -+                                        return (-1); -+                                } -+                        } -+ next: -+                        sp += *sp + 1; -+                } -+        } -+        __set_errno (ENOENT); -+        return (-1); -+} -+ -+ -+int -+ns_name_pack(const u_char *src, u_char *dst, int dstsiz, -+             const u_char **dnptrs, const u_char **lastdnptr) -+{ -+        u_char *dstp; -+        const u_char **cpp, **lpp, *eob, *msg; -+        const u_char *srcp; -+        int n, l, first = 1; -+ -+        srcp = src; -+        dstp = dst; -+        eob = dstp + dstsiz; -+        lpp = cpp = NULL; -+        if (dnptrs != NULL) { -+                if ((msg = *dnptrs++) != NULL) { -+                        for (cpp = dnptrs; *cpp != NULL; cpp++) -+                                (void)NULL; -+                        lpp = cpp;      /* end of list to search */ -+                } -+        } else -+                msg = NULL; -+ -+        /* make sure the domain we are about to add is legal */ -+        l = 0; -+        do { -+                n = *srcp; -+                if ((n & NS_CMPRSFLGS) != 0 && n != 0x41) { -+                        __set_errno (EMSGSIZE); -+                        return (-1); -+                } -+                if (n == 0x41) -+                        n = *++srcp / 8; -+                l += n + 1; -+                if (l > MAXCDNAME) { -+                        __set_errno (EMSGSIZE); -+                        return (-1); -+                } -+                srcp += n + 1; -+        } while (n != 0); -+ -+        /* from here on we need to reset compression pointer array on error */ -+        srcp = src; -+        do { -+                /* Look to see if we can use pointers. */ -+                n = *srcp; -+                if (n != 0 && n != 0x41 && msg != NULL) { -+                        l = dn_find(srcp, msg, (const u_char * const *)dnptrs, -+                                    (const u_char * const *)lpp); -+                        if (l >= 0) { -+                                if (dstp + 1 >= eob) { -+                                        goto cleanup; -+                                } -+                                *dstp++ = (l >> 8) | NS_CMPRSFLGS; -+                                *dstp++ = l % 256; -+                                return (dstp - dst); -+                        } -+                        /* Not found, save it. */ -+                        if (lastdnptr != NULL && cpp < lastdnptr - 1 && -+                            (dstp - msg) < 0x4000 && first) { -+                                *cpp++ = dstp; -+                                *cpp = NULL; -+                                first = 0; -+                        } -+                } -+                /* copy label to buffer */ -+                if ((n & NS_CMPRSFLGS) != 0 && n != 0x41) {             /* Should not happen. */ -+                        goto cleanup; -+                } -+                if (n == 0x41) { -+                        n = *++srcp / 8; -+                        if (dstp + 1 >= eob) -+                                goto cleanup; -+                        *dstp++ = 0x41; -+                } -+                if (dstp + 1 + n >= eob) { -+                        goto cleanup; -+                } -+                memcpy(dstp, srcp, n + 1); -+                srcp += n + 1; -+                dstp += n + 1; -+        } while (n != 0); -+ -+        if (dstp > eob) { -+cleanup: -+                if (msg != NULL) -+                        *lpp = NULL; -+                __set_errno (EMSGSIZE); -+                return (-1); -+        } -+        return (dstp - dst); -+} -+ -+ -+int -+ns_name_pton(const char *src, u_char *dst, size_t dstsiz) { -+        u_char *label, *bp, *eom; -+        int c, n, escaped; -+        char *cp; -+ -+        escaped = 0; -+        bp = dst; -+        eom = dst + dstsiz; -+        label = bp++; -+ -+        while ((c = *src++) != 0) { -+                if (escaped) { -+                        if ((cp = strchr(digits, c)) != NULL) { -+                                n = (cp - digits) * 100; -+                                if ((c = *src++) == 0 || -+                                    (cp = strchr(digits, c)) == NULL) { -+                                        __set_errno (EMSGSIZE); -+                                        return (-1); -+                                } -+                                n += (cp - digits) * 10; -+                                if ((c = *src++) == 0 || -+                                    (cp = strchr(digits, c)) == NULL) { -+                                        __set_errno (EMSGSIZE); -+                                        return (-1); -+                                } -+                                n += (cp - digits); -+                                if (n > 255) { -+                                        __set_errno (EMSGSIZE); -+                                        return (-1); -+                                } -+                                c = n; -+                        } else if (c == '[' && label == bp - 1 && *src == 'x') { -+                                /* Theoretically we would have to handle \[o -+                                   as well but we do not since we do not need -+                                   it internally.  */ -+                                *label = 0x41; -+                                label = bp++; -+                                ++src; -+                                while (isxdigit (*src)) { -+                                        n = *src > '9' ? *src - 'a' + 10 : *src - '0'; -+                                        ++src; -+                                        if (! isxdigit(*src)) { -+                                                __set_errno (EMSGSIZE); -+                                                return (-1); -+                                        } -+                                        n <<= 4; -+                                        n += *src > '9' ? *src - 'a' + 10 : *src - '0'; -+                                        if (bp + 1 >= eom) { -+                                                __set_errno (EMSGSIZE); -+                                                return (-1); -+                                        } -+                                        *bp++ = n; -+                                        ++src; -+                                } -+                                *label = (bp - label - 1) * 8; -+                                if (*src++ != ']' || *src++ != '.') { -+                                        __set_errno (EMSGSIZE); -+                                        return (-1); -+                                } -+                                escaped = 0; -+                                label = bp++; -+                                if (bp >= eom) { -+                                        __set_errno (EMSGSIZE); -+                                        return (-1); -+                                } -+                                continue; -+                        } -+                        escaped = 0; -+                } else if (c == '\\') { -+                        escaped = 1; -+                        continue; -+                } else if (c == '.') { -+                        c = (bp - label - 1); -+                        if ((c & NS_CMPRSFLGS) != 0) {  /* Label too big. */ -+                                __set_errno (EMSGSIZE); -+                                return (-1); -+                        } -+                        if (label >= eom) { -+                                __set_errno (EMSGSIZE); -+                                return (-1); -+                        } -+                        *label = c; -+                        /* Fully qualified ? */ -+                        if (*src == '\0') { -+                                if (c != 0) { -+                                        if (bp >= eom) { -+                                                __set_errno (EMSGSIZE); -+                                                return (-1); -+                                        } -+                                        *bp++ = '\0'; -+                                } -+                                if ((bp - dst) > MAXCDNAME) { -+                                        __set_errno (EMSGSIZE); -+                                        return (-1); -+                                } -+                                return (1); -+                        } -+                        if (c == 0 || *src == '.') { -+                                __set_errno (EMSGSIZE); -+                                return (-1); -+                        } -+                        label = bp++; -+                        continue; -+                } -+                if (bp >= eom) { -+                        __set_errno (EMSGSIZE); -+                        return (-1); -+                } -+                *bp++ = (u_char)c; -+        } -+        c = (bp - label - 1); -+        if ((c & NS_CMPRSFLGS) != 0) {          /* Label too big. */ -+                __set_errno (EMSGSIZE); -+                return (-1); -+        } -+        if (label >= eom) { -+                __set_errno (EMSGSIZE); -+                return (-1); -+        } -+        *label = c; -+        if (c != 0) { -+                if (bp >= eom) { -+                        __set_errno (EMSGSIZE); -+                        return (-1); -+                } -+                *bp++ = 0; -+        } -+        if ((bp - dst) > MAXCDNAME) {   /* src too big */ -+                __set_errno (EMSGSIZE); -+                return (-1); -+        } -+        return (0); -+} -+ -+ -+ -+int -+ns_name_compress(const char *src, u_char *dst, size_t dstsiz, -+                 const u_char **dnptrs, const u_char **lastdnptr) -+{ -+        u_char tmp[NS_MAXCDNAME]; -+ -+        if (ns_name_pton(src, tmp, sizeof tmp) == -1) -+                return (-1); -+        return (ns_name_pack(tmp, dst, dstsiz, dnptrs, lastdnptr)); -+} -+ -+ -+int -+dn_comp(const char *src, u_char *dst, int dstsiz, -+        u_char **dnptrs, u_char **lastdnptr) -+{ -+        return (ns_name_compress(src, dst, (size_t)dstsiz, -+                                 (const u_char **)dnptrs, -+                                 (const u_char **)lastdnptr)); -+} -+ -+ -+ -+ -+int -+res_nmkquery(res_state statp, -+             int op,                    /* opcode of query */ -+             const char *dname,         /* domain name */ -+             int class, int type,       /* class and type of query */ -+             const u_char *data,        /* resource record data */ -+             int datalen,               /* length of data */ -+             const u_char *newrr_in,    /* new rr for modify or append */ -+             u_char *buf,               /* buffer to put query */ -+             int buflen)                /* size of buffer */ -+{ -+        register HEADER *hp; -+        register u_char *cp; -+        register int n; -+        u_char *dnptrs[20], **dpp, **lastdnptr; -+ -+#ifdef DEBUG -+        if (statp->options & RES_DEBUG) -+                printf(";; res_nmkquery(%s, %s, %s, %s)\n", -+                       _res_opcodes[op], dname, p_class(class), p_type(type)); -+#endif -+        /* -+         * Initialize header fields. -+         */ -+        if ((buf == NULL) || (buflen < HFIXEDSZ)) -+                return (-1); -+        memset(buf, 0, HFIXEDSZ); -+        hp = (HEADER *) buf; -+        /* We randomize the IDs every time.  The old code just -+           incremented by one after the initial randomization which -+           still predictable if the application does multiple -+           requests.  */ -+#if 0 -+        hp->id = htons(++statp->id); -+#else -+        hp->id = htons(statp->id); -+        int randombits; -+        do -+          { -+#ifdef RANDOM_BITS -+            RANDOM_BITS (randombits); -+#else -+            struct timeval tv; -+            gettimeofday (&tv, NULL); -+            randombits = (tv.tv_sec << 8) ^ tv.tv_usec; -+#endif -+          } -+        while ((randombits & 0xffff) == 0); -+        statp->id = (statp->id + randombits) & 0xffff; -+#endif -+        hp->opcode = op; -+        hp->rd = (statp->options & RES_RECURSE) != 0; -+        hp->rcode = NOERROR; -+        cp = buf + HFIXEDSZ; -+        buflen -= HFIXEDSZ; -+        dpp = dnptrs; -+        *dpp++ = buf; -+        *dpp++ = NULL; -+        lastdnptr = dnptrs + sizeof dnptrs / sizeof dnptrs[0]; -+        /* -+         * perform opcode specific processing -+         */ -+        switch (op) { -+        case QUERY:     /*FALLTHROUGH*/ -+        case NS_NOTIFY_OP: -+                if ((buflen -= QFIXEDSZ) < 0) -+                        return (-1); -+                if ((n = dn_comp(dname, cp, buflen, dnptrs, lastdnptr)) < 0) -+                        return (-1); -+                cp += n; -+                buflen -= n; -+                __putshort(type, cp); -+                cp += INT16SZ; -+                __putshort(class, cp); -+                cp += INT16SZ; -+                hp->qdcount = htons(1); -+                if (op == QUERY || data == NULL) -+                        break; -+                /* -+                 * Make an additional record for completion domain. -+                 */ -+                buflen -= RRFIXEDSZ; -+                n = dn_comp((char *)data, cp, buflen, dnptrs, lastdnptr); -+                if (n < 0) -+                        return (-1); -+                cp += n; -+                buflen -= n; -+                __putshort(T_NULL, cp); -+                cp += INT16SZ; -+                __putshort(class, cp); -+                cp += INT16SZ; -+                __putlong(0, cp); -+                cp += INT32SZ; -+                __putshort(0, cp); -+                cp += INT16SZ; -+                hp->arcount = htons(1); -+                break; -+ -+        case IQUERY: -+                /* -+                 * Initialize answer section -+                 */ -+                if (buflen < 1 + RRFIXEDSZ + datalen) -+                        return (-1); -+                *cp++ = '\0';   /* no domain name */ -+                __putshort(type, cp); -+                cp += INT16SZ; -+                __putshort(class, cp); -+                cp += INT16SZ; -+                __putlong(0, cp); -+                cp += INT32SZ; -+                __putshort(datalen, cp); -+                cp += INT16SZ; -+                if (datalen) { -+                        memcpy(cp, data, datalen); -+                        cp += datalen; -+                } -+                hp->ancount = htons(1); -+                break; -+ -+        default: -+                return (-1); -+        } -+        return (cp - buf); -+} -+ -+int -+res_mkquery(int op,                     /* opcode of query */ -+            const char *dname,          /* domain name */ -+            int class, int type,        /* class and type of query */ -+            const u_char *data,         /* resource record data */ -+            int datalen,                /* length of data */ -+            const u_char *newrr_in,     /* new rr for modify or append */ -+            u_char *buf,                /* buffer to put query */ -+            int buflen)                 /* size of buffer */ -+{ -+        return (res_nmkquery(&_res, op, dname, class, type, -+                             data, datalen, -+                             newrr_in, buf, buflen)); -+} -+ -+#endif -  - void dorequest(char *s,int type,word id) - { diff --git a/package/mtr/patches/patch-curses_c b/package/mtr/patches/patch-curses_c deleted file mode 100644 index 2e04bd4ce..000000000 --- a/package/mtr/patches/patch-curses_c +++ /dev/null @@ -1,21 +0,0 @@ -$Id: update-patches 24 2008-08-31 14:56:13Z wbx $ ---- mtr-0.75.orig/curses.c	2008-08-19 18:55:48.000000000 +0200 -+++ mtr-0.75/curses.c	2008-10-10 15:04:37.000000000 +0200 -@@ -241,7 +241,7 @@ int mtr_curses_keyaction(void) -     return ActionNone; -   } -   if (tolower(c) == 'j') { --    if( index(fld_active, 'N') ) { -+    if( strchr(fld_active, 'N') ) { -       strcpy(fld_active, "DR AGJMXI");        /* GeoMean and jitter */ -     } else { -       strcpy(fld_active, "LS NABWV");         /* default */ -@@ -328,7 +328,7 @@ void mtr_curses_hosts(int startstat)  - 	if (j == -1) continue;  -  - 	/* temporay hack for stats usec to ms... */ --	if( index( data_fields[j].format, 'f' ) ) { -+	if( strchr( data_fields[j].format, 'f' ) ) { - 	  sprintf(buf + hd_len, data_fields[j].format, - 		data_fields[j].net_xxx(at) /1000.0 ); - 	} else { diff --git a/package/mtr/patches/patch-report_c b/package/mtr/patches/patch-report_c deleted file mode 100644 index bbae19253..000000000 --- a/package/mtr/patches/patch-report_c +++ /dev/null @@ -1,30 +0,0 @@ -$Id: update-patches 24 2008-08-31 14:56:13Z wbx $ ---- mtr-0.75.orig/report.c	2008-09-18 14:40:09.000000000 +0200 -+++ mtr-0.75/report.c	2008-10-10 15:05:00.000000000 +0200 -@@ -122,7 +122,7 @@ void report_close(void)  -       if (j < 0) continue; -  -       /* 1000.0 is a temporay hack for stats usec to ms, impacted net_loss. */ --      if( index( data_fields[j].format, 'f' ) ) { -+      if( strchr( data_fields[j].format, 'f' ) ) { -         snprintf( buf + len, sizeof(buf), data_fields[j].format, - 		data_fields[j].net_xxx(at) /1000.0 ); -       } else { -@@ -201,7 +201,7 @@ void xml_close(void) -       strcat(name, data_fields[j].format); -       strcat(name, "</%s>\n"); -       /* 1000.0 is a temporay hack for stats usec to ms, impacted net_loss. */ --      if( index( data_fields[j].format, 'f' ) ) { -+      if( strchr( data_fields[j].format, 'f' ) ) { - 	printf( name, - 		data_fields[j].title, - 		data_fields[j].net_xxx(at) /1000.0, -@@ -280,7 +280,7 @@ void csv_close(void) -       if (j < 0) continue;  -  -       /* 1000.0 is a temporay hack for stats usec to ms, impacted net_loss. */ --      if( index( data_fields[j].format, 'f' ) ) { -+      if( strchr( data_fields[j].format, 'f' ) ) { - 	printf( ", %.2f", data_fields[j].net_xxx(at) / 1000.0); -       } else { - 	printf( ", %d",   data_fields[j].net_xxx(at) ); | 
