From b1ab2b9ac1cfc15d2a8f5850145dd69043cc3ef7 Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Sat, 30 Aug 2008 08:24:52 +0200 Subject: LCR now runs as a user. You may change the path of socket and lock files. LCR admin socket's flags can now be altered to allow access to other users. Lock and socket files will now be removed when terminating LCR. modified: Makefile modified: chan_lcr.c modified: default/options.conf modified: lcradmin.c modified: lcrsocket.h modified: main.c modified: options.c modified: options.h modified: socket_server.c --- socket_server.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'socket_server.c') diff --git a/socket_server.c b/socket_server.c index 0b6e173..e1853d3 100644 --- a/socket_server.c +++ b/socket_server.c @@ -15,7 +15,7 @@ #include -char *socket_name = SOCKET_NAME; +char socket_name[128]; int sock = -1; struct sockaddr_un sock_address; @@ -36,6 +36,7 @@ int admin_init(void) } fhuse++; memset(&sock_address, 0, sizeof(sock_address)); + SPRINT(socket_name, SOCKET_NAME, options.lock); sock_address.sun_family = AF_UNIX; UCPY(sock_address.sun_path, socket_name); unlink(socket_name); @@ -66,6 +67,10 @@ int admin_init(void) PERROR("Failed to set socket \"%s\" into non-blocking mode. (errno=%d)\n", sock_address.sun_path, errno); return(-1); } + if (chmod(socket_name, options.socketrights) < 0) + { + PERROR("Failed to change socket rigts to %d. (errno=%d)\n", options.socketrights, errno); + } return(0); } @@ -176,6 +181,8 @@ void admin_cleanup(void) close(sock); fhuse--; } + + unlink(socket_name); } -- cgit v1.2.3-55-g7522