xref: /plan9/sys/src/cmd/ip/dhcpd/dat.h (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
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