Create mail slots with security information if argument is present
authorThomas Bluemel <thomas@reactsoft.com>
Fri, 8 Oct 2004 23:20:57 +0000 (23:20 +0000)
committerThomas Bluemel <thomas@reactsoft.com>
Fri, 8 Oct 2004 23:20:57 +0000 (23:20 +0000)
svn path=/trunk/; revision=11242

reactos/lib/kernel32/file/mailslot.c

index b6b1fa7..8afb740 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mailslot.c,v 1.11 2004/06/13 20:04:55 navaraf Exp $
+/* $Id: mailslot.c,v 1.12 2004/10/08 23:20:57 weiden Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS system libraries
@@ -60,6 +60,8 @@ CreateMailslotW(LPCWSTR lpName,
    BOOLEAN Result;
    LARGE_INTEGER DefaultTimeOut;
    IO_STATUS_BLOCK Iosb;
+   ULONG Attributes = OBJ_CASE_INSENSITIVE;
+   PSECURITY_DESCRIPTOR SecurityDescriptor = NULL;
    
    Result = RtlDosPathNameToNtPathName_U((LPWSTR)lpName,
                                         &MailslotName,
@@ -73,11 +75,18 @@ CreateMailslotW(LPCWSTR lpName,
    
    DPRINT("Mailslot name: %wZ\n", &MailslotName);
    
+   if(lpSecurityAttributes)
+     {
+       SecurityDescriptor = lpSecurityAttributes->lpSecurityDescriptor;
+       if(lpSecurityAttributes->bInheritHandle)
+          Attributes |= OBJ_INHERIT;
+     }
+   
    InitializeObjectAttributes(&ObjectAttributes,
                              &MailslotName,
-                             OBJ_CASE_INSENSITIVE,
+                             Attributes,
                              NULL,
-                             NULL);
+                             SecurityDescriptor);
    
    DefaultTimeOut.QuadPart = lReadTimeout * 10000;