Implemented PipeSecurity. GetAccessControl, SetAccessControl, and ACL-containing...
authorJames Bellinger <jfb@zer7.com>
Sun, 8 Jul 2012 17:44:50 +0000 (13:44 -0400)
committerJames Bellinger <jfb@zer7.com>
Sun, 8 Jul 2012 19:13:51 +0000 (15:13 -0400)
commit490a86b6ecc02fbe31445ad201f01e90678e2c21
tree04be941645fae3b255822d2e0b7b61585125d5c8
parentb58c6c1a790bf7473fc5b8aad304532688eeed5a
Implemented PipeSecurity. GetAccessControl, SetAccessControl, and ACL-containing constructor overrides now work on pipes.

On another note, after writing a test I discovered Asynchronous pipes appear to be completely broken on Win32.
The class does not correctly handle overlapped I/O. This patch doesn't fix that.

One other fix in this patch, the DllImports for Win32 pipes did not have SetLastError set.
So, they were unable to return a meaningful error in the event of failure. This is now fixed, and
UnauthorizedAccessException correctly throws for pipe connects denied by ACL (necessary for PipeSecurity test).
mcs/class/System.Core/System.Core_test.dll.sources
mcs/class/System.Core/System.IO.Pipes/AnonymousPipeServerStream.cs
mcs/class/System.Core/System.IO.Pipes/NamedPipeServerStream.cs
mcs/class/System.Core/System.IO.Pipes/PipeSecurity.cs
mcs/class/System.Core/System.IO.Pipes/PipeStream.cs
mcs/class/System.Core/System.IO.Pipes/PipeWin32.cs
mcs/class/System.Core/Test/System.IO.Pipes/PipeSecurityTest.cs [new file with mode: 0644]