initial checkin of system.directoryservices.protocols stub.
authorAtsushi Eno <atsushieno@gmail.com>
Sun, 11 Jan 2009 19:14:34 +0000 (19:14 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Sun, 11 Jan 2009 19:14:34 +0000 (19:14 -0000)
I'm not going to implement this assembly, it's just for stub to
make it possible to build some applications that depend on this
assembly. Feel free to implement it.

svn path=/trunk/mcs/; revision=122999

104 files changed:
mcs/class/System.DirectoryServices.Protocols/Assembly/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/Assembly/ChangeLog [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/ChangeLog [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/Makefile [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols.dll.sources [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AddRequest.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AddResponse.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AsqRequestControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AsqResponseControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AuthType.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/BerConversionException.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/BerConverter.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ChangeLog [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/CompareRequest.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/CompareResponse.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/CrossDomainMoveControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DeleteRequest.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DeleteResponse.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DereferenceAlias.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DereferenceConnectionCallback.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirSyncRequestControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirSyncResponseControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttribute.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttributeCollection.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttributeModification.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttributeModificationCollection.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttributeOperation.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryConnection.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryControlCollection.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryException.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryIdentifier.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryNotificationControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryOperation.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryOperationException.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryRequest.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryResponse.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectorySynchronizationOptions.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DomainScopeControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlAuthRequest.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlAuthResponse.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlDirectoryIdentifier.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlDocument.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlDocumentProcessing.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlErrorProcessing.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlErrorResponse.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlInvalidDocumentException.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlRequestDocument.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlResponseDocument.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlResponseOrder.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlSoapConnection.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlSoapHttpConnection.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ErrorResponseCategory.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ErrorResponseException.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ExtendedDNControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ExtendedDNFlag.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ExtendedRequest.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ExtendedResponse.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LazyCommitControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LdapConnection.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LdapDirectoryIdentifier.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LdapException.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LdapSessionOptions.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LocatorFlags.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ModifyDNRequest.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ModifyDNResponse.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ModifyRequest.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ModifyResponse.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/NotifyOfNewConnectionCallback.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PageResultRequestControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PageResultResponseControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PartialResultProcessing.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PartialResultsCollection.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PermissiveModifyControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/QueryClientCertificateCallback.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/QueryForConnectionCallback.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/QuotaControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ReferralCallback.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ReferralChasingOptions.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ResultCode.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchOption.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchOptionsControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchRequest.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResponse.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultAttributeCollection.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultEntry.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultEntryCollection.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultReference.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultReferenceCollection.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchScope.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SecurityDescriptorFlagControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SecurityMasks.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SecurityPackageContextConnectionInformation.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SecurityProtocol.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ShowDeletedControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SortKey.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SortRequestControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SortResponseControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/TlsOperationException.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/TreeDeleteControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/VerifyNameControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/VerifyServerCertificateCallback.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/VlvRequestControl.cs [new file with mode: 0644]
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/VlvResponseControl.cs [new file with mode: 0644]

diff --git a/mcs/class/System.DirectoryServices.Protocols/Assembly/AssemblyInfo.cs b/mcs/class/System.DirectoryServices.Protocols/Assembly/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..c81ec1d
--- /dev/null
@@ -0,0 +1,62 @@
+//
+// AssemblyInfo.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//   Marek Safar <marek.safar@gmail.com>
+//
+// Copyright (C) 2008 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Reflection;
+using System.Resources;
+using System.Security;
+using System.Diagnostics;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about the System.DirectoryServices.Protocols assembly
+// v3.5 Assembly
+
+[assembly: AssemblyTitle ("System.DirectoryServices.Protocols.dll")]
+[assembly: AssemblyDescription ("System.DirectoryServices.Protocols.dll")]
+[assembly: AssemblyDefaultAlias ("System.DirectoryServices.Protocols.dll")]
+
+[assembly: AssemblyCompany (Consts.MonoCompany)]
+[assembly: AssemblyProduct (Consts.MonoProduct)]
+[assembly: AssemblyCopyright (Consts.MonoCopyright)]
+[assembly: AssemblyVersion (Consts.FxVersion)]
+[assembly: SatelliteContractVersion (Consts.FxVersion)]
+[assembly: AssemblyInformationalVersion (Consts.FxFileVersion)]
+[assembly: AssemblyFileVersion (Consts.FxFileVersion)]
+
+[assembly: NeutralResourcesLanguage ("en-US")]
+[assembly: CLSCompliant (true)]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../ecma.pub")]
+
+[assembly: ComVisible (false)]
+[assembly: AllowPartiallyTrustedCallers]
+
diff --git a/mcs/class/System.DirectoryServices.Protocols/Assembly/ChangeLog b/mcs/class/System.DirectoryServices.Protocols/Assembly/ChangeLog
new file mode 100644 (file)
index 0000000..a4c849b
--- /dev/null
@@ -0,0 +1,3 @@
+2009-01-11  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * AssemblyInfo.cs : initial checkin.
diff --git a/mcs/class/System.DirectoryServices.Protocols/ChangeLog b/mcs/class/System.DirectoryServices.Protocols/ChangeLog
new file mode 100644 (file)
index 0000000..cbb035a
--- /dev/null
@@ -0,0 +1,4 @@
+2009-01-11  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Makefile, System.DirectoryServices.Protocols.dll.sources :
+         initial checkin.
diff --git a/mcs/class/System.DirectoryServices.Protocols/Makefile b/mcs/class/System.DirectoryServices.Protocols/Makefile
new file mode 100644 (file)
index 0000000..f375e40
--- /dev/null
@@ -0,0 +1,18 @@
+thisdir = class/System.DirectoryServices.Protocols
+SUBDIRS = 
+include ../../build/rules.make
+
+LIBRARY = System.DirectoryServices.Protocols.dll
+LIB_MCS_FLAGS = \
+                /r:System.dll \
+                /r:System.DirectoryServices.dll \
+                /r:System.Xml.dll \
+
+NO_TEST = yes
+
+ifeq (2.0, $(FRAMEWORK_VERSION))
+# This is a .NET 3.5 only assembly, but built during the 2.0 build
+LIB_MCS_FLAGS += -d:NET_3_5
+endif
+
+include ../../build/library.make
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols.dll.sources b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols.dll.sources
new file mode 100644 (file)
index 0000000..346fce8
--- /dev/null
@@ -0,0 +1,102 @@
+../../build/common/Consts.cs
+../../build/common/Locale.cs
+../../build/common/MonoTODOAttribute.cs
+Assembly/AssemblyInfo.cs
+System.DirectoryServices.Protocols/AddRequest.cs
+System.DirectoryServices.Protocols/AddResponse.cs
+System.DirectoryServices.Protocols/AsqRequestControl.cs
+System.DirectoryServices.Protocols/AsqResponseControl.cs
+System.DirectoryServices.Protocols/AuthType.cs
+System.DirectoryServices.Protocols/BerConversionException.cs
+System.DirectoryServices.Protocols/BerConverter.cs
+System.DirectoryServices.Protocols/CompareRequest.cs
+System.DirectoryServices.Protocols/CompareResponse.cs
+System.DirectoryServices.Protocols/CrossDomainMoveControl.cs
+System.DirectoryServices.Protocols/DeleteRequest.cs
+System.DirectoryServices.Protocols/DeleteResponse.cs
+System.DirectoryServices.Protocols/DereferenceAlias.cs
+System.DirectoryServices.Protocols/DereferenceConnectionCallback.cs
+System.DirectoryServices.Protocols/DirSyncRequestControl.cs
+System.DirectoryServices.Protocols/DirSyncResponseControl.cs
+System.DirectoryServices.Protocols/DirectoryAttribute.cs
+System.DirectoryServices.Protocols/DirectoryAttributeCollection.cs
+System.DirectoryServices.Protocols/DirectoryAttributeModification.cs
+System.DirectoryServices.Protocols/DirectoryAttributeModificationCollection.cs
+System.DirectoryServices.Protocols/DirectoryAttributeOperation.cs
+System.DirectoryServices.Protocols/DirectoryConnection.cs
+System.DirectoryServices.Protocols/DirectoryControl.cs
+System.DirectoryServices.Protocols/DirectoryControlCollection.cs
+System.DirectoryServices.Protocols/DirectoryException.cs
+System.DirectoryServices.Protocols/DirectoryIdentifier.cs
+System.DirectoryServices.Protocols/DirectoryNotificationControl.cs
+System.DirectoryServices.Protocols/DirectoryOperation.cs
+System.DirectoryServices.Protocols/DirectoryOperationException.cs
+System.DirectoryServices.Protocols/DirectoryRequest.cs
+System.DirectoryServices.Protocols/DirectoryResponse.cs
+System.DirectoryServices.Protocols/DirectorySynchronizationOptions.cs
+System.DirectoryServices.Protocols/DomainScopeControl.cs
+System.DirectoryServices.Protocols/DsmlAuthRequest.cs
+System.DirectoryServices.Protocols/DsmlAuthResponse.cs
+System.DirectoryServices.Protocols/DsmlDirectoryIdentifier.cs
+System.DirectoryServices.Protocols/DsmlDocument.cs
+System.DirectoryServices.Protocols/DsmlDocumentProcessing.cs
+System.DirectoryServices.Protocols/DsmlErrorProcessing.cs
+System.DirectoryServices.Protocols/DsmlErrorResponse.cs
+System.DirectoryServices.Protocols/DsmlInvalidDocumentException.cs
+System.DirectoryServices.Protocols/DsmlRequestDocument.cs
+System.DirectoryServices.Protocols/DsmlResponseDocument.cs
+System.DirectoryServices.Protocols/DsmlResponseOrder.cs
+System.DirectoryServices.Protocols/DsmlSoapConnection.cs
+System.DirectoryServices.Protocols/DsmlSoapHttpConnection.cs
+System.DirectoryServices.Protocols/ErrorResponseCategory.cs
+System.DirectoryServices.Protocols/ErrorResponseException.cs
+System.DirectoryServices.Protocols/ExtendedDNControl.cs
+System.DirectoryServices.Protocols/ExtendedDNFlag.cs
+System.DirectoryServices.Protocols/ExtendedRequest.cs
+System.DirectoryServices.Protocols/ExtendedResponse.cs
+System.DirectoryServices.Protocols/LazyCommitControl.cs
+System.DirectoryServices.Protocols/LdapConnection.cs
+System.DirectoryServices.Protocols/LdapDirectoryIdentifier.cs
+System.DirectoryServices.Protocols/LdapException.cs
+System.DirectoryServices.Protocols/LdapSessionOptions.cs
+System.DirectoryServices.Protocols/LocatorFlags.cs
+System.DirectoryServices.Protocols/ModifyDNRequest.cs
+System.DirectoryServices.Protocols/ModifyDNResponse.cs
+System.DirectoryServices.Protocols/ModifyRequest.cs
+System.DirectoryServices.Protocols/ModifyResponse.cs
+System.DirectoryServices.Protocols/NotifyOfNewConnectionCallback.cs
+System.DirectoryServices.Protocols/PageResultRequestControl.cs
+System.DirectoryServices.Protocols/PageResultResponseControl.cs
+System.DirectoryServices.Protocols/PartialResultProcessing.cs
+System.DirectoryServices.Protocols/PartialResultsCollection.cs
+System.DirectoryServices.Protocols/PermissiveModifyControl.cs
+System.DirectoryServices.Protocols/QueryClientCertificateCallback.cs
+System.DirectoryServices.Protocols/QueryForConnectionCallback.cs
+System.DirectoryServices.Protocols/QuotaControl.cs
+System.DirectoryServices.Protocols/ReferralCallback.cs
+System.DirectoryServices.Protocols/ReferralChasingOptions.cs
+System.DirectoryServices.Protocols/ResultCode.cs
+System.DirectoryServices.Protocols/SearchOption.cs
+System.DirectoryServices.Protocols/SearchOptionsControl.cs
+System.DirectoryServices.Protocols/SearchRequest.cs
+System.DirectoryServices.Protocols/SearchResponse.cs
+System.DirectoryServices.Protocols/SearchResultAttributeCollection.cs
+System.DirectoryServices.Protocols/SearchResultEntry.cs
+System.DirectoryServices.Protocols/SearchResultEntryCollection.cs
+System.DirectoryServices.Protocols/SearchResultReference.cs
+System.DirectoryServices.Protocols/SearchResultReferenceCollection.cs
+System.DirectoryServices.Protocols/SearchScope.cs
+System.DirectoryServices.Protocols/SecurityDescriptorFlagControl.cs
+System.DirectoryServices.Protocols/SecurityMasks.cs
+System.DirectoryServices.Protocols/SecurityPackageContextConnectionInformation.cs
+System.DirectoryServices.Protocols/SecurityProtocol.cs
+System.DirectoryServices.Protocols/ShowDeletedControl.cs
+System.DirectoryServices.Protocols/SortKey.cs
+System.DirectoryServices.Protocols/SortRequestControl.cs
+System.DirectoryServices.Protocols/SortResponseControl.cs
+System.DirectoryServices.Protocols/TlsOperationException.cs
+System.DirectoryServices.Protocols/TreeDeleteControl.cs
+System.DirectoryServices.Protocols/VerifyNameControl.cs
+System.DirectoryServices.Protocols/VerifyServerCertificateCallback.cs
+System.DirectoryServices.Protocols/VlvRequestControl.cs
+System.DirectoryServices.Protocols/VlvResponseControl.cs
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AddRequest.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AddRequest.cs
new file mode 100644 (file)
index 0000000..3fbf7d9
--- /dev/null
@@ -0,0 +1,65 @@
+//
+// AddRequest.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class AddRequest : DirectoryRequest
+       {
+               public AddRequest ()
+               {
+               }
+
+               public AddRequest (string distinguishedName, params DirectoryAttribute [] attributes)
+               {
+                       DistinguishedName = distinguishedName;
+                       Attributes = new DirectoryAttributeCollection (attributes);
+               }
+
+               public AddRequest (string distinguishedName, string objectClass)
+               {
+                       DistinguishedName = distinguishedName;
+                       Attributes = new DirectoryAttributeCollection (new DirectoryAttribute [0]);
+
+                       throw new NotImplementedException ();
+               }
+
+               public DirectoryAttributeCollection Attributes { get; private set; }
+               public string DistinguishedName { get; set; }
+
+               protected override XmlElement ToXmlNode (XmlDocument doc)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AddResponse.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AddResponse.cs
new file mode 100644 (file)
index 0000000..994140c
--- /dev/null
@@ -0,0 +1,38 @@
+//
+// AddResponse.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class AddResponse : DirectoryResponse
+       {
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AsqRequestControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AsqRequestControl.cs
new file mode 100644 (file)
index 0000000..f8a43fb
--- /dev/null
@@ -0,0 +1,56 @@
+//
+// AsqRequestControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class AsqRequestControl : DirectoryControl
+       {
+               public AsqRequestControl ()
+                       : base (null, null, false, false)
+               {
+               }
+
+               public AsqRequestControl (string attributeName)
+                       : this ()
+               {
+                       AttributeName = attributeName;
+               }
+
+               public string AttributeName { get; set; }
+
+               [MonoTODO]
+               public override byte [] GetValue ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AsqResponseControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AsqResponseControl.cs
new file mode 100644 (file)
index 0000000..9cb8379
--- /dev/null
@@ -0,0 +1,48 @@
+//
+// AsqResponseControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class AsqResponseControl : DirectoryControl
+       {
+               internal AsqResponseControl (ResultCode result)
+                       : base (null, null, false, false)
+               {
+                       Result = result;
+                       throw new NotImplementedException ();
+               }
+
+               public ResultCode Result { get; private set; }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AuthType.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/AuthType.cs
new file mode 100644 (file)
index 0000000..ffcabad
--- /dev/null
@@ -0,0 +1,49 @@
+//
+// AuthType.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum AuthType
+       {
+               Anonymous,
+               Basic,
+               Negotiate,
+               Ntlm,
+               Digest,
+               Sicily,
+               Dpa,
+               Msn,
+               External,
+               Kerberos
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/BerConversionException.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/BerConversionException.cs
new file mode 100644 (file)
index 0000000..174d2ef
--- /dev/null
@@ -0,0 +1,58 @@
+//
+// BerConversionException.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Runtime.Serialization;
+
+namespace System.DirectoryServices.Protocols
+{
+       [Serializable]
+       public class BerConversionException : DirectoryException
+       {
+               public BerConversionException ()
+                       : this ("BER conversion error")
+               {
+               }
+
+               public BerConversionException (string message)
+                       : base (message)
+               {
+               }
+               public BerConversionException (string message, Exception inner)
+                       : base (message, inner)
+               {
+               }
+
+               protected BerConversionException (SerializationInfo info, StreamingContext context)
+                       : base (info, context)
+               {
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/BerConverter.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/BerConverter.cs
new file mode 100644 (file)
index 0000000..c19bf08
--- /dev/null
@@ -0,0 +1,51 @@
+//
+// BerConverter.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public sealed class BerConverter
+       {
+               [MonoTODO]
+               public static object [] Decode (string format, byte [] value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public static byte [] Encode (string format, params object [] value)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ChangeLog b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ChangeLog
new file mode 100644 (file)
index 0000000..7e402ed
--- /dev/null
@@ -0,0 +1,6 @@
+2009-01-11  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * initial checkin. Stubs and some implemented code for all 2.0 types.
+         I'm not going to implement this assembly, it's just for stub to
+         make it possible to build some applications that depend on this
+         assembly. Feel free to implement it.
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/CompareRequest.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/CompareRequest.cs
new file mode 100644 (file)
index 0000000..55dc5cb
--- /dev/null
@@ -0,0 +1,75 @@
+//
+// CompareRequest.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class CompareRequest : DirectoryRequest
+       {
+               public CompareRequest ()
+               {
+               }
+
+               public CompareRequest (string distinguishedName, DirectoryAttribute assertion)
+               {
+                       DistinguishedName = distinguishedName;
+                       Assertion = assertion;
+               }
+
+               public CompareRequest (string distinguishedName, string attributeName, byte [] value)
+                       : this (distinguishedName, new DirectoryAttribute (attributeName, value))
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public CompareRequest (string distinguishedName, string attributeName, string value)
+                       : this (distinguishedName, new DirectoryAttribute (attributeName, value))
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public CompareRequest (string distinguishedName, string attributeName, Uri value)
+                       : this (distinguishedName, new DirectoryAttribute (attributeName, value))
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public DirectoryAttribute Assertion { get; private set; }
+               public string DistinguishedName { get; set; }
+
+               [MonoTODO]
+               protected override XmlElement ToXmlNode (XmlDocument doc)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/CompareResponse.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/CompareResponse.cs
new file mode 100644 (file)
index 0000000..969259b
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// CompareResponse.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class CompareResponse : DirectoryResponse
+       {
+               internal CompareResponse ()
+               {
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/CrossDomainMoveControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/CrossDomainMoveControl.cs
new file mode 100644 (file)
index 0000000..fc88877
--- /dev/null
@@ -0,0 +1,57 @@
+//
+// CrossDomainMoveControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class CrossDomainMoveControl : DirectoryControl
+       {
+               public CrossDomainMoveControl ()
+                       : base (null, null, false, false)
+               {
+               }
+
+               public CrossDomainMoveControl (string targetDomainController)
+                       : this ()
+               {
+                       TargetDomainController = targetDomainController;
+               }
+
+               public string TargetDomainController { get; set; }
+
+               [MonoTODO]
+               public override byte [] GetValue ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DeleteRequest.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DeleteRequest.cs
new file mode 100644 (file)
index 0000000..22105d2
--- /dev/null
@@ -0,0 +1,55 @@
+//
+// DeleteRequest.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class DeleteRequest : DirectoryRequest
+       {
+               public DeleteRequest ()
+               {
+               }
+
+               public DeleteRequest (string distinguishedName)
+               {
+                       DistinguishedName = distinguishedName;
+               }
+
+               public string DistinguishedName { get; set; }
+
+               [MonoTODO]
+               protected override XmlElement ToXmlNode (XmlDocument doc)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DeleteResponse.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DeleteResponse.cs
new file mode 100644 (file)
index 0000000..c6e5159
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// DeleteResponse.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class DeleteResponse : DirectoryResponse
+       {
+               internal DeleteResponse ()
+               {
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DereferenceAlias.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DereferenceAlias.cs
new file mode 100644 (file)
index 0000000..a77da3b
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// DereferenceAlias.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum DereferenceAlias
+       {
+               Never,
+               InSearching,
+               FindingBaseObject,
+               Always
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DereferenceConnectionCallback.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DereferenceConnectionCallback.cs
new file mode 100644 (file)
index 0000000..d7b45cf
--- /dev/null
@@ -0,0 +1,32 @@
+//
+// DereferenceConnectionCallback.cs
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public delegate void DereferenceConnectionCallback (LdapConnection primaryConnection, LdapConnection connectionToDereference);
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirSyncRequestControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirSyncRequestControl.cs
new file mode 100644 (file)
index 0000000..e4801f0
--- /dev/null
@@ -0,0 +1,70 @@
+//
+// DirSyncRequestControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class DirSyncRequestControl : DirectoryControl
+       {
+               public DirSyncRequestControl ()
+                       : base (null, null, false, false)
+               {
+               }
+
+               public DirSyncRequestControl (byte [] cookie)
+                       : this ()
+               {
+                       Cookie = cookie;
+               }
+
+               public DirSyncRequestControl (byte [] cookie, DirectorySynchronizationOptions option)
+                       : this (cookie)
+               {
+                       Option = option;
+               }
+
+               public DirSyncRequestControl (byte [] cookie, DirectorySynchronizationOptions option, int attributeCount)
+                       : this (cookie, option)
+               {
+                       AttributeCount = attributeCount;
+               }
+
+               public int AttributeCount { get; set; }
+               public byte [] Cookie { get; set; }
+               public DirectorySynchronizationOptions Option { get; set; }
+
+               public override byte [] GetValue ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirSyncResponseControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirSyncResponseControl.cs
new file mode 100644 (file)
index 0000000..865fa94
--- /dev/null
@@ -0,0 +1,51 @@
+//
+// DirSyncResponseControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class DirSyncResponseControl : DirectoryControl
+       {
+               internal DirSyncResponseControl (byte [] cookie, bool moreData, int resultSize)
+                       : base (null, null, false, false)
+               {
+                       Cookie = cookie;
+                       MoreData = moreData;
+                       ResultSize = resultSize;
+               }
+
+               public byte [] Cookie { get; private set; }
+               public bool MoreData { get; private set; }
+               public int ResultSize { get; private set; }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttribute.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttribute.cs
new file mode 100644 (file)
index 0000000..2471131
--- /dev/null
@@ -0,0 +1,152 @@
+//
+// DirectoryAttribute.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class DirectoryAttribute : CollectionBase
+       {
+               public DirectoryAttribute ()
+               {
+               }
+
+               public DirectoryAttribute (string name, byte [] value)
+               {
+                       Name = name;
+                       Add (value);
+               }
+
+               public DirectoryAttribute (string name, params object [] values)
+               {
+                       Name = name;
+                       AddRange (values);
+               }
+
+               public DirectoryAttribute (string name, string value)
+               {
+                       Name = name;
+                       Add (value);
+               }
+
+               public DirectoryAttribute (string name, Uri value)
+               {
+                       Name = name;
+                       Add (value);
+               }
+
+               public object this [int index] {
+                       get { return List [index]; }
+                       set { List [index] = value; }
+               }
+
+               public string Name { get; set; }
+
+               [MonoTODO]
+               public int Add (byte [] value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public int Add (string value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public int Add (Uri value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public void AddRange (object [] values)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public bool Contains (object value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public void CopyTo (object [] array, int index)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public object [] GetValues (Type valuesType)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public int IndexOf (object value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public void Insert (int index, byte [] value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public void Insert (int index, string value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public void Insert (int index, Uri value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               protected override void OnValidate (object value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public void Remove (object value)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttributeCollection.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttributeCollection.cs
new file mode 100644 (file)
index 0000000..1661c7c
--- /dev/null
@@ -0,0 +1,98 @@
+//
+// DirectoryAttributeCollection.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class DirectoryAttributeCollection : CollectionBase
+       {
+               internal DirectoryAttributeCollection (DirectoryAttribute [] attributes)
+               {
+                       list = new ArrayList (attributes);
+               }
+
+               ArrayList list;
+
+               public DirectoryAttribute this [int index] {
+                       get { return (DirectoryAttribute) list [index]; }
+                       set { list [index] = value; }
+               }
+
+               public int Add (DirectoryAttribute attribute)
+               {
+                       return list.Add (attribute);
+               }
+
+               public void AddRange (DirectoryAttribute [] attributes)
+               {
+                       list.AddRange (attributes);
+               }
+
+               public void AddRange (DirectoryAttributeCollection attributeCollection)
+               {
+                       list.Add (attributeCollection.list);
+               }
+
+               public bool Contains (DirectoryAttribute value)
+               {
+                       return list.Contains (value);
+               }
+
+               public void CopyTo (DirectoryAttribute [] array, int index)
+               {
+                       list.CopyTo (array, index);
+               }
+
+               public int IndexOf (DirectoryAttribute value)
+               {
+                       return list.IndexOf (value);
+               }
+
+               public void Insert (int index, DirectoryAttribute value)
+               {
+                       list.Insert (index, value);
+               }
+
+               [MonoTODO ("verify")]
+               protected override void OnValidate (object value)
+               {
+                       if (!(value is DirectoryAttribute))
+                               throw new ArgumentException ("value must be a DirectoryAttribute");
+               }
+
+               public void Remove (DirectoryAttribute value)
+               {
+                       list.Remove (value);
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttributeModification.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttributeModification.cs
new file mode 100644 (file)
index 0000000..41a7281
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// DirectoryAttributeModification.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class DirectoryAttributeModification : DirectoryAttribute
+       {
+               public DirectoryAttributeModification ()
+               {
+               }
+
+               public DirectoryAttributeOperation Operation { get; set; }
+
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttributeModificationCollection.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttributeModificationCollection.cs
new file mode 100644 (file)
index 0000000..e324298
--- /dev/null
@@ -0,0 +1,96 @@
+//
+// DirectoryAttributeModificationCollection.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class DirectoryAttributeModificationCollection : CollectionBase
+       {
+               public DirectoryAttributeModificationCollection ()
+               {
+               }
+
+               public DirectoryAttributeModification this [int index] {
+                       get { return (DirectoryAttributeModification) List [index]; }
+                       set { List [index] = value; }
+               }
+
+               public int Add (DirectoryAttributeModification attribute)
+               {
+                       return List.Add (attribute);
+               }
+
+               public void AddRange (DirectoryAttributeModification [] attributes)
+               {
+                       foreach (var a in attributes)
+                               List.Add (a);
+               }
+
+               public void AddRange (DirectoryAttributeModificationCollection attributeCollection)
+               {
+                       foreach (var a in attributeCollection)
+                               List.Add (a);
+               }
+
+               public bool Contains (DirectoryAttributeModification value)
+               {
+                       return List.Contains (value);
+               }
+
+               public void CopyTo (DirectoryAttributeModification [] array, int index)
+               {
+                       List.CopyTo (array, index);
+               }
+
+               public int IndexOf (DirectoryAttributeModification value)
+               {
+                       return List.IndexOf (value);
+               }
+
+               public void Insert (int index, DirectoryAttributeModification value)
+               {
+                       List.Insert (index, value);
+               }
+
+               [MonoTODO ("verify")]
+               protected override void OnValidate (object value)
+               {
+                       if (!(value is DirectoryAttributeModification))
+                               throw new ArgumentException ("value must be a DirectoryAttributeModification");
+               }
+
+               public void Remove (DirectoryAttributeModification value)
+               {
+                       List.Remove (value);
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttributeOperation.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryAttributeOperation.cs
new file mode 100644 (file)
index 0000000..773cb01
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// DirectoryAttributeModificationCollection.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum DirectoryAttributeOperation
+       {
+               Add,
+               Delete,
+               Replace
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryConnection.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryConnection.cs
new file mode 100644 (file)
index 0000000..f0b9a8c
--- /dev/null
@@ -0,0 +1,66 @@
+//
+// DirectoryConnection.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.DirectoryServices;
+using System.Net;
+using System.Security.Cryptography.X509Certificates;
+using System.Security.Permissions;
+
+namespace System.DirectoryServices.Protocols
+{
+       public abstract class DirectoryConnection
+       {
+               protected DirectoryConnection ()
+               {
+               }
+
+               [MonoTODO]
+               public X509CertificateCollection ClientCertificates {
+                       get { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public virtual NetworkCredential Credential {
+                       set { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public virtual DirectoryIdentifier Directory {  
+                       get { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public virtual TimeSpan Timeout { get; set; }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public abstract DirectoryResponse SendRequest (DirectoryRequest request);
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryControl.cs
new file mode 100644 (file)
index 0000000..28aa657
--- /dev/null
@@ -0,0 +1,58 @@
+//
+// DirectoryControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class DirectoryControl
+       {
+               public DirectoryControl (string type, byte [] value, bool isCritical, bool serverSide)
+               {
+                       Type = type;
+                       IsCritical = isCritical;
+                       ServerSide = serverSide;
+
+                       // value
+                       throw new NotImplementedException ();
+               }
+
+               public bool IsCritical { get; set; }
+               public bool ServerSide { get; set; }
+               public string Type { get; private set; }
+
+               [MonoTODO]
+               public virtual byte [] GetValue ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryControlCollection.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryControlCollection.cs
new file mode 100644 (file)
index 0000000..62ab3c9
--- /dev/null
@@ -0,0 +1,97 @@
+//
+// DirectoryControlCollection.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class DirectoryControlCollection : CollectionBase
+       {
+               public DirectoryControlCollection ()
+               {
+               }
+
+               public DirectoryControl this [int index] {
+                       get { return (DirectoryControl) List [index]; }
+                       set { List [index] = value; }
+               }
+
+               public int Add (DirectoryControl control)
+               {
+                       return List.Add (control);
+               }
+
+               public void AddRange (DirectoryControl [] controls)
+               {
+                       foreach (var c in controls)
+                               List.Add (c);
+               }
+
+               public void AddRange (DirectoryControlCollection controlCollection)
+               {
+                       foreach (var c in controlCollection)
+                               List.Add (c);
+               }
+
+               public bool Contains (DirectoryControl value)
+               {
+                       return List.Contains (value);
+               }
+
+               public void CopyTo (DirectoryControl [] array, int index)
+               {
+                       List.CopyTo (array, index);
+               }
+
+               public int IndexOf (DirectoryControl value)
+               {
+                       return List.IndexOf (value);
+               }
+
+               public void Insert (int index, DirectoryControl value)
+               {
+                       List.Insert (index, value);
+               }
+
+               [MonoTODO ("verify")]
+               protected override void OnValidate (object value)
+               {
+                       if (!(value is DirectoryControl))
+                               throw new ArgumentException ("value must be a DirectoryControl");
+               }
+
+               public void Remove (DirectoryControl value)
+               {
+                       List.Remove (value);
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryException.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryException.cs
new file mode 100644 (file)
index 0000000..cc0331f
--- /dev/null
@@ -0,0 +1,59 @@
+//
+// DirectoryException.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Runtime.Serialization;
+
+namespace System.DirectoryServices.Protocols
+{
+       [SerializableAttribute]
+       public class DirectoryException : Exception
+       {
+               public DirectoryException ()
+                       : this ("directory exception")
+               {
+               }
+
+               public DirectoryException (string message)
+                       : base (message)
+               {
+               }
+
+               public DirectoryException (string message, Exception inner)
+                       : base (message, inner)
+               {
+               }
+
+               protected DirectoryException (SerializationInfo info, StreamingContext context)
+                       : base (info, context)
+               {
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryIdentifier.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryIdentifier.cs
new file mode 100644 (file)
index 0000000..544ec50
--- /dev/null
@@ -0,0 +1,39 @@
+//
+// DirectoryIdentifier.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public abstract class DirectoryIdentifier
+       {
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryNotificationControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryNotificationControl.cs
new file mode 100644 (file)
index 0000000..766e81a
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// DirectoryNotificationControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class DirectoryNotificationControl : DirectoryControl
+       {
+               internal DirectoryNotificationControl ()
+                       : base (null, null, false, false)
+               {
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryOperation.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryOperation.cs
new file mode 100644 (file)
index 0000000..3cfee1e
--- /dev/null
@@ -0,0 +1,39 @@
+//
+// DirectoryOperation.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public abstract class DirectoryOperation
+       {
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryOperationException.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryOperationException.cs
new file mode 100644 (file)
index 0000000..2ec1489
--- /dev/null
@@ -0,0 +1,87 @@
+//
+// DirectoryOperationException.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Runtime.Serialization;
+using System.Security.Permissions;
+
+namespace System.DirectoryServices.Protocols
+{
+       [Serializable]
+       [MonoTODO]
+       public class DirectoryOperationException : DirectoryException, ISerializable
+       {
+               public DirectoryOperationException ()
+                       : this ("directory operation error")
+               {
+               }
+
+               public DirectoryOperationException (string message)
+                       : base (message)
+               {
+               }
+
+               public DirectoryOperationException (DirectoryResponse response, string message)
+                       : this (message)
+               {
+               }
+
+               public DirectoryOperationException (string message, Exception inner)
+                       : base (message, inner)
+               {
+               }
+
+               public DirectoryOperationException (DirectoryResponse response, string message, Exception inner)
+                       : this (message, inner)
+               {
+                       Response = response;
+               }
+
+               public DirectoryOperationException (DirectoryResponse response)
+                       : this ()
+               {
+               }
+
+               protected DirectoryOperationException (SerializationInfo info, StreamingContext context)
+                       : base (info, context)
+               {
+                       Response = (DirectoryResponse) info.GetValue ("Response", typeof (DirectoryResponse));
+               }
+
+               public DirectoryResponse Response { get; private set; }
+
+               [SecurityPermission (SecurityAction.Demand, SerializationFormatter = true)]
+               public override void GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)
+               {
+                       base.GetObjectData (serializationInfo, streamingContext);
+                       serializationInfo.AddValue ("Response", Response, typeof (DirectoryResponse));
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryRequest.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryRequest.cs
new file mode 100644 (file)
index 0000000..bf8b9a1
--- /dev/null
@@ -0,0 +1,49 @@
+//
+// DirectoryRequest.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public abstract class DirectoryRequest : DirectoryOperation
+       {
+               internal DirectoryRequest ()
+               {
+                       Controls = new DirectoryControlCollection ();
+               }
+
+               public DirectoryControlCollection Controls { get; private set; }
+               public string RequestId { get; set; }
+
+               protected abstract XmlElement ToXmlNode (XmlDocument doc);
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryResponse.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectoryResponse.cs
new file mode 100644 (file)
index 0000000..afc11c6
--- /dev/null
@@ -0,0 +1,62 @@
+//
+// DirectoryResponse.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public abstract class DirectoryResponse : DirectoryOperation
+       {
+               internal DirectoryResponse ()
+               {
+               }
+
+               public virtual DirectoryControl [] Controls {
+                       get { throw new NotImplementedException (); }
+               }
+               public virtual string ErrorMessage {
+                       get { throw new NotImplementedException (); }
+               }
+               public virtual string MatchedDN {
+                       get { throw new NotImplementedException (); }
+               }
+               public virtual Uri [] Referral {
+                       get { throw new NotImplementedException (); }
+               }
+               public string RequestId {
+                       get { throw new NotImplementedException (); }
+               }
+               public virtual ResultCode ResultCode {
+                       get { throw new NotImplementedException (); }
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectorySynchronizationOptions.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DirectorySynchronizationOptions.cs
new file mode 100644 (file)
index 0000000..9ac0a67
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// DirectorySynchronizationOptions.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       [Flags]
+       public enum DirectorySynchronizationOptions
+       {
+               None = 0,
+               ObjectSecurity,
+               ParentsFirst = 2,
+               PublicDataOnly = 4,
+               IncrementalValues = 8,
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DomainScopeControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DomainScopeControl.cs
new file mode 100644 (file)
index 0000000..f3a8a46
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// DomainScopeControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class DomainScopeControl : DirectoryControl
+       {
+               public DomainScopeControl ()
+                       : base (null, null, false, false)
+               {
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlAuthRequest.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlAuthRequest.cs
new file mode 100644 (file)
index 0000000..8ebee50
--- /dev/null
@@ -0,0 +1,55 @@
+//
+// DsmlAuthRequest.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class DsmlAuthRequest : DirectoryRequest
+       {
+               public DsmlAuthRequest ()
+               {
+               }
+
+               public DsmlAuthRequest (string principal)
+               {
+                       Principal = principal;
+               }
+
+               public string Principal { get; set; }
+
+               [MonoTODO]
+               protected override XmlElement ToXmlNode (XmlDocument doc)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlAuthResponse.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlAuthResponse.cs
new file mode 100644 (file)
index 0000000..ac9b624
--- /dev/null
@@ -0,0 +1,41 @@
+//
+// DsmlAuthResponse.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class DsmlAuthResponse : DirectoryResponse
+       {
+               internal DsmlAuthResponse ()
+               {
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlDirectoryIdentifier.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlDirectoryIdentifier.cs
new file mode 100644 (file)
index 0000000..f2f7753
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// DsmlDirectoryIdentifier.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class DsmlDirectoryIdentifier : DirectoryIdentifier
+       {
+               public DsmlDirectoryIdentifier (Uri serverUri)
+               {
+                       this.ServerUri = serverUri;
+               }
+
+               public Uri ServerUri { get; private set; }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlDocument.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlDocument.cs
new file mode 100644 (file)
index 0000000..cb514aa
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// DsmlDocument.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       public abstract class DsmlDocument
+       {
+               public abstract XmlDocument ToXml ();
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlDocumentProcessing.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlDocumentProcessing.cs
new file mode 100644 (file)
index 0000000..106fd0b
--- /dev/null
@@ -0,0 +1,41 @@
+//
+// DsmlDocumentProcessing.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum DsmlDocumentProcessing
+       {
+               Sequential,
+               Parallel
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlErrorProcessing.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlErrorProcessing.cs
new file mode 100644 (file)
index 0000000..0576f60
--- /dev/null
@@ -0,0 +1,41 @@
+//
+// DsmlErrorProcessing.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum DsmlErrorProcessing
+       {
+               Resume,
+               Exit
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlErrorResponse.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlErrorResponse.cs
new file mode 100644 (file)
index 0000000..f87089a
--- /dev/null
@@ -0,0 +1,64 @@
+//
+// DsmlErrorResponse.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class DsmlErrorResponse : DirectoryResponse
+       {
+               public override DirectoryControl [] Controls {
+                       get { throw new NotImplementedException (); }
+               }
+               public string Detail {
+                       get { throw new NotImplementedException (); }
+               }
+               public override string ErrorMessage {
+                       get { throw new NotImplementedException (); }
+               }
+               public override string MatchedDN {
+                       get { throw new NotImplementedException (); }
+               }
+               public string Message {
+                       get { throw new NotImplementedException (); }
+               }
+               public override Uri [] Referral {
+                       get { throw new NotImplementedException (); }
+               }
+               public override ResultCode ResultCode {
+                       get { throw new NotImplementedException (); }
+               }
+               public ErrorResponseCategory Type {
+                       get { throw new NotImplementedException (); }
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlInvalidDocumentException.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlInvalidDocumentException.cs
new file mode 100644 (file)
index 0000000..d59b643
--- /dev/null
@@ -0,0 +1,59 @@
+//
+// DsmlInvalidDocumentException.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Runtime.Serialization;
+
+namespace System.DirectoryServices.Protocols
+{
+       [Serializable]
+       public class DsmlInvalidDocumentException : DirectoryException
+       {
+               public DsmlInvalidDocumentException()
+                       : this ("invalid DSML document error")
+               {
+               }
+
+               public DsmlInvalidDocumentException (string message)
+                       : base (message)
+               {
+               }
+
+               public DsmlInvalidDocumentException (string message, Exception inner)
+                       : base (message, inner)
+               {
+               }
+
+               protected DsmlInvalidDocumentException (SerializationInfo info, StreamingContext context)
+                       : base (info, context)
+               {
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlRequestDocument.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlRequestDocument.cs
new file mode 100644 (file)
index 0000000..63b3f3c
--- /dev/null
@@ -0,0 +1,193 @@
+//
+// DsmlRequestDocument.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class DsmlRequestDocument : DsmlDocument, IList, ICollection, IEnumerable
+       {
+               IList list = new ArrayList ();
+
+               internal DsmlRequestDocument ()
+               {
+               }
+
+               public DsmlDocumentProcessing DocumentProcessing { get; set; }
+               public DsmlErrorProcessing ErrorProcessing { get; set; }
+
+               public override XmlDocument ToXml ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public int Count {
+                       get { return list.Count; }
+               }
+
+               protected bool IsFixedSize {
+                       get { return list.IsFixedSize; }
+               }
+
+               protected bool IsReadOnly {
+                       get { return list.IsReadOnly; }
+               }
+
+               protected bool IsSynchronized {
+                       get { return list.IsSynchronized; }
+               }
+
+               public DirectoryRequest this [int index] {
+                       get { return (DirectoryRequest) list [index]; }
+                       set { list [index] = value; }
+               }
+
+               public string RequestId { get; set; }
+
+               public DsmlResponseOrder ResponseOrder { get; set; }
+
+               protected object SyncRoot {
+                       get { return list.SyncRoot; }
+               }
+
+               int ICollection.Count {
+                       get { return Count; }
+               }
+
+               bool ICollection.IsSynchronized {
+                       get { return IsSynchronized; }
+               }
+
+               object ICollection.SyncRoot {
+                       get { return SyncRoot; }
+               }
+
+               bool IList.IsFixedSize {
+                       get { return IsFixedSize; }
+               }
+
+               bool IList.IsReadOnly {
+                       get { return IsReadOnly; }
+               }
+
+               object IList.this [int index] {
+                       get { return this [index]; }
+                       set { this [index] = (DirectoryRequest) value; }
+               }
+
+               public int Add (DirectoryRequest request)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public void Clear ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public bool Contains (DirectoryRequest value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public void CopyTo (DirectoryRequest [] value, int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public IEnumerator GetEnumerator ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public int IndexOf (DirectoryRequest value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public void Insert (int index, DirectoryRequest value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public void Remove (DirectoryRequest value)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public void RemoveAt (int index)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               void ICollection.CopyTo (Array value, int i)
+               {
+                       CopyTo ((DirectoryRequest []) value, i);
+               }
+
+               int IList.Add (object request)
+               {
+                       return Add ((DirectoryRequest) request);
+               }
+
+               void IList.Clear ()
+               {
+                       Clear ();
+               }
+
+               bool IList.Contains (object value)
+               {
+                       return Contains ((DirectoryRequest) value);
+               }
+
+               int IList.IndexOf (object value)
+               {
+                       return IndexOf ((DirectoryRequest) value);
+               }
+
+               void IList.Insert (int index, object value)
+               {
+                       Insert (index, (DirectoryRequest) value);
+               }
+
+               void IList.Remove (object value)
+               {
+                       Remove ((DirectoryRequest) value);
+               }
+
+               void IList.RemoveAt (int index)
+               {
+                       RemoveAt (index);
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlResponseDocument.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlResponseDocument.cs
new file mode 100644 (file)
index 0000000..70d0817
--- /dev/null
@@ -0,0 +1,149 @@
+//
+// DsmlResponseDocument.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class DsmlResponseDocument : DsmlDocument, ICollection, IEnumerable
+       {
+               ArrayList list = new ArrayList ();
+
+               public DsmlDocumentProcessing DocumentProcessing { get; set; }
+               public DsmlErrorProcessing ErrorProcessing { get; set; }
+
+               [MonoTODO]
+               public override XmlDocument ToXml ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public bool IsErrorResponse { get; private set; }
+               [MonoTODO]
+               public bool IsOperationError { get; private set; }
+               [MonoTODO]
+               public string RequestId { get; private set; }
+
+               public int Count {
+                       get { return list.Count; }
+               }
+
+               protected bool IsFixedSize {
+                       get { return list.IsFixedSize; }
+               }
+
+               protected bool IsReadOnly {
+                       get { return list.IsReadOnly; }
+               }
+
+               protected bool IsSynchronized {
+                       get { return list.IsSynchronized; }
+               }
+
+               public DirectoryResponse this [int index] {
+                       get { return (DirectoryResponse) list [index]; }
+                       set { list [index] = value; }
+               }
+
+               public string ResponseId { get; set; }
+
+               public DsmlResponseOrder ResponseOrder { get; set; }
+
+               protected object SyncRoot {
+                       get { return list.SyncRoot; }
+               }
+
+               int ICollection.Count {
+                       get { return Count; }
+               }
+
+               bool ICollection.IsSynchronized {
+                       get { return IsSynchronized; }
+               }
+
+               object ICollection.SyncRoot {
+                       get { return SyncRoot; }
+               }
+
+               public int Add (DirectoryResponse request)
+               {
+                       return list.Add (request);
+               }
+
+               public void Clear ()
+               {
+                       list.Clear ();
+               }
+
+               public bool Contains (DirectoryResponse value)
+               {
+                       return list.Contains (value);
+               }
+
+               public void CopyTo (DirectoryResponse [] value, int i)
+               {
+                       list.CopyTo (value, i);
+               }
+
+               public IEnumerator GetEnumerator ()
+               {
+                       return list.GetEnumerator ();
+               }
+
+               public int IndexOf (DirectoryResponse value)
+               {
+                       return list.IndexOf (value);
+               }
+
+               public void Insert (int index, DirectoryResponse value)
+               {
+                       list.Insert (index, value);
+               }
+
+               public void Remove (DirectoryResponse value)
+               {
+                       list.Remove (value);
+               }
+
+               public void RemoveAt (int index)
+               {
+                       list.RemoveAt (index);
+               }
+
+               void ICollection.CopyTo (Array value, int i)
+               {
+                       CopyTo ((DirectoryResponse []) value, i);
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlResponseOrder.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlResponseOrder.cs
new file mode 100644 (file)
index 0000000..4e3f45b
--- /dev/null
@@ -0,0 +1,41 @@
+//
+// DsmlResponseOrder.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum DsmlResponseOrder
+       {
+               Sequential,
+               Unordered
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlSoapConnection.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlSoapConnection.cs
new file mode 100644 (file)
index 0000000..0b26a42
--- /dev/null
@@ -0,0 +1,53 @@
+//
+// DsmlResponseOrder.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.DirectoryServices;
+using System.Xml;
+using System.Security.Permissions;
+
+namespace System.DirectoryServices.Protocols
+{
+       public abstract class DsmlSoapConnection : DirectoryConnection
+       {
+               protected DsmlSoapConnection ()
+               {
+               }
+
+               public abstract string SessionId { get; }
+               public XmlNode SoapRequestHeader { get; set; }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public abstract void BeginSession();
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public abstract void EndSession();
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlSoapHttpConnection.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/DsmlSoapHttpConnection.cs
new file mode 100644 (file)
index 0000000..2780c9f
--- /dev/null
@@ -0,0 +1,117 @@
+//
+// DsmlSoapHttpConnection.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.DirectoryServices;
+using System.Net;
+using System.Net.NetworkInformation;
+using System.Security.Permissions;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class DsmlSoapHttpConnection : DsmlSoapConnection
+       {
+               public DsmlSoapHttpConnection (DsmlDirectoryIdentifier identifier)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public DsmlSoapHttpConnection (Uri uri)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public DsmlSoapHttpConnection (DsmlDirectoryIdentifier identifier, NetworkCredential credential)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public DsmlSoapHttpConnection (DsmlDirectoryIdentifier identifier, NetworkCredential credential, AuthType authType)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public AuthType AuthType { get; set; }
+               [MonoTODO]
+               public override string SessionId {
+                       get { throw new NotImplementedException (); }
+               }
+               public string SoapActionHeader { get; set; }
+               public override TimeSpan Timeout { get; set; }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public void Abort (IAsyncResult asyncResult)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               [NetworkInformationPermission (SecurityAction.Assert, Unrestricted = true)]
+               [WebPermission (SecurityAction.Assert, Unrestricted = true)]
+               public IAsyncResult BeginSendRequest (DsmlRequestDocument request, AsyncCallback callback, object state)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [NetworkInformationPermission (SecurityAction.Assert, Unrestricted = true)]
+               [WebPermission (SecurityAction.Assert, Unrestricted = true)]
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public override void BeginSession ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public DsmlResponseDocument EndSendRequest (IAsyncResult asyncResult)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               [NetworkInformationPermission (SecurityAction.Assert, Unrestricted = true)]
+               [WebPermission (SecurityAction.Assert, Unrestricted = true)]
+               public override void EndSession ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public override DirectoryResponse SendRequest (DirectoryRequest request)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public DsmlResponseDocument SendRequest (DsmlRequestDocument request)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ErrorResponseCategory.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ErrorResponseCategory.cs
new file mode 100644 (file)
index 0000000..0cf5a04
--- /dev/null
@@ -0,0 +1,47 @@
+//
+// ErrorResponseCategory.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum ErrorResponseCategory
+       {
+               NotAttempted,
+               CouldNotConnect,
+               ConnectionClosed,
+               MalformedRequest,
+               GatewayInternalError,
+               AuthenticationFailed,
+               UnresolvableUri,
+               Other
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ErrorResponseException.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ErrorResponseException.cs
new file mode 100644 (file)
index 0000000..d181228
--- /dev/null
@@ -0,0 +1,85 @@
+//
+// ErrorResponseException.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Runtime.Serialization;
+using System.Security.Permissions;
+
+namespace System.DirectoryServices.Protocols
+{
+       [Serializable]
+       public class ErrorResponseException : DirectoryException, ISerializable
+       {
+               public ErrorResponseException ()
+                       : this ("Directory response error")
+               {
+               }
+
+               public ErrorResponseException (string message)
+                       : base (message)
+               {
+               }
+
+               public ErrorResponseException (string message, Exception inner)
+                       : base (message, inner)
+               {
+               }
+
+               public ErrorResponseException (DsmlErrorResponse response)
+                       : this ()
+               {
+                       Response = response;
+               }
+
+               public ErrorResponseException (DsmlErrorResponse response, string message)
+                       : this (response, message, null)
+               {
+               }
+
+               public ErrorResponseException (DsmlErrorResponse response, string message, Exception inner)
+                       : base (message, inner)
+               {
+                       Response = response;
+               }
+
+               protected ErrorResponseException (SerializationInfo info, StreamingContext context)
+               {
+                       Response = (DsmlErrorResponse) info.GetValue ("Response", typeof (DsmlErrorResponse));
+               }
+
+               public DsmlErrorResponse Response { get; private set; }
+
+               [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
+               public override void GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)
+               {
+                       serializationInfo.AddValue ("Response", Response, typeof (DsmlErrorResponse));
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ExtendedDNControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ExtendedDNControl.cs
new file mode 100644 (file)
index 0000000..d38b11a
--- /dev/null
@@ -0,0 +1,57 @@
+//
+// ExtendedDNControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class ExtendedDNControl : DirectoryControl
+       {
+               public ExtendedDNControl ()
+                       : base (null, null, false, false)
+               {
+               }
+
+               public ExtendedDNControl (ExtendedDNFlag flag)
+                       : this ()
+               {
+                       Flag = flag;
+               }
+
+               public ExtendedDNFlag Flag { get; set; }
+
+               [MonoTODO]
+               public override byte [] GetValue ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ExtendedDNFlag.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ExtendedDNFlag.cs
new file mode 100644 (file)
index 0000000..52fd1ad
--- /dev/null
@@ -0,0 +1,41 @@
+//
+// ExtendedDNFlag.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum ExtendedDNFlag
+       {
+               HexString,
+               StandardString
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ExtendedRequest.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ExtendedRequest.cs
new file mode 100644 (file)
index 0000000..1513ad0
--- /dev/null
@@ -0,0 +1,62 @@
+//
+// ExtendedRequest.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class ExtendedRequest : DirectoryRequest
+       {
+               public ExtendedRequest ()
+               {
+               }
+
+               public ExtendedRequest (string requestName)
+               {
+                       RequestName = requestName;
+               }
+
+               public ExtendedRequest (string requestName, byte [] requestValue)
+                       : this (requestName)
+               {
+                       RequestValue = requestValue;
+               }
+
+               public string RequestName { get; set; }
+               public byte [] RequestValue { get; set; }
+
+               [MonoTODO]
+               protected override XmlElement ToXmlNode (XmlDocument doc)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ExtendedResponse.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ExtendedResponse.cs
new file mode 100644 (file)
index 0000000..11e05d9
--- /dev/null
@@ -0,0 +1,49 @@
+//
+// ExtendedResponse.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class ExtendedResponse : DirectoryResponse
+       {
+               internal ExtendedResponse (string responseName, byte [] responseValue)
+               {
+                       ResponseName = responseName;
+                       ResponseValue = responseValue;
+               }
+
+               [MonoTODO]
+               public string ResponseName { get; private set; }
+               [MonoTODO]
+               public byte [] ResponseValue { get; private set; }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LazyCommitControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LazyCommitControl.cs
new file mode 100644 (file)
index 0000000..af0281c
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// LazyCommitControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class LazyCommitControl : DirectoryControl
+       {
+               internal LazyCommitControl ()
+                       : base (null, null, false, false)
+               {
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LdapConnection.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LdapConnection.cs
new file mode 100644 (file)
index 0000000..52fb88b
--- /dev/null
@@ -0,0 +1,140 @@
+//
+// LdapConnection.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.DirectoryServices;
+using System.Net;
+using System.Security.Permissions;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class LdapConnection : DirectoryConnection, IDisposable
+       {
+               public LdapConnection (LdapDirectoryIdentifier identifier)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public LdapConnection (string server)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public LdapConnection (LdapDirectoryIdentifier identifier, NetworkCredential credential)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public LdapConnection (LdapDirectoryIdentifier identifier, NetworkCredential credential, AuthType authType)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               ~LdapConnection ()
+               {
+               }
+
+               public AuthType AuthType { get; set; }
+               public bool AutoBind { get; set; }
+               [MonoTODO]
+               public override NetworkCredential Credential {
+                       set { throw new NotImplementedException (); }
+               }
+               [MonoTODO]
+               public LdapSessionOptions SessionOptions {
+                       get { throw new NotImplementedException (); }
+               }
+               public override TimeSpan Timeout { get; set; }
+
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public void Abort (IAsyncResult asyncResult)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public IAsyncResult BeginSendRequest (DirectoryRequest request, PartialResultProcessing partialMode, AsyncCallback callback, object state)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public IAsyncResult BeginSendRequest (DirectoryRequest request, TimeSpan requestTimeout, PartialResultProcessing partialMode, AsyncCallback callback, object state)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public void Bind ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public void Bind (NetworkCredential newCredential)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public void Dispose ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               protected virtual void Dispose (bool disposing)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public DirectoryResponse EndSendRequest (IAsyncResult asyncResult)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public PartialResultsCollection GetPartialResults (IAsyncResult asyncResult)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public override DirectoryResponse SendRequest (DirectoryRequest request)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [DirectoryServicesPermission (SecurityAction.LinkDemand, Unrestricted = true)]
+               public DirectoryResponse SendRequest (DirectoryRequest request, TimeSpan requestTimeout)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LdapDirectoryIdentifier.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LdapDirectoryIdentifier.cs
new file mode 100644 (file)
index 0000000..38538c9
--- /dev/null
@@ -0,0 +1,79 @@
+//
+// LdapDirectoryIdentifier.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class LdapDirectoryIdentifier : DirectoryIdentifier
+       {
+               public LdapDirectoryIdentifier (string server)
+               {
+                       Servers = new string [] {server};
+               }
+
+               public LdapDirectoryIdentifier (string server, int portNumber)
+                       : this (server)
+               {
+                       PortNumber = portNumber;
+               }
+
+               public LdapDirectoryIdentifier (string server, bool fullyQualifiedDnsHostName, bool connectionless)
+                       : this (server)
+               {
+                       FullyQualifiedDnsHostName = fullyQualifiedDnsHostName;
+                       Connectionless = connectionless;
+               }
+
+               public LdapDirectoryIdentifier (string [] servers, bool fullyQualifiedDnsHostName, bool connectionless)
+               {
+                       Servers = servers;
+                       FullyQualifiedDnsHostName = fullyQualifiedDnsHostName;
+                       Connectionless = connectionless;
+               }
+
+               public LdapDirectoryIdentifier (string server, int portNumber, bool fullyQualifiedDnsHostName, bool connectionless)
+                       : this (new string [] {server}, portNumber, fullyQualifiedDnsHostName, connectionless)
+               {
+               }
+
+               public LdapDirectoryIdentifier (string [] servers, int portNumber, bool fullyQualifiedDnsHostName, bool connectionless)
+                       : this (servers, fullyQualifiedDnsHostName, connectionless)
+               {
+                       PortNumber = portNumber;
+               }
+
+               public bool Connectionless { get; private set; }
+               public bool FullyQualifiedDnsHostName { get; private set; }
+               public int PortNumber { get; private set; }
+               public string [] Servers { get; private set; }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LdapException.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LdapException.cs
new file mode 100644 (file)
index 0000000..c148c93
--- /dev/null
@@ -0,0 +1,98 @@
+//
+// LdapException.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.DirectoryServices;
+using System.Runtime.Serialization;
+using System.Security.Permissions;
+
+namespace System.DirectoryServices.Protocols
+{
+       [Serializable]
+       public class LdapException : DirectoryException, ISerializable
+       {
+               public LdapException ()
+                       : this ("LDAP error")
+               {
+               }
+
+               public LdapException (int errorCode)
+                       : this ()
+               {
+                       ErrorCode = errorCode;
+                       PartialResults = new PartialResultsCollection ();
+               }
+
+               public LdapException (string message)
+                       : this (message, null)
+               {
+               }
+
+               public LdapException (int errorCode, string message)
+                       : this (errorCode, message, (Exception) null)
+               {
+               }
+
+               public LdapException (string message, Exception inner)
+                       : this (0, message, inner)
+               {
+               }
+
+               public LdapException (int errorCode, string message, Exception inner)
+                       : base (message, inner)
+               {
+                       ErrorCode = errorCode;
+                       PartialResults = new PartialResultsCollection ();
+               }
+
+               public LdapException (int errorCode, string message, string serverErrorMessage)
+                       : this (errorCode, message, (Exception) null)
+               {
+                       ServerErrorMessage = serverErrorMessage;
+               }
+
+               [MonoTODO]
+               protected LdapException (SerializationInfo info, StreamingContext context)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public int ErrorCode { get; private set; }
+               public PartialResultsCollection PartialResults { get; private set; }
+               public string ServerErrorMessage { get; private set; }
+
+               [MonoTODO]
+               [SecurityPermission (SecurityAction.Demand, SerializationFormatter = true)]
+               public override void GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LdapSessionOptions.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LdapSessionOptions.cs
new file mode 100644 (file)
index 0000000..d9941d6
--- /dev/null
@@ -0,0 +1,87 @@
+//
+// LdapSessionOptions.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class LdapSessionOptions
+       {
+               internal LdapSessionOptions ()
+               {
+               }
+
+               public bool AutoReconnect { get; set; }
+               public string DomainName { get; set; }
+               public string HostName { get; set; }
+               [MonoTODO]
+               public bool HostReachable { get; private set; }
+               public LocatorFlags LocatorFlag { get; set; }
+               public TimeSpan PingKeepAliveTimeout { get; set; }
+               public int PingLimit { get; set; }
+               public TimeSpan PingWaitTimeout { get; set; }
+               public int ProtocolVersion { get; set; }
+               public QueryClientCertificateCallback QueryClientCertificate { get; set; }
+               public ReferralCallback ReferralCallback { get; set; }
+               public ReferralChasingOptions ReferralChasing { get; set; }
+               public int ReferralHopLimit { get; set; }
+               public bool RootDseCache { get; set; }
+               public string SaslMethod { get; set; }
+               public bool Sealing { get; set; }
+               public bool SecureSocketLayer { get; set; }
+               [MonoTODO]
+               public object SecurityContext { get; private set;}
+               public TimeSpan SendTimeout { get; set; }
+               public bool Signing { get; set; }
+               [MonoTODO]
+               public SecurityPackageContextConnectionInformation SslInformation { get; private set; }
+               public int SspiFlag { get; set; }
+               public bool TcpKeepAlive { get; set; }
+               public VerifyServerCertificateCallback VerifyServerCertificate { get; set; }
+
+               [MonoTODO]
+               public void FastConcurrentBind ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public void StartTransportLayerSecurity (DirectoryControlCollection controls)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public void StopTransportLayerSecurity ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LocatorFlags.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/LocatorFlags.cs
new file mode 100644 (file)
index 0000000..d1f8d39
--- /dev/null
@@ -0,0 +1,57 @@
+//
+// LocatorFlags.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       [Flags]
+       public enum LocatorFlags
+       {
+               None = 0,
+               ForceRediscovery = 1,
+               DirectoryServicesRequired = 0x10,
+               DirectoryServicesPreferred = 0x20,
+               GCRequired = 0x40,
+               PdcRequired = 0x80,
+               IPRequired = 0x200,
+               KdcRequired = 0x400,
+               TimeServerRequired = 0x800,
+               WriteableRequired = 0x1000,
+               GoodTimeServerPreferred = 0x2000,
+               AvoidSelf = 0x4000,
+               OnlyLdapNeeded = 0x8000,
+               IsFlatName = 0x10000,
+               IsDnsName = 0x20000,
+               ReturnDnsName = 0x40000000,
+               ReturnFlatName = -0x7FFFFFFF
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ModifyDNRequest.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ModifyDNRequest.cs
new file mode 100644 (file)
index 0000000..876054b
--- /dev/null
@@ -0,0 +1,60 @@
+//
+// ModifyDNRequest.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class ModifyDNRequest : DirectoryRequest
+       {
+               public ModifyDNRequest ()
+               {
+               }
+
+               public ModifyDNRequest (string distinguishedName, string newParentDistinguishedName, string newName)
+               {
+                       DistinguishedName = distinguishedName;
+                       NewParentDistinguishedName = newParentDistinguishedName;
+                       NewName = newName;
+               }
+
+               public bool DeleteOldRdn { get; set; }
+               public string DistinguishedName { get; set; }
+               public string NewName { get; set; }
+               public string NewParentDistinguishedName { get; set; }
+
+               [MonoTODO]
+               protected override XmlElement ToXmlNode (XmlDocument doc)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ModifyDNResponse.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ModifyDNResponse.cs
new file mode 100644 (file)
index 0000000..1c818ba
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// ModifyDNResponse.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class ModifyDNResponse : DirectoryResponse
+       {
+               internal ModifyDNResponse ()
+               {
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ModifyRequest.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ModifyRequest.cs
new file mode 100644 (file)
index 0000000..c3466e6
--- /dev/null
@@ -0,0 +1,74 @@
+//
+// ModifyRequest.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class ModifyRequest : DirectoryRequest
+       {
+               static DirectoryAttributeModification ToAttr (DirectoryAttributeOperation operation, string attributeName, params object [] values)
+               {
+                       var a = new DirectoryAttributeModification ();
+                       a.Name = attributeName;
+                       a.Operation = operation;
+                       a.AddRange (values);
+                       return a;
+               }
+
+               public ModifyRequest ()
+               {
+               }
+
+               public ModifyRequest (string distinguishedName, DirectoryAttributeOperation operation, string attributeName, params object [] values)
+                       : this (distinguishedName, new DirectoryAttributeModification [] {ToAttr (operation, attributeName, values)})
+               {
+               }
+
+               public ModifyRequest (string distinguishedName, params DirectoryAttributeModification [] modifications)
+                       : this ()
+               {
+                       DistinguishedName = distinguishedName;
+                       Modifications = new DirectoryAttributeModificationCollection ();
+                       Modifications.AddRange (modifications);
+               }
+
+               public string DistinguishedName { get; set; }
+
+               public DirectoryAttributeModificationCollection Modifications { get; private set; }
+
+               protected override XmlElement ToXmlNode (XmlDocument doc)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ModifyResponse.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ModifyResponse.cs
new file mode 100644 (file)
index 0000000..07fd6c9
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// ModifyResponse.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class ModifyResponse : DirectoryResponse
+       {
+               internal ModifyResponse ()
+               {
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/NotifyOfNewConnectionCallback.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/NotifyOfNewConnectionCallback.cs
new file mode 100644 (file)
index 0000000..45a6d32
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// NotifyOfNewConnectionCallback.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Net;
+
+namespace System.DirectoryServices.Protocols
+{
+       public delegate bool NotifyOfNewConnectionCallback (
+               LdapConnection primaryConnection,
+               LdapConnection referralFromConnection,
+               string newDistinguishedName,
+               LdapDirectoryIdentifier identifier,
+               LdapConnection newConnection,
+               NetworkCredential credential,
+               long currentUserToken,
+               int errorCodeFromBind);
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PageResultRequestControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PageResultRequestControl.cs
new file mode 100644 (file)
index 0000000..9eb836d
--- /dev/null
@@ -0,0 +1,62 @@
+//
+// PageResultRequestControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class PageResultRequestControl : DirectoryControl
+       {
+               public PageResultRequestControl ()
+                       : base (null, null, false, false)
+               {
+               }
+
+               public PageResultRequestControl (byte [] cookie)
+                       : this ()
+               {
+                       Cookie = cookie;
+               }
+
+               public PageResultRequestControl (int pageSize)
+                       : this ()
+               {
+                       PageSize = pageSize;
+               }
+
+               public byte [] Cookie { get; set; }
+               public int PageSize { get; set; }
+
+               [MonoTODO]
+               public override byte [] GetValue ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PageResultResponseControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PageResultResponseControl.cs
new file mode 100644 (file)
index 0000000..232248a
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// PageResultResponseControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class PageResultResponseControl : DirectoryControl
+       {
+               internal PageResultResponseControl ()
+                       : base (null, null, false, false)
+               {
+               }
+
+               public byte [] Cookie { get; set; }
+               [MonoTODO]
+               public int TotalCount { get; private set; }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PartialResultProcessing.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PartialResultProcessing.cs
new file mode 100644 (file)
index 0000000..4e1d706
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// PartialResultProcessing.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum PartialResultProcessing
+       {
+               NoPartialResultSupport,
+               ReturnPartialResults,
+               ReturnPartialResultsAndNotifyCallback
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PartialResultsCollection.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PartialResultsCollection.cs
new file mode 100644 (file)
index 0000000..145eb7c
--- /dev/null
@@ -0,0 +1,59 @@
+//
+// PartialResultsCollection.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class PartialResultsCollection : ReadOnlyCollectionBase
+       {
+               internal PartialResultsCollection ()
+               {
+               }
+
+               public object this [int index] {
+                       get { return InnerList [index]; }
+               }
+
+               public bool Contains (object value)
+               {
+                       return InnerList.Contains (value);
+               }
+
+               public void CopyTo (object [] values, int index)
+               {
+                       InnerList.CopyTo (values, index);
+               }
+
+               public int IndexOf (object value)
+               {
+                       return InnerList.IndexOf (value);
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PermissiveModifyControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/PermissiveModifyControl.cs
new file mode 100644 (file)
index 0000000..2e6eda5
--- /dev/null
@@ -0,0 +1,41 @@
+//
+// PermissiveModifyControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class PermissiveModifyControl : DirectoryControl
+       {
+               public PermissiveModifyControl ()
+                       : base (null, null, false, false)
+               {
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/QueryClientCertificateCallback.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/QueryClientCertificateCallback.cs
new file mode 100644 (file)
index 0000000..8422b43
--- /dev/null
@@ -0,0 +1,35 @@
+//
+// QueryClientCertificateCallback.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Security.Cryptography.X509Certificates;
+
+namespace System.DirectoryServices.Protocols
+{
+       public delegate X509Certificate QueryClientCertificateCallback (LdapConnection connection, byte [] [] trustedCAs);
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/QueryForConnectionCallback.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/QueryForConnectionCallback.cs
new file mode 100644 (file)
index 0000000..20b4356
--- /dev/null
@@ -0,0 +1,41 @@
+//
+// QueryForConnectionCallback.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Net;
+
+namespace System.DirectoryServices.Protocols
+{
+       public delegate LdapConnection QueryForConnectionCallback (
+               LdapConnection primaryConnection,
+               LdapConnection referralFromConnection,
+               string newDistinguishedName,
+               LdapDirectoryIdentifier identifier,
+               NetworkCredential credential,
+               long currentUserToken);
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/QuotaControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/QuotaControl.cs
new file mode 100644 (file)
index 0000000..cfaaa67
--- /dev/null
@@ -0,0 +1,55 @@
+//
+// QuotaControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Security.Principal;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class QuotaControl : DirectoryControl
+       {
+               public QuotaControl ()
+                       : base (null, null, false, false)
+               {
+               }
+
+               public QuotaControl (SecurityIdentifier querySid)
+                       : this ()
+               {
+                       QuerySid = querySid;
+               }
+
+               public SecurityIdentifier QuerySid { get; set; }
+
+               [MonoTODO]
+               public override byte [] GetValue ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ReferralCallback.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ReferralCallback.cs
new file mode 100644 (file)
index 0000000..86ab582
--- /dev/null
@@ -0,0 +1,44 @@
+//
+// ReferralCallback.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public sealed class ReferralCallback
+       {
+               public ReferralCallback ()
+               {
+               }
+
+               public DereferenceConnectionCallback DereferenceConnection { get; set; }
+               public NotifyOfNewConnectionCallback NotifyNewConnection { get; set; }
+               public QueryForConnectionCallback QueryForConnection { get; set; }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ReferralChasingOptions.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ReferralChasingOptions.cs
new file mode 100644 (file)
index 0000000..d2fd25e
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// ReferralChasingOptions.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       [Flags]
+       public enum ReferralChasingOptions
+       {
+               None = 0,
+               Subordinate = 0x20,
+               External = 0x40,
+               All = 0x60
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ResultCode.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ResultCode.cs
new file mode 100644 (file)
index 0000000..b9b371d
--- /dev/null
@@ -0,0 +1,80 @@
+//
+// ResultCode.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum ResultCode
+       {
+               Success,
+               OperationsError,
+               ProtocolError,
+               TimeLimitExceeded,
+               SizeLimitExceeded,
+               CompareFalse,
+               CompareTrue,
+               AuthMethodNotSupported,
+               StrongAuthRequired,
+               ReferralV2,
+               Referral,
+               AdminLimitExceeded,
+               UnavailableCriticalExtension,
+               ConfidentialityRequired,
+               SaslBindInProgress,
+               NoSuchAttribute = 16,
+               UndefinedAttributeType,
+               InappropriateMatching,
+               ConstraintViolation,
+               AttributeOrValueExists,
+               InvalidAttributeSyntax,
+               NoSuchObject = 32,
+               AliasProblem,
+               InvalidDNSyntax,
+               AliasDereferencingProblem = 36,
+               InappropriateAuthentication = 48,
+               InsufficientAccessRights = 50,
+               Busy,
+               Unavailable,
+               UnwillingToPerform,
+               LoopDetect,
+               SortControlMissing = 60,
+               OffsetRangeError,
+               NamingViolation = 64,
+               ObjectClassViolation,
+               NotAllowedOnNonLeaf,
+               NotAllowedOnRdn,
+               EntryAlreadyExists,
+               ObjectClassModificationsProhibited,
+               ResultsTooLarge,
+               AffectsMultipleDsas,
+               VirtualListViewError = 76,
+               Other = 80
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchOption.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchOption.cs
new file mode 100644 (file)
index 0000000..d3c31b9
--- /dev/null
@@ -0,0 +1,39 @@
+//
+// SearchOption.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum SearchOption
+       {
+               DomainScope,
+               PhantomRoot
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchOptionsControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchOptionsControl.cs
new file mode 100644 (file)
index 0000000..3277910
--- /dev/null
@@ -0,0 +1,54 @@
+//
+// SearchOptionsControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class SearchOptionsControl : DirectoryControl
+       {
+               public SearchOptionsControl ()
+                       : base (null, null, false, false)
+               {
+               }
+
+               public SearchOptionsControl (SearchOption flags)
+                       : this ()
+               {
+                       SearchOption = flags;
+               }
+
+               public SearchOption SearchOption { get; set; }
+
+               [MonoTODO]
+               public override byte [] GetValue ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchRequest.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchRequest.cs
new file mode 100644 (file)
index 0000000..ea94b11
--- /dev/null
@@ -0,0 +1,70 @@
+//
+// SearchRequest.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Specialized;
+using System.Xml;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class SearchRequest : DirectoryRequest
+       {
+               public SearchRequest ()
+               {
+                       Attributes = new StringCollection ();
+               }
+
+               [MonoTODO]
+               public SearchRequest (string distinguishedName, string ldapFilter, SearchScope searchScope, params string [] attributeList)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public SearchRequest (string distinguishedName, XmlDocument filter, SearchScope searchScope, params string [] attributeList)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public DereferenceAlias Aliases { get; set; }
+               public StringCollection Attributes { get; private set; }
+               public string DistinguishedName { get; set; }
+               public object Filter { get; set; }
+               public SearchScope Scope { get; set; }
+               public int SizeLimit { get; set; }
+               public TimeSpan TimeLimit { get; set; }
+               public bool TypesOnly { get; set; }
+
+               [MonoTODO]
+               protected override XmlElement ToXmlNode (XmlDocument doc)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResponse.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResponse.cs
new file mode 100644 (file)
index 0000000..70955ac
--- /dev/null
@@ -0,0 +1,68 @@
+//
+// SearchResponse.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class SearchResponse : DirectoryResponse
+       {
+               internal SearchResponse ()
+               {
+                       ArrayList references = new ArrayList ();
+                       References = new SearchResultReferenceCollection (references);
+               }
+
+               [MonoTODO]
+               public override DirectoryControl [] Controls {
+                       get { throw new NotImplementedException (); }
+               }
+               [MonoTODO]
+               public SearchResultEntryCollection Entries { get; private set; }
+               [MonoTODO]
+               public override string ErrorMessage {
+                       get { throw new NotImplementedException (); }
+               }
+               [MonoTODO]
+               public override string MatchedDN {
+                       get { throw new NotImplementedException (); }
+               }
+               [MonoTODO]
+               public SearchResultReferenceCollection References { get; private set; }
+               [MonoTODO]
+               public override Uri [] Referral {
+                       get { throw new NotImplementedException (); }
+               }
+               [MonoTODO]
+               public override ResultCode ResultCode {
+                       get { throw new NotImplementedException (); }
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultAttributeCollection.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultAttributeCollection.cs
new file mode 100644 (file)
index 0000000..610a3bc
--- /dev/null
@@ -0,0 +1,63 @@
+//
+// SearchResponse.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class SearchResultAttributeCollection : DictionaryBase
+       {
+               internal SearchResultAttributeCollection ()
+               {
+               }
+
+               public ICollection AttributeNames {
+                       get { return Dictionary.Keys; }
+               }
+
+               public DirectoryAttribute this [string attributeName] {
+                       get { return (DirectoryAttribute) Dictionary [attributeName]; }
+               }
+
+               public ICollection Values {
+                       get { return Dictionary.Values; }
+               }
+
+               public bool Contains (string attributeName)
+               {
+                       return Dictionary.Contains (attributeName);
+               }
+
+               public void CopyTo (DirectoryAttribute [] array, int index)
+               {
+                       Values.CopyTo (array, index);
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultEntry.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultEntry.cs
new file mode 100644 (file)
index 0000000..50fdc7b
--- /dev/null
@@ -0,0 +1,50 @@
+//
+// SearchResultEntry.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class SearchResultEntry
+       {
+               internal SearchResultEntry (SearchResultAttributeCollection attributes, DirectoryControl [] controls, string distinguishedName)
+               {
+                       Attributes = attributes;
+                       Controls = controls;
+                       DistinguishedName = distinguishedName;
+               }
+
+               [MonoTODO]
+               public SearchResultAttributeCollection Attributes { get; private set; }
+               [MonoTODO]
+               public DirectoryControl [] Controls { get; private set; }
+               [MonoTODO]
+               public string DistinguishedName { get; private set; }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultEntryCollection.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultEntryCollection.cs
new file mode 100644 (file)
index 0000000..226415e
--- /dev/null
@@ -0,0 +1,60 @@
+//
+// SearchResultEntryCollection.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class SearchResultEntryCollection : ReadOnlyCollectionBase
+       {
+               internal SearchResultEntryCollection ()
+               {
+               }
+
+               public SearchResultEntry this [int index] {
+                       get { return (SearchResultEntry) InnerList [index]; }
+               }
+
+               public bool Contains (SearchResultEntry value)
+               {
+                       return InnerList.Contains (value);
+               }
+
+               public void CopyTo (SearchResultEntry [] values, int index)
+               {
+                       InnerList.CopyTo (values, index);
+               }
+
+               public int IndexOf (SearchResultEntry value)
+               {
+                       return InnerList.IndexOf (value);
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultReference.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultReference.cs
new file mode 100644 (file)
index 0000000..87c419f
--- /dev/null
@@ -0,0 +1,47 @@
+//
+// SearchResultReference.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class SearchResultReference
+       {
+               internal SearchResultReference (DirectoryControl [] controls, Uri [] reference)
+               {
+                       Controls = controls;
+                       Reference = reference;
+               }
+
+               public DirectoryControl [] Controls { get; private set; }
+               public Uri [] Reference { get; private set; }
+
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultReferenceCollection.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchResultReferenceCollection.cs
new file mode 100644 (file)
index 0000000..ca6a586
--- /dev/null
@@ -0,0 +1,63 @@
+//
+// SearchResultReferenceCollection.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class SearchResultReferenceCollection : ReadOnlyCollectionBase
+       {
+               ArrayList list;
+
+               internal SearchResultReferenceCollection (ArrayList list)
+               {
+                       this.list = list;
+               }
+
+               public SearchResultReference this [int index] {
+                       get { return (SearchResultReference) list [index]; }
+               }
+
+               public bool Contains (SearchResultReference value)
+               {
+                       return list.Contains (value);
+               }
+
+               public void CopyTo (SearchResultReference [] values, int index)
+               {
+                       list.CopyTo (values, index);
+               }
+
+               public int IndexOf (SearchResultReference value)
+               {
+                       return list.IndexOf (value);
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchScope.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SearchScope.cs
new file mode 100644 (file)
index 0000000..6acf9a5
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// SearchScope.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum SearchScope
+       {
+               Base,
+               OneLevel,
+               Subtree
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SecurityDescriptorFlagControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SecurityDescriptorFlagControl.cs
new file mode 100644 (file)
index 0000000..e6f12ee
--- /dev/null
@@ -0,0 +1,58 @@
+//
+// SecurityDescriptorFlagControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class SecurityDescriptorFlagControl : DirectoryControl
+       {
+               [MonoTODO]
+               public SecurityDescriptorFlagControl ()
+                       : base (null, null, false, false)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public SecurityDescriptorFlagControl (SecurityMasks masks)
+                       : this ()
+               {
+                       SecurityMasks = masks;
+               }
+
+               public SecurityMasks SecurityMasks { get; set; }
+
+               [MonoTODO]
+               public override byte [] GetValue ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SecurityMasks.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SecurityMasks.cs
new file mode 100644 (file)
index 0000000..34aa5b5
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// SecurityMasks.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       [Flags]
+       public enum SecurityMasks
+       {
+               None = 0,
+               Owner = 1,
+               Group = 2,
+               Dacl = 4,
+               Sacl = 8
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SecurityPackageContextConnectionInformation.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SecurityPackageContextConnectionInformation.cs
new file mode 100644 (file)
index 0000000..bb3a8e8
--- /dev/null
@@ -0,0 +1,64 @@
+//
+// SecurityPackageContextConnectionInformation.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Security.Authentication;
+using System.Security.Cryptography;
+
+namespace System.DirectoryServices.Protocols
+{
+       [MonoTODO]
+       public class SecurityPackageContextConnectionInformation
+       {
+               internal SecurityPackageContextConnectionInformation (
+                       CipherAlgorithmType algorithmIdentifier,
+                       int cipherStrength,
+                       int exchangeStrength,
+                       HashAlgorithmType hash,
+                       int hashStrength,
+                       int keyExchangeAlgorithm,
+                       SecurityProtocol protocol)
+               {
+                       AlgorithmIdentifier = algorithmIdentifier;
+                       CipherStrength = cipherStrength;
+                       ExchangeStrength = exchangeStrength;
+                       Hash = hash;
+                       HashStrength = hashStrength;
+                       KeyExchangeAlgorithm = keyExchangeAlgorithm;
+                       Protocol = protocol;
+               }
+
+               public CipherAlgorithmType AlgorithmIdentifier { get; private set; }
+               public int CipherStrength { get; private set; }
+               public int ExchangeStrength { get; private set; }
+               public HashAlgorithmType Hash { get; private set; }
+               public int HashStrength { get; private set; }
+               public int KeyExchangeAlgorithm { get; private set; }
+               public SecurityProtocol Protocol { get; private set; }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SecurityProtocol.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SecurityProtocol.cs
new file mode 100644 (file)
index 0000000..46a94d2
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// SecurityProtocol.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public enum SecurityProtocol
+       {
+               Pct1Server,
+               Pct1Client,
+               Ssl2Server,
+               Ssl2Client,
+               Ssl3Server,
+               Ssl3Client,
+               Tls1Server,
+               Tls1Client,
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ShowDeletedControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/ShowDeletedControl.cs
new file mode 100644 (file)
index 0000000..7ec3c70
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// ShowDeletedControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class ShowDeletedControl : DirectoryControl
+       {
+               [MonoTODO]
+               public ShowDeletedControl ()
+                       : base (null, null, false, false)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SortKey.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SortKey.cs
new file mode 100644 (file)
index 0000000..ce56a06
--- /dev/null
@@ -0,0 +1,51 @@
+//
+// ShowDeletedControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class SortKey
+       {
+               public SortKey ()
+               {
+               }
+
+               public SortKey (string attributeName, string matchingRule, bool reverseOrder)
+               {
+                       AttributeName = attributeName;
+                       MatchingRule = matchingRule;
+                       ReverseOrder = reverseOrder;
+               }
+
+               public string AttributeName { get; set; }
+               public string MatchingRule { get; set; }
+               public bool ReverseOrder { get; set; }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SortRequestControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SortRequestControl.cs
new file mode 100644 (file)
index 0000000..66471e0
--- /dev/null
@@ -0,0 +1,64 @@
+//
+// SortRequestControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class SortRequestControl : DirectoryControl
+       {
+               [MonoTODO]
+               public SortRequestControl (params SortKey [] sortKeys)
+                       : base (null, null, false, false)
+               {
+                       throw new NotImplementedException ();
+                       SortKeys = sortKeys;
+               }
+
+               [MonoTODO]
+               public SortRequestControl (string attributeName, bool reverseOrder)
+                       : this (attributeName, null, reverseOrder)
+               {
+               }
+
+               [MonoTODO]
+               public SortRequestControl (string attributeName, string matchingRule, bool reverseOrder)
+                       : this (new SortKey (attributeName, matchingRule, reverseOrder))
+               {
+               }
+
+               public SortKey [] SortKeys { get; set; }
+
+               [MonoTODO]
+               public override byte [] GetValue ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SortResponseControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/SortResponseControl.cs
new file mode 100644 (file)
index 0000000..85b0db2
--- /dev/null
@@ -0,0 +1,48 @@
+//
+// SortResponseControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class SortResponseControl : DirectoryControl
+       {
+               internal SortResponseControl (string attributeName, ResultCode result)
+                       : base (null, null, false, false)
+               {
+                       AttributeName = attributeName;
+                       Result = result;
+               }
+
+               [MonoTODO]
+               public string AttributeName { get; private set; }
+               [MonoTODO]
+               public ResultCode Result { get; private set; }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/TlsOperationException.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/TlsOperationException.cs
new file mode 100644 (file)
index 0000000..b0cac19
--- /dev/null
@@ -0,0 +1,83 @@
+//
+// TlsOperationException.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2009 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Runtime.Serialization;
+using System.Security.Permissions;
+
+namespace System.DirectoryServices.Protocols
+{
+       [Serializable]
+       public class TlsOperationException : DirectoryOperationException
+       {
+               const string default_message = "Directory response error";
+
+               public TlsOperationException ()
+                       : this (default_message)
+               {
+               }
+
+               public TlsOperationException (string message)
+                       : base (message)
+               {
+               }
+
+               public TlsOperationException (string message, Exception inner)
+                       : base (message, inner)
+               {
+               }
+
+               public TlsOperationException (DirectoryResponse response)
+                       : base (response, default_message)
+               {
+               }
+
+               public TlsOperationException (DirectoryResponse response, string message)
+                       : this (response, message, null)
+               {
+               }
+
+               public TlsOperationException (DirectoryResponse response, string message, Exception inner)
+                       : base (response, message, inner)
+               {
+               }
+
+               protected TlsOperationException (SerializationInfo info, StreamingContext context)
+                       : base (info, context)
+               {
+               }
+
+               [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
+               public override void GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)
+               {
+                       base.GetObjectData (serializationInfo, streamingContext);
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/TreeDeleteControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/TreeDeleteControl.cs
new file mode 100644 (file)
index 0000000..94b73f2
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// TreeDeleteControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class TreeDeleteControl : DirectoryControl
+       {
+               [MonoTODO]
+               public TreeDeleteControl ()
+                       : base (null, null, false, false)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/VerifyNameControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/VerifyNameControl.cs
new file mode 100644 (file)
index 0000000..2337ea6
--- /dev/null
@@ -0,0 +1,63 @@
+//
+// VerifyNameControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class VerifyNameControl : DirectoryControl
+       {
+               public VerifyNameControl ()
+                       : base (null, null, false, false)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public VerifyNameControl (string serverName)
+                       : this ()
+               {
+                       ServerName = serverName;
+               }
+
+               public VerifyNameControl (string serverName, int flag)
+                       : this (serverName)
+               {
+                       Flag = flag;
+               }
+
+               public int Flag { get; set; }
+               public string ServerName { get; set; }
+
+               [MonoTODO]
+               public override byte [] GetValue ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/VerifyServerCertificateCallback.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/VerifyServerCertificateCallback.cs
new file mode 100644 (file)
index 0000000..5ee454a
--- /dev/null
@@ -0,0 +1,35 @@
+//
+// VerifyServerCertificateCallback.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Security.Cryptography.X509Certificates;
+
+namespace System.DirectoryServices.Protocols
+{
+       public delegate bool VerifyServerCertificateCallback (LdapConnection connection, X509Certificate certificate);
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/VlvRequestControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/VlvRequestControl.cs
new file mode 100644 (file)
index 0000000..ae64ffc
--- /dev/null
@@ -0,0 +1,81 @@
+//
+// VlvRequestControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Text;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class VlvRequestControl : DirectoryControl
+       {
+               [MonoTODO]
+               public VlvRequestControl ()
+                       : base (null, null, false, false)
+               {
+                       throw new NotImplementedException ("ctor-chain");
+               }
+
+               [MonoTODO]
+               public VlvRequestControl (int beforeCount, int afterCount, byte [] target)
+                       : this ()
+               {
+                       BeforeCount = beforeCount;
+                       AfterCount = afterCount;
+                       Target = target;
+               }
+
+               public VlvRequestControl (int beforeCount, int afterCount, int offset)
+                       : this ()
+               {
+                       BeforeCount = beforeCount;
+                       AfterCount = afterCount;
+                       Offset = offset;
+               }
+
+               public VlvRequestControl (int beforeCount, int afterCount, string target)
+                       : this ()
+               {
+                       BeforeCount = beforeCount;
+                       AfterCount = afterCount;
+                       Target = Encoding.ASCII.GetBytes (target);
+               }
+
+               public int AfterCount { get; set; }
+               public int BeforeCount { get; set; }
+               public byte [] ContextId { get; set; }
+               public int EstimateCount { get; set; }
+               public int Offset { get; set; }
+               public byte [] Target { get; set; }
+
+               [MonoTODO]
+               public override byte [] GetValue ()
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/VlvResponseControl.cs b/mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols/VlvResponseControl.cs
new file mode 100644 (file)
index 0000000..dfa5533
--- /dev/null
@@ -0,0 +1,56 @@
+//
+// VlvResponseControl.cs
+//
+// Author:
+//   Atsushi Enomoto  <atsushi@ximian.com>
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+
+namespace System.DirectoryServices.Protocols
+{
+       public class VlvResponseControl : DirectoryControl
+       {
+               internal VlvResponseControl (int contentCount, byte [] contextId, ResultCode result, int targetPosition)
+                       : base (null, null, false, true)
+               {
+                       throw new NotImplementedException ("ctor-chain");
+
+                       ContentCount = contentCount;
+                       ContextId = contextId;
+                       Result = result;
+                       TargetPosition = targetPosition;
+               }
+
+               [MonoTODO]
+               public int ContentCount { get; private set; }
+               [MonoTODO]
+               public byte [] ContextId { get; private set; }
+               [MonoTODO]
+               public ResultCode Result { get; private set; }
+               [MonoTODO]
+               public int TargetPosition { get; private set; }
+       }
+}