8 typedef struct Binding Binding;
14 char *boundto; /* id last bound to */
15 char *offeredto; /* id we've offered this to */
17 long lease; /* absolute time at which binding expires */
18 long expoffer; /* absolute time at which offer times out */
19 long offer; /* lease offered */
20 long lasttouched; /* time this entry last assigned/unassigned */
21 long lastcomplained; /* last time we complained about a used but not leased */
22 long tried; /* last time we tried this entry */
24 Qid q; /* qid at the last syncbinding */
27 typedef struct Info Info;
30 int indb; /* true when found in ndb */
31 Ipifc *ifc; /* ifc when directly connected */
33 uchar ipaddr[NDB_IPlen]; /* ip address of system */
34 uchar ipmask[NDB_IPlen]; /* ip network mask */
35 uchar ipnet[NDB_IPlen]; /* ip network address (ipaddr & ipmask) */
37 char domain[Maxstr]; /* system domain name */
38 char bootf[Maxstr]; /* boot file */
39 char bootf2[Maxstr]; /* alternative boot file */
40 uchar tftp[NDB_IPlen]; /* ip addr of tftp server */
41 uchar tftp2[NDB_IPlen]; /* ip addr of alternate server */
42 uchar gwip[NDB_IPlen]; /* gateway ip address */
43 uchar fsip[NDB_IPlen]; /* file system ip address */
44 uchar auip[NDB_IPlen]; /* authentication server ip address */
45 char rootpath[Maxstr]; /* rootfs for diskless nfs clients */
46 char dhcpgroup[Maxstr];
47 char vendor[Maxstr]; /* vendor info */
52 extern int validip(uchar*);
53 extern void fatal(char*, ...);
54 extern void warning(char*, ...);
55 #pragma varargck argpos fatal 1
56 #pragma varargck argpos warning 1
60 extern char* toid(uchar*, int);
61 extern void initbinding(uchar*, int);
62 extern Binding* iptobinding(uchar*, int);
63 extern Binding* idtobinding(char*, Info*, int);
64 extern Binding* idtooffer(char*, Info*);
65 extern int commitbinding(Binding*);
66 extern int releasebinding(Binding*, char*);
67 extern int samenet(uchar *ip, Info *iip);
68 extern void mkoffer(Binding*, char*, long);
69 extern int syncbinding(Binding*, int);
72 extern int lookup(Bootp*, Info*, Info*);
73 extern int lookupip(uchar*, char*, char*, Info*, int);
74 extern void lookupname(char*, int, Ndbtuple*);
75 extern Ipifc* findifc(uchar*);
76 extern Iplifc* localonifc(uchar*, Ipifc*);
77 extern void localip(uchar*, uchar*, Ipifc*);
78 extern int lookupserver(char*, uchar**, int, Ndbtuple *t);
79 extern Ndbtuple* lookupinfo(uchar *ipaddr, char **attr, int n);
82 extern int icmpecho(uchar*);