]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/ip/dhcpd/dat.h
ip/dhcpd: add varargck pragma for warning() and fatal(), do syserr with %r format
[plan9front.git] / sys / src / cmd / ip / dhcpd / dat.h
1 #include "../dhcp.h"
2
3 enum
4 {
5         Maxstr= 256,
6 };
7
8 typedef struct Binding Binding;
9 struct Binding
10 {
11         Binding *next;
12         uchar   ip[IPaddrlen];
13
14         char    *boundto;       /* id last bound to */
15         char    *offeredto;     /* id we've offered this to */
16
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 */
23
24         Qid     q;              /* qid at the last syncbinding */
25 };
26
27 typedef struct Info     Info;
28 struct Info
29 {
30         int     indb;                   /* true when found in ndb */
31         Ipifc   *ifc;                   /* ifc when directly connected */
32
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) */
36
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 */
48 };
49
50
51 /* from dhcp.c */
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
57 extern int      minlease;
58
59 /* from db.c */
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);
70
71 /* from ndb.c */
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);
80
81 /* from icmp.c */
82 extern int      icmpecho(uchar*);
83
84 extern char     *binddir;
85 extern int      debug;
86 extern char     *blog;
87 extern Ipifc    *ipifcs;
88 extern long     now;
89 extern char     *ndbfile;
90 extern uchar    zeros[];