xref: /plan9-contrib/sys/src/cmd/auth/lib/log.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1219b2ee8SDavid du Colombier #include <u.h>
2219b2ee8SDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier #include <authsrv.h>
4*9a747e4fSDavid du Colombier #include "authcmdlib.h"
5219b2ee8SDavid du Colombier 
6219b2ee8SDavid du Colombier static void
7219b2ee8SDavid du Colombier record(char *db, char *user, char *msg)
8219b2ee8SDavid du Colombier {
9*9a747e4fSDavid du Colombier 	char buf[Maxpath];
10219b2ee8SDavid du Colombier 	int fd;
11219b2ee8SDavid du Colombier 
12*9a747e4fSDavid du Colombier 	snprint(buf, sizeof buf, "%s/%s/log", db, user);
13219b2ee8SDavid du Colombier 	fd = open(buf, OWRITE);
14219b2ee8SDavid du Colombier 	if(fd < 0)
15219b2ee8SDavid du Colombier 		return;
16219b2ee8SDavid du Colombier 	write(fd, msg, strlen(msg));
17219b2ee8SDavid du Colombier 	close(fd);
18219b2ee8SDavid du Colombier 	return;
19219b2ee8SDavid du Colombier }
20219b2ee8SDavid du Colombier 
21219b2ee8SDavid du Colombier void
22219b2ee8SDavid du Colombier logfail(char *user)
23219b2ee8SDavid du Colombier {
24219b2ee8SDavid du Colombier 	if(!user)
25219b2ee8SDavid du Colombier 		return;
26219b2ee8SDavid du Colombier 	record(KEYDB, user, "bad");
27219b2ee8SDavid du Colombier 	record(NETKEYDB, user, "bad");
28219b2ee8SDavid du Colombier }
29219b2ee8SDavid du Colombier 
30219b2ee8SDavid du Colombier void
31219b2ee8SDavid du Colombier succeed(char *user)
32219b2ee8SDavid du Colombier {
33219b2ee8SDavid du Colombier 	if(!user)
34219b2ee8SDavid du Colombier 		return;
35219b2ee8SDavid du Colombier 	record(KEYDB, user, "good");
36219b2ee8SDavid du Colombier 	record(NETKEYDB, user, "good");
37219b2ee8SDavid du Colombier }
38219b2ee8SDavid du Colombier 
39219b2ee8SDavid du Colombier void
40219b2ee8SDavid du Colombier fail(char *user)
41219b2ee8SDavid du Colombier {
42219b2ee8SDavid du Colombier 	logfail(user);
43219b2ee8SDavid du Colombier 	exits("failure");
44219b2ee8SDavid du Colombier }
45