teven less dependence on crappy arpa headers - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit a7c0bddd4e5283139a6d9bef6012a2f8b046071b
 (DIR) parent b4d406b781710c8a6983c0ac1fe99aa409fe9dc3
 (HTM) Author: rsc <devnull@localhost>
       Date:   Sun, 29 Jan 2006 17:37:31 +0000
       
       even less dependence on crappy arpa headers
       
       Diffstat:
         M src/libndb/sysdnsquery.c            |      17 +++++++----------
       
       1 file changed, 7 insertions(+), 10 deletions(-)
       ---
 (DIR) diff --git a/src/libndb/sysdnsquery.c b/src/libndb/sysdnsquery.c
       t@@ -150,8 +150,8 @@ doquery(char *name, char *type)
        {
                int n, nstype;
                uchar *buf, *p;
       -        HEADER *h;
                Ndbtuple *t;
       +        int qdcount, ancount;
        
                if((nstype = name2type(type)) < 0){
                        werrstr("unknown dns type %s", type);
       t@@ -171,16 +171,13 @@ doquery(char *name, char *type)
                        werrstr("too much dns information");
                        return nil;
                }
       +
       +        qdcount = (buf[4]<<8)|buf[5];
       +        ancount = (buf[6]<<8)|buf[7];
                
       -        h = (HEADER*)buf;
       -        h->qdcount = ntohs(h->qdcount);
       -        h->ancount = ntohs(h->ancount);
       -        h->nscount = ntohs(h->nscount);
       -        h->arcount = ntohs(h->arcount);
       -        
       -        p = buf+sizeof(HEADER);
       -        p = skipquestion(buf, buf+n, p, h->qdcount);
       -        p = unpack(buf, buf+n, p, &t, h->ancount);
       +        p = buf+12;
       +        p = skipquestion(buf, buf+n, p, qdcount);
       +        p = unpack(buf, buf+n, p, &t, ancount);
                USED(p);
                return t;
        }