dhcpleases.c 796 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. extern char *binddir;
  8. long now;
  9. char *blog = "ipboot";
  10. int minlease = MinLease;
  11. void
  12. main(void)
  13. {
  14. Dir *all;
  15. int i, nall, fd;
  16. Binding b;
  17. fmtinstall('E', eipfmt);
  18. fmtinstall('I', eipfmt);
  19. fmtinstall('V', eipfmt);
  20. fmtinstall('M', eipfmt);
  21. fd = open(binddir, OREAD);
  22. if(fd < 0)
  23. sysfatal("opening %s: %r", binddir);
  24. nall = dirreadall(fd, &all);
  25. if(nall < 0)
  26. sysfatal("reading %s: %r", binddir);
  27. close(fd);
  28. b.boundto = 0;
  29. b.lease = b.offer = 0;
  30. now = time(0);
  31. for(i = 0; i < nall; i++){
  32. if(parseip(b.ip, all[i].name) == -1 || syncbinding(&b, 0) < 0)
  33. continue;
  34. if(b.lease > now)
  35. print("%I leased by %s until %s", b.ip, b.boundto,
  36. ctime(b.lease));
  37. }
  38. exits(0);
  39. }