log.c 601 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include <u.h>
  2. #include <libc.h>
  3. #include <authsrv.h>
  4. #include "authcmdlib.h"
  5. static void
  6. record(char *db, char *user, char *msg)
  7. {
  8. char buf[Maxpath];
  9. int fd;
  10. snprint(buf, sizeof buf, "%s/%s/log", db, user);
  11. fd = open(buf, OWRITE);
  12. if(fd < 0)
  13. return;
  14. write(fd, msg, strlen(msg));
  15. close(fd);
  16. return;
  17. }
  18. void
  19. logfail(char *user)
  20. {
  21. if(!user)
  22. return;
  23. record(KEYDB, user, "bad");
  24. record(NETKEYDB, user, "bad");
  25. }
  26. void
  27. succeed(char *user)
  28. {
  29. if(!user)
  30. return;
  31. record(KEYDB, user, "good");
  32. record(NETKEYDB, user, "good");
  33. }
  34. void
  35. fail(char *user)
  36. {
  37. logfail(user);
  38. exits("failure");
  39. }