diff options
Diffstat (limited to 'src/anet.c')
-rw-r--r-- | src/anet.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/anet.c b/src/anet.c index 692cef194..9aff4dfa1 100644 --- a/src/anet.c +++ b/src/anet.c @@ -32,6 +32,7 @@ #include <sys/types.h> #include <sys/socket.h> +#include <sys/stat.h> #include <sys/un.h> #include <netinet/in.h> #include <netinet/tcp.h> @@ -291,7 +292,7 @@ int anetTcpServer(char *err, int port, char *bindaddr) return s; } -int anetUnixServer(char *err, char *path) +int anetUnixServer(char *err, char *path, mode_t perm) { int s; struct sockaddr_un sa; @@ -304,6 +305,8 @@ int anetUnixServer(char *err, char *path) strncpy(sa.sun_path,path,sizeof(sa.sun_path)-1); if (anetListen(err,s,(struct sockaddr*)&sa,sizeof(sa)) == ANET_ERR) return ANET_ERR; + if (perm) + chmod(sa.sun_path, perm); return s; } |