diff options
author | Johann Latocha | 2012-07-18 16:50:25 +0200 |
---|---|---|
committer | Johann Latocha | 2012-07-18 16:50:25 +0200 |
commit | 50f3a1a23e55111fc871c1f4bcd846da9334577a (patch) | |
tree | af15cebe1f127931ae5f0ccad09efd9600f4a65d /src/server/ipc.c | |
parent | [KERNEL] set dev number on module load (diff) | |
download | dnbd3-50f3a1a23e55111fc871c1f4bcd846da9334577a.tar.gz dnbd3-50f3a1a23e55111fc871c1f4bcd846da9334577a.tar.xz dnbd3-50f3a1a23e55111fc871c1f4bcd846da9334577a.zip |
[SERVER] Set groupid and permissions on ipc socket
Diffstat (limited to 'src/server/ipc.c')
-rw-r--r-- | src/server/ipc.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/server/ipc.c b/src/server/ipc.c index 522c4ca..674d20d 100644 --- a/src/server/ipc.c +++ b/src/server/ipc.c @@ -22,7 +22,8 @@ #include <sys/socket.h> #include <sys/un.h> #include <stdio.h> - +#include <sys/stat.h> +#include <grp.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h> @@ -68,6 +69,19 @@ void* dnbd3_ipc_receive() exit(EXIT_FAILURE); } + // Set groupID and permissions on ipc socket + struct group *grp; + grp = getgrnam(UNIX_SOCKET_GROUP); + if (grp == NULL) + { + printf("WARN: Group '%s' not found.\n", UNIX_SOCKET_GROUP); + } + else + { + chmod(UNIX_SOCKET, 0775); + chown(UNIX_SOCKET, -1, grp->gr_gid); + } + while (1) { int cmd, num, i = 0; |