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