13ff48bf5SDavid du Colombier #include <u.h>
23ff48bf5SDavid du Colombier #include <libc.h>
33ff48bf5SDavid du Colombier #include <bio.h>
43ff48bf5SDavid du Colombier #include <ndb.h>
53ff48bf5SDavid du Colombier #include <ip.h>
63ff48bf5SDavid du Colombier #include <dat.h>
73ff48bf5SDavid du Colombier
83ff48bf5SDavid du Colombier extern char *binddir;
9*ea58ad6fSDavid du Colombier
103ff48bf5SDavid du Colombier long now;
113ff48bf5SDavid du Colombier char *blog = "ipboot";
123ff48bf5SDavid du Colombier int minlease = MinLease;
133ff48bf5SDavid du Colombier
143ff48bf5SDavid du Colombier void
main(void)153ff48bf5SDavid du Colombier main(void)
163ff48bf5SDavid du Colombier {
173ff48bf5SDavid du Colombier Dir *all;
183ff48bf5SDavid du Colombier int i, nall, fd;
193ff48bf5SDavid du Colombier Binding b;
203ff48bf5SDavid du Colombier
213ff48bf5SDavid du Colombier fmtinstall('E', eipfmt);
223ff48bf5SDavid du Colombier fmtinstall('I', eipfmt);
233ff48bf5SDavid du Colombier fmtinstall('V', eipfmt);
243ff48bf5SDavid du Colombier fmtinstall('M', eipfmt);
253ff48bf5SDavid du Colombier
263ff48bf5SDavid du Colombier fd = open(binddir, OREAD);
273ff48bf5SDavid du Colombier if(fd < 0)
283ff48bf5SDavid du Colombier sysfatal("opening %s: %r", binddir);
293ff48bf5SDavid du Colombier nall = dirreadall(fd, &all);
303ff48bf5SDavid du Colombier if(nall < 0)
313ff48bf5SDavid du Colombier sysfatal("reading %s: %r", binddir);
323ff48bf5SDavid du Colombier close(fd);
333ff48bf5SDavid du Colombier
343ff48bf5SDavid du Colombier b.boundto = 0;
353ff48bf5SDavid du Colombier b.lease = b.offer = 0;
363ff48bf5SDavid du Colombier now = time(0);
373ff48bf5SDavid du Colombier for(i = 0; i < nall; i++){
38*ea58ad6fSDavid du Colombier if(parseip(b.ip, all[i].name) == -1 || syncbinding(&b, 0) < 0)
393ff48bf5SDavid du Colombier continue;
403ff48bf5SDavid du Colombier if(b.lease > now)
41*ea58ad6fSDavid du Colombier print("%I leased by %s until %s", b.ip, b.boundto,
42*ea58ad6fSDavid du Colombier ctime(b.lease));
433ff48bf5SDavid du Colombier }
44*ea58ad6fSDavid du Colombier exits(0);
453ff48bf5SDavid du Colombier }
46