Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 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 if found in database */
31
	char	domain[Maxstr];	/* system domain name */
32
	char	bootf[Maxstr];		/* boot file */
33
	char	bootf2[Maxstr];	/* alternative boot file */
34
	uchar	tftp[NDB_IPlen];	/* ip addr of tftp server */
35
	uchar	tftp2[NDB_IPlen];	/* ip addr of alternate server */
36
	uchar	ipaddr[NDB_IPlen];	/* ip address of system */
37
	uchar	ipmask[NDB_IPlen];	/* ip network mask */
38
	uchar	ipnet[NDB_IPlen];	/* ip network address (ipaddr & ipmask) */
39
	uchar	etheraddr[6];		/* ethernet address */
40
	uchar	gwip[NDB_IPlen];	/* gateway ip address */
41
	uchar	fsip[NDB_IPlen];	/* file system ip address */
42
	uchar	auip[NDB_IPlen];	/* authentication server ip address */
43
	char	rootpath[Maxstr];	/* rootfs for diskless nfs clients */
44
	char	dhcpgroup[Maxstr];
45
	char	vendor[Maxstr];	/* vendor info */
46
};
47
 
48
 
49
/* from dhcp.c */
50
extern int	validip(uchar*);
51
extern void	warning(int, char*, ...);
52
extern int	minlease;
53
 
54
/* from db.c */
55
extern char*	tohex(char*, uchar*, int);
56
extern char*	toid(uchar*, int);
57
extern void	initbinding(uchar*, int);
58
extern Binding*	iptobinding(uchar*, int);
59
extern Binding*	idtobinding(char*, Info*, int);
60
extern Binding*	idtooffer(char*, Info*);
61
extern int	commitbinding(Binding*);
62
extern int	releasebinding(Binding*, char*);
63
extern int	samenet(uchar *ip, Info *iip);
64
extern void	mkoffer(Binding*, char*, long);
65
extern int	syncbinding(Binding*, int);
66
 
67
/* from ndb.c */
68
extern int	lookup(Bootp*, Info*, Info*);
69
extern int	lookupip(uchar*, Info*, int);
70
extern void	lookupname(char*, Ndbtuple*);
71
extern Iplifc*	findlifc(uchar*);
72
extern int	forme(uchar*);
73
extern int	lookupserver(char*, uchar**, Ndbtuple *t);
74
extern Ndbtuple* lookupinfo(uchar *ipaddr, char **attr, int n);
75
 
76
/* from icmp.c */
77
extern int	icmpecho(uchar*);
78
 
79
extern char	*binddir;
80
extern int	debug;
81
extern char	*blog;
82
extern Ipifc	*ipifcs;
83
extern long	now;
84
extern char	*ndbfile;
85