-#include <thread.h> /* for Ref */
-
#define NS2MS(ns) ((ns) / 1000000L)
#define S2MS(s) ((s) * 1000LL)
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;
};
/*
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 */
};
/*
};
union { /* discriminated by type */
SOA *soa; /* soa timers - soa */
+ Srv *srv;
Key *key;
Cert *cert;
Sig *sig;
Null *null;
Txt *txt;
- Srv *srv;
};
};
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);
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*);
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);