xref: /plan9/sys/src/cmd/auth/lib/log.c (revision 5979f96214a33481f1724725761f2ef3585d2237)
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