diff --git a/cdba-server.c b/cdba-server.c index c65f606..425b2b0 100644 --- a/cdba-server.c +++ b/cdba-server.c @@ -38,6 +38,7 @@ #include #include #include +#include #include "cdba-server.h" #include "circ_buf.h" @@ -356,6 +357,12 @@ int main(int argc, char **argv) signal(SIGPIPE, sigpipe_handler); username = getenv("CDBA_USER"); + if (!username) + username = getenv("USER"); + if (!username) + username = "nobody"; + + openlog("cdba-server", 0, LOG_DAEMON); ret = device_parser(".cdba"); if (ret) { diff --git a/device.c b/device.c index 95cded8..329cf4f 100644 --- a/device.c +++ b/device.c @@ -39,6 +39,7 @@ #include #include #include +#include #include "cdba-server.h" #include "device.h" @@ -127,11 +128,17 @@ struct device *device_open(const char *board, goto found; } + syslog(LOG_INFO, "user %s asked for non-existing board %s", username, board); return NULL; found: - if (!device_check_access(device, username)) + if (!device_check_access(device, username)) { + syslog(LOG_INFO, "user %s access denied to the board %s", username, board); + return NULL; + } + + syslog(LOG_INFO, "user %s opening board %s", username, board); assert(device->console_ops); assert(device->console_ops->open);