]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/cmd/ndb/dns.h
ndb/dns: detect query loops
[plan9front.git] / sys / src / cmd / ndb / dns.h
old mode 100755 (executable)
new mode 100644 (file)
index fd60d12..e14a20c
@@ -1,5 +1,3 @@
-#include <thread.h>            /* for Ref */
-
 #define NS2MS(ns) ((ns) / 1000000L)
 #define S2MS(s)   ((s)  * 1000LL)
 
@@ -184,14 +182,7 @@ struct Request
        jmp_buf mret;           /* where master jumps to after starting a slave */
        int     id;
        char    *from;          /* who asked us? */
-};
-
-typedef struct Querylck Querylck;
-struct Querylck
-{
-       QLock;
-//     Rendez;
-       Ref;
+       void    *aux;
 };
 
 /*
@@ -204,16 +195,10 @@ struct DN
        char    *name;          /* owner */
        RR      *rr;            /* resource records off this name */
        ulong   referenced;     /* time last referenced */
-       ulong   lookuptime;     /* last time we tried to get a better value */
-       /* refs was `char' but we've seen refs > 120, so go whole hog */
-       ulong   refs;           /* for mark and sweep */
        ulong   ordinal;
        ushort  class;          /* RR class */
-       uchar   keep;           /* flag: never age this name */
        uchar   respcode;       /* response code */
-/* was:        char    nonexistent; /* true if we get an authoritative nx for this domain */
-       /* permit only 1 query per (domain name, type) at a time */
-       Querylck querylck[Maxlcks];
+       uchar   mark;           /* for mark and sweep */
 };
 
 /*
@@ -301,12 +286,12 @@ struct RR
        };
        union {                 /* discriminated by type */
                SOA     *soa;   /* soa timers - soa */
+               Srv     *srv;
                Key     *key;
                Cert    *cert;
                Sig     *sig;
                Null    *null;
                Txt     *txt;
-               Srv     *srv;
        };
 };
 
@@ -461,10 +446,9 @@ void       db2cache(int);
 void   dnage(DN*);
 void   dnageall(int);
 void   dnagedb(void);
-void   dnageallnever(void);
-void   dnagenever(DN *, int);
+void   dnagenever(DN *);
 void   dnauthdb(void);
-void   dncheck(void*, int);
+void   dncheck(void);
 void   dndump(char*);
 void   dnget(void);
 void   dninit(void);
@@ -511,14 +495,13 @@ void      addarea(DN *dp, RR *rp, Ndbtuple *t);
 int    baddelegation(RR*, RR*, uchar*);
 RR*    dbinaddr(DN*, int);
 RR*    dblookup(char*, int, int, int, int);
-void   dnforceage(void);
 RR*    dnsservers(int);
 RR*    domainlist(int);
 int    insideaddr(char *dom);
 int    insidens(uchar *ip);
 int    myaddr(char *addr);
 int    opendatabase(void);
-uchar* outsidens(int);
+int    outsidensip(int, uchar *ip);
 
 /* dns.c */
 char*  walkup(char*);
@@ -533,7 +516,6 @@ int udpport(char *);
 int    mkreq(DN *dp, int type, uchar *buf, int flags, ushort reqno);
 int    seerootns(void);
 void   initdnsmsg(DNSmsg *mp, RR *rp, int flags, ushort reqno);
-DNSmsg*        newdnsmsg(RR *rp, int flags, ushort reqno);
 
 /* dnserver.c */
 void   dnserver(DNSmsg*, DNSmsg*, Request*, uchar *, int);