Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Tools / WSATConfig / Configuration / HttpWrapper.cs / 1305376 / HttpWrapper.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace Microsoft.Tools.ServiceModel.WsatConfig
{
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Net;
using System.Net.Sockets;
struct HttpWrapper
{
internal static HttpApiVersion HttpApiVersion1 = new HttpApiVersion(1, 0);
internal static HttpApiVersion HttpApiVersion2 = new HttpApiVersion(2, 0);
}
// HTTP_SERVICE_CONFIG_ID
enum HttpServiceConfigId
{
HttpServiceConfigIPListenList = 0,
HttpServiceConfigSSLCertInfo,
HttpServiceConfigUrlAclInfo,
HttpServiceConfigSSLCertInfoSafe,
HttpServiceConfigTimeout,
HttpServiceConfigMax
}
// HTTP_API_VERSION
[StructLayout(LayoutKind.Sequential, Pack = 2)]
struct HttpApiVersion
{
internal ushort HttpApiMajorVersion;
internal ushort HttpApiMinorVersion;
internal HttpApiVersion(ushort majorVersion, ushort minorVersion)
{
HttpApiMajorVersion = majorVersion;
HttpApiMinorVersion = minorVersion;
}
}
// HTTP_SERVICE_CONFIG_SSL_SET
[StructLayout(LayoutKind.Sequential)]
struct HttpServiceConfigSslSet
{
internal HttpServiceConfigSslKey KeyDesc;
internal HttpServiceConfigSslParam ParamDesc;
}
// HTTP_SERVICE_CONFIG_SSL_KEY
[StructLayout(LayoutKind.Sequential)]
struct HttpServiceConfigSslKey
{
internal IntPtr pIpPort;
}
// HTTP_SERVICE_CONFIG_SSL_PARAM
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct HttpServiceConfigSslParam
{
internal int SslHashLength;
internal SafeLocalAllocation pSslHash;
internal Guid AppId;
[MarshalAs(UnmanagedType.LPWStr)]
internal string pSslCertStoreName;
internal int DefaultCertCheckMode;
internal int DefaultRevocationFreshnessTime;
internal int DefaultRevocationUrlRetrievalTimeout;
[MarshalAs(UnmanagedType.LPWStr)]
internal string pDefaultSslCtlIdentifier;
[MarshalAs(UnmanagedType.LPWStr)]
internal string pDefaultSslCtlStoreName;
internal int DefaultFlags;
}
// HTTP_SERVICE_CONFIG_APP_REFERENCE
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct HttpServiceConfigAppReference
{
internal Guid AppGuid;
[MarshalAs(UnmanagedType.LPWStr)]
internal string AppFriendlyName;
[MarshalAs(UnmanagedType.Bool)]
internal bool IsLegacyreference;
}
// HTTP_SERVICE_CONFIG_URLACL_SET
[StructLayout(LayoutKind.Sequential)]
struct HttpServiceConfigUrlAclSet
{
internal HttpServiceConfigUrlAclKey KeyDesc;
internal HttpServiceConfigUrlAclParam ParamDesc;
}
// HTTP_SERVICE_CONFIG_URLACL_KEY
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct HttpServiceConfigUrlAclKey
{
[MarshalAs(UnmanagedType.LPWStr)]
internal string pUrlPrefix;
internal HttpServiceConfigUrlAclKey(string urlPrefix)
{
pUrlPrefix = urlPrefix;
}
}
// HTTP_SERVICE_CONFIG_URLACL_PARAM
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct HttpServiceConfigUrlAclParam
{
[MarshalAs(UnmanagedType.LPWStr)]
internal string pStringSecurityDescriptor;
internal HttpServiceConfigUrlAclParam(string securityDescriptor)
{
pStringSecurityDescriptor = securityDescriptor;
}
}
// SOCKADDR
class WinsockSockAddr: IDisposable
{
const Int16 AF_INET = 2;
const Int16 AF_INET6 = 23;
object address;
GCHandle pinnedAddress;
IntPtr pAddress;
[StructLayout(LayoutKind.Sequential, Pack=1)]
internal struct SOCKADDR_IN
{
internal Int16 family;
internal Int16 port;
internal Byte addr00; internal Byte addr01;
internal Byte addr02; internal Byte addr03;
internal Int32 nothing;
}
[StructLayout(LayoutKind.Sequential, Pack=1)]
internal struct SOCKADDR_IN6
{
internal Int16 family;
internal Int16 port;
internal Int32 flowInfo;
internal Byte addr00; internal Byte addr01;
internal Byte addr02; internal Byte addr03;
internal Byte addr04; internal Byte addr05;
internal Byte addr06; internal Byte addr07;
internal Byte addr08; internal Byte addr09;
internal Byte addr10; internal Byte addr11;
internal Byte addr12; internal Byte addr13;
internal Byte addr14; internal Byte addr15;
public Int32 scopeID;
}
internal WinsockSockAddr(IPAddress source, short port)
{
pAddress = IntPtr.Zero;
if (source.AddressFamily == AddressFamily.InterNetwork)
{
SOCKADDR_IN a;
Byte[] addr = source.GetAddressBytes();
a.family = AF_INET;
a.port = IPAddress.HostToNetworkOrder(port);
a.addr00 = addr[0]; a.addr01 = addr[1];
a.addr02 = addr[2]; a.addr03 = addr[3];
a.nothing = 0;
address = a;
}
else if (source.AddressFamily == AddressFamily.InterNetworkV6)
{
SOCKADDR_IN6 a;
Byte[] addr = source.GetAddressBytes();
a.family = AF_INET6;
a.port = IPAddress.HostToNetworkOrder(port);
a.flowInfo = 0;
a.addr00 = addr[0]; a.addr01 = addr[1];
a.addr02 = addr[2]; a.addr03 = addr[3];
a.addr04 = addr[4]; a.addr05 = addr[5];
a.addr06 = addr[6]; a.addr07 = addr[7];
a.addr08 = addr[8]; a.addr09 = addr[9];
a.addr10 = addr[10]; a.addr11 = addr[11];
a.addr12 = addr[12]; a.addr13 = addr[13];
a.addr14 = addr[14]; a.addr15 = addr[15];
a.scopeID = (Int32)source.ScopeId;
address = a;
}
pinnedAddress = GCHandle.Alloc(address, GCHandleType.Pinned);
pAddress = pinnedAddress.AddrOfPinnedObject();
}
public void Dispose()
{
Close();
GC.SuppressFinalize(this);
}
void Close()
{
if (pinnedAddress.IsAllocated)
{
pinnedAddress.Free();
}
address = null;
pAddress = IntPtr.Zero;
}
~WinsockSockAddr()
{
Close();
}
internal IntPtr PinnedSockAddr
{
get { return pAddress; }
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace Microsoft.Tools.ServiceModel.WsatConfig
{
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Net;
using System.Net.Sockets;
struct HttpWrapper
{
internal static HttpApiVersion HttpApiVersion1 = new HttpApiVersion(1, 0);
internal static HttpApiVersion HttpApiVersion2 = new HttpApiVersion(2, 0);
}
// HTTP_SERVICE_CONFIG_ID
enum HttpServiceConfigId
{
HttpServiceConfigIPListenList = 0,
HttpServiceConfigSSLCertInfo,
HttpServiceConfigUrlAclInfo,
HttpServiceConfigSSLCertInfoSafe,
HttpServiceConfigTimeout,
HttpServiceConfigMax
}
// HTTP_API_VERSION
[StructLayout(LayoutKind.Sequential, Pack = 2)]
struct HttpApiVersion
{
internal ushort HttpApiMajorVersion;
internal ushort HttpApiMinorVersion;
internal HttpApiVersion(ushort majorVersion, ushort minorVersion)
{
HttpApiMajorVersion = majorVersion;
HttpApiMinorVersion = minorVersion;
}
}
// HTTP_SERVICE_CONFIG_SSL_SET
[StructLayout(LayoutKind.Sequential)]
struct HttpServiceConfigSslSet
{
internal HttpServiceConfigSslKey KeyDesc;
internal HttpServiceConfigSslParam ParamDesc;
}
// HTTP_SERVICE_CONFIG_SSL_KEY
[StructLayout(LayoutKind.Sequential)]
struct HttpServiceConfigSslKey
{
internal IntPtr pIpPort;
}
// HTTP_SERVICE_CONFIG_SSL_PARAM
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct HttpServiceConfigSslParam
{
internal int SslHashLength;
internal SafeLocalAllocation pSslHash;
internal Guid AppId;
[MarshalAs(UnmanagedType.LPWStr)]
internal string pSslCertStoreName;
internal int DefaultCertCheckMode;
internal int DefaultRevocationFreshnessTime;
internal int DefaultRevocationUrlRetrievalTimeout;
[MarshalAs(UnmanagedType.LPWStr)]
internal string pDefaultSslCtlIdentifier;
[MarshalAs(UnmanagedType.LPWStr)]
internal string pDefaultSslCtlStoreName;
internal int DefaultFlags;
}
// HTTP_SERVICE_CONFIG_APP_REFERENCE
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct HttpServiceConfigAppReference
{
internal Guid AppGuid;
[MarshalAs(UnmanagedType.LPWStr)]
internal string AppFriendlyName;
[MarshalAs(UnmanagedType.Bool)]
internal bool IsLegacyreference;
}
// HTTP_SERVICE_CONFIG_URLACL_SET
[StructLayout(LayoutKind.Sequential)]
struct HttpServiceConfigUrlAclSet
{
internal HttpServiceConfigUrlAclKey KeyDesc;
internal HttpServiceConfigUrlAclParam ParamDesc;
}
// HTTP_SERVICE_CONFIG_URLACL_KEY
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct HttpServiceConfigUrlAclKey
{
[MarshalAs(UnmanagedType.LPWStr)]
internal string pUrlPrefix;
internal HttpServiceConfigUrlAclKey(string urlPrefix)
{
pUrlPrefix = urlPrefix;
}
}
// HTTP_SERVICE_CONFIG_URLACL_PARAM
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct HttpServiceConfigUrlAclParam
{
[MarshalAs(UnmanagedType.LPWStr)]
internal string pStringSecurityDescriptor;
internal HttpServiceConfigUrlAclParam(string securityDescriptor)
{
pStringSecurityDescriptor = securityDescriptor;
}
}
// SOCKADDR
class WinsockSockAddr: IDisposable
{
const Int16 AF_INET = 2;
const Int16 AF_INET6 = 23;
object address;
GCHandle pinnedAddress;
IntPtr pAddress;
[StructLayout(LayoutKind.Sequential, Pack=1)]
internal struct SOCKADDR_IN
{
internal Int16 family;
internal Int16 port;
internal Byte addr00; internal Byte addr01;
internal Byte addr02; internal Byte addr03;
internal Int32 nothing;
}
[StructLayout(LayoutKind.Sequential, Pack=1)]
internal struct SOCKADDR_IN6
{
internal Int16 family;
internal Int16 port;
internal Int32 flowInfo;
internal Byte addr00; internal Byte addr01;
internal Byte addr02; internal Byte addr03;
internal Byte addr04; internal Byte addr05;
internal Byte addr06; internal Byte addr07;
internal Byte addr08; internal Byte addr09;
internal Byte addr10; internal Byte addr11;
internal Byte addr12; internal Byte addr13;
internal Byte addr14; internal Byte addr15;
public Int32 scopeID;
}
internal WinsockSockAddr(IPAddress source, short port)
{
pAddress = IntPtr.Zero;
if (source.AddressFamily == AddressFamily.InterNetwork)
{
SOCKADDR_IN a;
Byte[] addr = source.GetAddressBytes();
a.family = AF_INET;
a.port = IPAddress.HostToNetworkOrder(port);
a.addr00 = addr[0]; a.addr01 = addr[1];
a.addr02 = addr[2]; a.addr03 = addr[3];
a.nothing = 0;
address = a;
}
else if (source.AddressFamily == AddressFamily.InterNetworkV6)
{
SOCKADDR_IN6 a;
Byte[] addr = source.GetAddressBytes();
a.family = AF_INET6;
a.port = IPAddress.HostToNetworkOrder(port);
a.flowInfo = 0;
a.addr00 = addr[0]; a.addr01 = addr[1];
a.addr02 = addr[2]; a.addr03 = addr[3];
a.addr04 = addr[4]; a.addr05 = addr[5];
a.addr06 = addr[6]; a.addr07 = addr[7];
a.addr08 = addr[8]; a.addr09 = addr[9];
a.addr10 = addr[10]; a.addr11 = addr[11];
a.addr12 = addr[12]; a.addr13 = addr[13];
a.addr14 = addr[14]; a.addr15 = addr[15];
a.scopeID = (Int32)source.ScopeId;
address = a;
}
pinnedAddress = GCHandle.Alloc(address, GCHandleType.Pinned);
pAddress = pinnedAddress.AddrOfPinnedObject();
}
public void Dispose()
{
Close();
GC.SuppressFinalize(this);
}
void Close()
{
if (pinnedAddress.IsAllocated)
{
pinnedAddress.Free();
}
address = null;
pAddress = IntPtr.Zero;
}
~WinsockSockAddr()
{
Close();
}
internal IntPtr PinnedSockAddr
{
get { return pAddress; }
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CompilerTypeWithParams.cs
- LambdaCompiler.Unary.cs
- IisTraceWebEventProvider.cs
- LineGeometry.cs
- ExpressionTextBox.xaml.cs
- Freezable.cs
- FlowSwitchDesigner.xaml.cs
- EntityDataSourceWrapper.cs
- ContractCodeDomInfo.cs
- HtmlElement.cs
- ISAPIApplicationHost.cs
- XmlQueryContext.cs
- _NetRes.cs
- ThreadExceptionDialog.cs
- ReflectPropertyDescriptor.cs
- BooleanAnimationBase.cs
- ToolStripRenderEventArgs.cs
- SqlExpressionNullability.cs
- XPathSelectionIterator.cs
- VirtualPath.cs
- TextEmbeddedObject.cs
- HierarchicalDataBoundControl.cs
- EntityProviderFactory.cs
- QilUnary.cs
- MailMessageEventArgs.cs
- ErrorFormatterPage.cs
- EndpointAddress10.cs
- SvcMapFileLoader.cs
- TypeEnumerableViewSchema.cs
- StrokeCollectionDefaultValueFactory.cs
- TrustManagerMoreInformation.cs
- PasswordRecoveryDesigner.cs
- WorkflowMessageEventArgs.cs
- BaseDataBoundControl.cs
- HiddenField.cs
- UIElementHelper.cs
- DummyDataSource.cs
- BindingExpressionBase.cs
- SymbolType.cs
- UnknownBitmapEncoder.cs
- UIntPtr.cs
- Operators.cs
- RawStylusInputCustomData.cs
- PointConverter.cs
- CodeParameterDeclarationExpressionCollection.cs
- CryptoConfig.cs
- XmlSchemaAttributeGroupRef.cs
- EntityDescriptor.cs
- ToolboxItem.cs
- ColorIndependentAnimationStorage.cs
- SessionEndingEventArgs.cs
- XmlText.cs
- MethodCallConverter.cs
- ErrorProvider.cs
- CompositeKey.cs
- NotFiniteNumberException.cs
- UrlMapping.cs
- EditorBrowsableAttribute.cs
- GlyphRun.cs
- SmtpAuthenticationManager.cs
- ReadOnlyDataSourceView.cs
- StringFormat.cs
- XmlSerializerNamespaces.cs
- PenLineJoinValidation.cs
- RouteData.cs
- BitmapSourceSafeMILHandle.cs
- BoolLiteral.cs
- ToolBarButton.cs
- Util.cs
- BamlRecords.cs
- QuaternionAnimation.cs
- ValidatorUtils.cs
- RelOps.cs
- SystemColorTracker.cs
- ObjectHandle.cs
- TypeConverterAttribute.cs
- StateChangeEvent.cs
- SystemEvents.cs
- RegexParser.cs
- RuntimeEnvironment.cs
- AssemblyBuilderData.cs
- EntityClassGenerator.cs
- CodeCompileUnit.cs
- DataGridViewButtonColumn.cs
- LinqDataSourceSelectEventArgs.cs
- OletxVolatileEnlistment.cs
- NativeMethodsOther.cs
- DefaultParameterValueAttribute.cs
- CodeArrayCreateExpression.cs
- TraceHwndHost.cs
- Transform3DCollection.cs
- RemotingException.cs
- MsmqBindingFilter.cs
- ISFTagAndGuidCache.cs
- IPAddress.cs
- AspCompat.cs
- EventHandlingScope.cs
- ComplexLine.cs
- HttpVersion.cs
- DesignerForm.cs