1*7dd7cddfSDavid du Colombier #include "../dhcp.h" 2*7dd7cddfSDavid du Colombier 3*7dd7cddfSDavid du Colombier typedef struct Binding Binding; 4*7dd7cddfSDavid du Colombier struct Binding 5*7dd7cddfSDavid du Colombier { 6*7dd7cddfSDavid du Colombier Binding *next; 7*7dd7cddfSDavid du Colombier uchar ip[IPaddrlen]; 8*7dd7cddfSDavid du Colombier 9*7dd7cddfSDavid du Colombier char *boundto; /* id last bound to */ 10*7dd7cddfSDavid du Colombier char *offeredto; /* id we've offered this to */ 11*7dd7cddfSDavid du Colombier 12*7dd7cddfSDavid du Colombier long lease; /* absolute time at which binding expires */ 13*7dd7cddfSDavid du Colombier long expoffer; /* absolute time at which offer times out */ 14*7dd7cddfSDavid du Colombier long offer; /* lease offered */ 15*7dd7cddfSDavid du Colombier long lasttouched; /* time this entry last assigned/unassigned */ 16*7dd7cddfSDavid du Colombier 17*7dd7cddfSDavid du Colombier Qid q; /* qid at the last syncbinding */ 18*7dd7cddfSDavid du Colombier }; 19*7dd7cddfSDavid du Colombier 20*7dd7cddfSDavid du Colombier typedef struct Info Info; 21*7dd7cddfSDavid du Colombier struct Info 22*7dd7cddfSDavid du Colombier { 23*7dd7cddfSDavid du Colombier int indb; /* true if found in database */ 24*7dd7cddfSDavid du Colombier char domain[Ndbvlen]; /* system domain name */ 25*7dd7cddfSDavid du Colombier char bootf[Ndbvlen]; /* boot file */ 26*7dd7cddfSDavid du Colombier uchar ipaddr[NDB_IPlen]; /* ip address of system */ 27*7dd7cddfSDavid du Colombier uchar ipmask[NDB_IPlen]; /* ip network mask */ 28*7dd7cddfSDavid du Colombier uchar ipnet[NDB_IPlen]; /* ip network address (ipaddr & ipmask) */ 29*7dd7cddfSDavid du Colombier uchar etheraddr[6]; /* ethernet address */ 30*7dd7cddfSDavid du Colombier uchar gwip[NDB_IPlen]; /* gateway ip address */ 31*7dd7cddfSDavid du Colombier uchar fsip[NDB_IPlen]; /* file system ip address */ 32*7dd7cddfSDavid du Colombier uchar auip[NDB_IPlen]; /* authentication server ip address */ 33*7dd7cddfSDavid du Colombier char dhcpgroup[Ndbvlen]; 34*7dd7cddfSDavid du Colombier char vendor[Ndbvlen]; /* vendor info */ 35*7dd7cddfSDavid du Colombier }; 36*7dd7cddfSDavid du Colombier 37*7dd7cddfSDavid du Colombier 38*7dd7cddfSDavid du Colombier /* from dhcp.c */ 39*7dd7cddfSDavid du Colombier extern int validip(uchar*); 40*7dd7cddfSDavid du Colombier extern void warning(int, char*, ...); 41*7dd7cddfSDavid du Colombier extern int minlease; 42*7dd7cddfSDavid du Colombier 43*7dd7cddfSDavid du Colombier /* from db.c */ 44*7dd7cddfSDavid du Colombier extern char* tohex(char*, uchar*, int); 45*7dd7cddfSDavid du Colombier extern char* toid(uchar*, int); 46*7dd7cddfSDavid du Colombier extern void initbinding(uchar*, int); 47*7dd7cddfSDavid du Colombier extern Binding* iptobinding(uchar*, int); 48*7dd7cddfSDavid du Colombier extern Binding* idtobinding(char*, Ipinfo*, int); 49*7dd7cddfSDavid du Colombier extern Binding* idtooffer(char*, Ipinfo*); 50*7dd7cddfSDavid du Colombier extern int commitbinding(Binding*); 51*7dd7cddfSDavid du Colombier extern int releasebinding(Binding*, char*); 52*7dd7cddfSDavid du Colombier extern int samenet(uchar *ip, Ipinfo *iip); 53*7dd7cddfSDavid du Colombier extern void mkoffer(Binding*, char*, long); 54*7dd7cddfSDavid du Colombier 55*7dd7cddfSDavid du Colombier /* from ndb.c */ 56*7dd7cddfSDavid du Colombier extern int lookup(Bootp*, Ipinfo*, Ipinfo*); 57*7dd7cddfSDavid du Colombier extern int lookupip(uchar*, Ipinfo*); 58*7dd7cddfSDavid du Colombier extern void lookupname(uchar*, char*); 59*7dd7cddfSDavid du Colombier extern Ipifc* findifc(uchar*); 60*7dd7cddfSDavid du Colombier extern Ipifc* forme(uchar*); 61*7dd7cddfSDavid du Colombier extern int lookupserver(char*, uchar**, uchar*); 62*7dd7cddfSDavid du Colombier 63*7dd7cddfSDavid du Colombier /* from icmp.c */ 64*7dd7cddfSDavid du Colombier extern int icmpecho(uchar*); 65*7dd7cddfSDavid du Colombier 66*7dd7cddfSDavid du Colombier extern char *binddir; 67*7dd7cddfSDavid du Colombier extern int debug; 68*7dd7cddfSDavid du Colombier extern char *blog; 69*7dd7cddfSDavid du Colombier extern Ipifc *ipifcs; 70*7dd7cddfSDavid du Colombier extern long now; 71*7dd7cddfSDavid du Colombier extern char *ndbfile; 72*7dd7cddfSDavid du Colombier 73