Blame


1 87a52e04 2005-12-26 devnull #include "../dhcp.h"
2 87a52e04 2005-12-26 devnull
3 87a52e04 2005-12-26 devnull enum
4 87a52e04 2005-12-26 devnull {
5 cbeb0b26 2006-04-01 devnull Maxstr= 256
6 87a52e04 2005-12-26 devnull };
7 87a52e04 2005-12-26 devnull
8 87a52e04 2005-12-26 devnull typedef struct Binding Binding;
9 87a52e04 2005-12-26 devnull struct Binding
10 87a52e04 2005-12-26 devnull {
11 87a52e04 2005-12-26 devnull Binding *next;
12 87a52e04 2005-12-26 devnull uchar ip[IPaddrlen];
13 87a52e04 2005-12-26 devnull
14 87a52e04 2005-12-26 devnull char *boundto; /* id last bound to */
15 87a52e04 2005-12-26 devnull char *offeredto; /* id we've offered this to */
16 87a52e04 2005-12-26 devnull
17 87a52e04 2005-12-26 devnull long lease; /* absolute time at which binding expires */
18 87a52e04 2005-12-26 devnull long expoffer; /* absolute time at which offer times out */
19 87a52e04 2005-12-26 devnull long offer; /* lease offered */
20 87a52e04 2005-12-26 devnull long lasttouched; /* time this entry last assigned/unassigned */
21 87a52e04 2005-12-26 devnull long lastcomplained; /* last time we complained about a used but not leased */
22 87a52e04 2005-12-26 devnull long tried; /* last time we tried this entry */
23 87a52e04 2005-12-26 devnull
24 87a52e04 2005-12-26 devnull Qid q; /* qid at the last syncbinding */
25 87a52e04 2005-12-26 devnull };
26 87a52e04 2005-12-26 devnull
27 87a52e04 2005-12-26 devnull typedef struct Info Info;
28 87a52e04 2005-12-26 devnull struct Info
29 87a52e04 2005-12-26 devnull {
30 87a52e04 2005-12-26 devnull int indb; /* true if found in database */
31 87a52e04 2005-12-26 devnull char domain[Maxstr]; /* system domain name */
32 87a52e04 2005-12-26 devnull char bootf[Maxstr]; /* boot file */
33 87a52e04 2005-12-26 devnull char bootf2[Maxstr]; /* alternative boot file */
34 87a52e04 2005-12-26 devnull uchar tftp[NDB_IPlen]; /* ip addr of tftp server */
35 87a52e04 2005-12-26 devnull uchar tftp2[NDB_IPlen]; /* ip addr of alternate server */
36 87a52e04 2005-12-26 devnull uchar ipaddr[NDB_IPlen]; /* ip address of system */
37 87a52e04 2005-12-26 devnull uchar ipmask[NDB_IPlen]; /* ip network mask */
38 87a52e04 2005-12-26 devnull uchar ipnet[NDB_IPlen]; /* ip network address (ipaddr & ipmask) */
39 87a52e04 2005-12-26 devnull uchar etheraddr[6]; /* ethernet address */
40 87a52e04 2005-12-26 devnull uchar gwip[NDB_IPlen]; /* gateway ip address */
41 87a52e04 2005-12-26 devnull uchar fsip[NDB_IPlen]; /* file system ip address */
42 87a52e04 2005-12-26 devnull uchar auip[NDB_IPlen]; /* authentication server ip address */
43 87a52e04 2005-12-26 devnull char rootpath[Maxstr]; /* rootfs for diskless nfs clients */
44 87a52e04 2005-12-26 devnull char dhcpgroup[Maxstr];
45 87a52e04 2005-12-26 devnull char vendor[Maxstr]; /* vendor info */
46 87a52e04 2005-12-26 devnull };
47 87a52e04 2005-12-26 devnull
48 87a52e04 2005-12-26 devnull
49 87a52e04 2005-12-26 devnull /* from dhcp.c */
50 87a52e04 2005-12-26 devnull extern int validip(uchar*);
51 87a52e04 2005-12-26 devnull extern void warning(int, char*, ...);
52 87a52e04 2005-12-26 devnull extern int minlease;
53 87a52e04 2005-12-26 devnull
54 87a52e04 2005-12-26 devnull /* from db.c */
55 87a52e04 2005-12-26 devnull extern char* tohex(char*, uchar*, int);
56 87a52e04 2005-12-26 devnull extern char* toid(uchar*, int);
57 87a52e04 2005-12-26 devnull extern void initbinding(uchar*, int);
58 87a52e04 2005-12-26 devnull extern Binding* iptobinding(uchar*, int);
59 87a52e04 2005-12-26 devnull extern Binding* idtobinding(char*, Info*, int);
60 87a52e04 2005-12-26 devnull extern Binding* idtooffer(char*, Info*);
61 87a52e04 2005-12-26 devnull extern int commitbinding(Binding*);
62 87a52e04 2005-12-26 devnull extern int releasebinding(Binding*, char*);
63 87a52e04 2005-12-26 devnull extern int samenet(uchar *ip, Info *iip);
64 87a52e04 2005-12-26 devnull extern void mkoffer(Binding*, char*, long);
65 87a52e04 2005-12-26 devnull extern int syncbinding(Binding*, int);
66 87a52e04 2005-12-26 devnull
67 87a52e04 2005-12-26 devnull /* from ndb.c */
68 87a52e04 2005-12-26 devnull extern int lookup(Bootp*, Info*, Info*);
69 87a52e04 2005-12-26 devnull extern int lookupip(uchar*, Info*, int);
70 87a52e04 2005-12-26 devnull extern void lookupname(char*, Ndbtuple*);
71 87a52e04 2005-12-26 devnull extern Iplifc* findlifc(uchar*);
72 87a52e04 2005-12-26 devnull extern int forme(uchar*);
73 87a52e04 2005-12-26 devnull extern int lookupserver(char*, uchar**, Ndbtuple *t);
74 87a52e04 2005-12-26 devnull extern Ndbtuple* lookupinfo(uchar *ipaddr, char **attr, int n);
75 87a52e04 2005-12-26 devnull
76 87a52e04 2005-12-26 devnull /* from icmp.c */
77 87a52e04 2005-12-26 devnull extern int icmpecho(uchar*);
78 87a52e04 2005-12-26 devnull
79 87a52e04 2005-12-26 devnull extern char *binddir;
80 87a52e04 2005-12-26 devnull extern int debug;
81 87a52e04 2005-12-26 devnull extern char *blog;
82 87a52e04 2005-12-26 devnull extern Ipifc *ipifcs;
83 87a52e04 2005-12-26 devnull extern long now;
84 87a52e04 2005-12-26 devnull extern char *ndbfile;