1219b2ee8SDavid du Colombier #include <u.h>
2219b2ee8SDavid du Colombier #include <libc.h>
39a747e4fSDavid du Colombier #include <authsrv.h>
4*5979f962SDavid du Colombier #include <bio.h>
59a747e4fSDavid du Colombier #include "authcmdlib.h"
6219b2ee8SDavid du Colombier
7219b2ee8SDavid du Colombier static void
record(char * db,char * user,char * msg)8219b2ee8SDavid du Colombier record(char *db, char *user, char *msg)
9219b2ee8SDavid du Colombier {
109a747e4fSDavid du Colombier char buf[Maxpath];
11219b2ee8SDavid du Colombier int fd;
12219b2ee8SDavid du Colombier
139a747e4fSDavid du Colombier snprint(buf, sizeof buf, "%s/%s/log", db, user);
14219b2ee8SDavid du Colombier fd = open(buf, OWRITE);
15219b2ee8SDavid du Colombier if(fd < 0)
16219b2ee8SDavid du Colombier return;
17219b2ee8SDavid du Colombier write(fd, msg, strlen(msg));
18219b2ee8SDavid du Colombier close(fd);
19219b2ee8SDavid du Colombier return;
20219b2ee8SDavid du Colombier }
21219b2ee8SDavid du Colombier
22219b2ee8SDavid du Colombier void
logfail(char * user)23219b2ee8SDavid du Colombier logfail(char *user)
24219b2ee8SDavid du Colombier {
25219b2ee8SDavid du Colombier if(!user)
26219b2ee8SDavid du Colombier return;
27219b2ee8SDavid du Colombier record(KEYDB, user, "bad");
28219b2ee8SDavid du Colombier record(NETKEYDB, user, "bad");
29219b2ee8SDavid du Colombier }
30219b2ee8SDavid du Colombier
31219b2ee8SDavid du Colombier void
succeed(char * user)32219b2ee8SDavid du Colombier succeed(char *user)
33219b2ee8SDavid du Colombier {
34219b2ee8SDavid du Colombier if(!user)
35219b2ee8SDavid du Colombier return;
36219b2ee8SDavid du Colombier record(KEYDB, user, "good");
37219b2ee8SDavid du Colombier record(NETKEYDB, user, "good");
38219b2ee8SDavid du Colombier }
39219b2ee8SDavid du Colombier
40219b2ee8SDavid du Colombier void
fail(char * user)41219b2ee8SDavid du Colombier fail(char *user)
42219b2ee8SDavid du Colombier {
43219b2ee8SDavid du Colombier logfail(user);
44219b2ee8SDavid du Colombier exits("failure");
45219b2ee8SDavid du Colombier }
46