Add option to create clib_socket with group write permissions
Also allow group write as default for CLI socket connections.
Change-Id: I6af1f277f70581358cd9241bf0f5cb0752fe250f
Signed-off-by: Damjan Marion <damarion@cisco.com>
diff --git a/src/vppinfra/socket.c b/src/vppinfra/socket.c
index 99b353f..4c23c23 100644
--- a/src/vppinfra/socket.c
+++ b/src/vppinfra/socket.c
@@ -38,6 +38,7 @@
#include <sys/un.h>
#include <sys/types.h>
#include <sys/socket.h>
+#include <sys/stat.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
@@ -348,6 +349,14 @@
error = clib_error_return_unix (0, "listen");
goto done;
}
+ if (addr.sa.sa_family == PF_LOCAL
+ && s->flags & SOCKET_ALLOW_GROUP_WRITE)
+ {
+ struct stat st = { 0 };
+ stat (((struct sockaddr_un *) &addr)->sun_path, &st);
+ st.st_mode |= S_IWGRP;
+ chmod (((struct sockaddr_un *) &addr)->sun_path, st.st_mode);
+ }
}
else
{