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