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