]> code.citadel.org Git - citadel.git/blobdiff - citadel/sysdep.c
* add support for reading the UID via getsockopt from unix domain socket conneciotns...
[citadel.git] / citadel / sysdep.c
index bf39a3177224725e3fdb4ca1c39f1cdf073d58cf..90b5e4517f2ce34860b8e9fd57994238627b894e 100644 (file)
@@ -375,6 +375,9 @@ int ig_uds_server(char *sockpath, int queue_len, char **errormessage)
        int s;
        int i;
        int actual_queue_len;
+#ifdef HAVE_STRUCT_UCRED
+       int passcred = 1;
+#endif
 
        actual_queue_len = queue_len;
        if (actual_queue_len < 5) actual_queue_len = 5;
@@ -431,6 +434,10 @@ int ig_uds_server(char *sockpath, int queue_len, char **errormessage)
                return(-1);
        }
 
+#ifdef HAVE_STRUCT_UCRED
+       setsockopt(s, SOL_SOCKET, SO_PASSCRED, &passcred, sizeof(passcred));
+#endif
+
        chmod(sockpath, S_ISGID|S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
        return(s);
 }