xref: /plan9/sys/src/cmd/ip/dhcpd/dhcpleases.c (revision ea58ad6fbee60d5a3fca57ac646881779dd8f0ea)
1 #include <u.h>
2 #include <libc.h>
3 #include <bio.h>
4 #include <ndb.h>
5 #include <ip.h>
6 #include <dat.h>
7 
8 extern	char *binddir;
9 
10 long now;
11 char *blog = "ipboot";
12 int minlease = MinLease;
13 
14 void
main(void)15 main(void)
16 {
17 	Dir *all;
18 	int i, nall, fd;
19 	Binding b;
20 
21 	fmtinstall('E', eipfmt);
22 	fmtinstall('I', eipfmt);
23 	fmtinstall('V', eipfmt);
24 	fmtinstall('M', eipfmt);
25 
26 	fd = open(binddir, OREAD);
27 	if(fd < 0)
28 		sysfatal("opening %s: %r", binddir);
29 	nall = dirreadall(fd, &all);
30 	if(nall < 0)
31 		sysfatal("reading %s: %r", binddir);
32 	close(fd);
33 
34 	b.boundto = 0;
35 	b.lease = b.offer = 0;
36 	now = time(0);
37 	for(i = 0; i < nall; i++){
38 		if(parseip(b.ip, all[i].name) == -1 || syncbinding(&b, 0) < 0)
39 			continue;
40 		if(b.lease > now)
41 			print("%I leased by %s until %s", b.ip, b.boundto,
42 				ctime(b.lease));
43 	}
44 	exits(0);
45 }
46