public override void ApplyConfig() { IntPtr pStruct = IntPtr.Zero; HttpApi.HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM setStruct = new HttpApi.HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM(); try { setStruct.pAddress = HttpApi.BuildSockaddr(2, 0, _address); setStruct.AddrLength = (short)Marshal.SizeOf(typeof(HttpApi.sockaddr)); pStruct = Marshal.AllocHGlobal(Marshal.SizeOf(setStruct)); Marshal.StructureToPtr(setStruct, pStruct, false); if ((Status == ModifiedStatus.Modified) || (Status == ModifiedStatus.Removed)) { HttpApi.Error error = HttpApi.HttpDeleteServiceConfiguration( IntPtr.Zero, HttpApi.HTTP_SERVICE_CONFIG_ID.HttpServiceConfigIPListenList, pStruct, Marshal.SizeOf(setStruct), IntPtr.Zero); if (error != HttpApi.Error.NO_ERROR) { throw new HttpApiException(error, "HttpDeleteServiceConfiguration (IPLISTEN) failed. Error = " + error); } } if ((Status == ModifiedStatus.Modified) || (Status == ModifiedStatus.Added)) { HttpApi.Error error = HttpApi.HttpSetServiceConfiguration( IntPtr.Zero, HttpApi.HTTP_SERVICE_CONFIG_ID.HttpServiceConfigIPListenList, pStruct, Marshal.SizeOf(setStruct), IntPtr.Zero); if (error != HttpApi.Error.NO_ERROR) { throw new HttpApiException(error, "HttpSetServiceConfiguration (IPLISTEN) failed. Error = " + error); } } } finally { if (setStruct.pAddress != IntPtr.Zero) { Marshal.FreeHGlobal(setStruct.pAddress); } if (pStruct != IntPtr.Zero) { Marshal.FreeHGlobal(pStruct); } } }
public override void ApplyConfig() { IntPtr pStruct = IntPtr.Zero; HttpApi.HTTP_SERVICE_CONFIG_URLACL_SET setStruct = new HttpApi.HTTP_SERVICE_CONFIG_URLACL_SET(); setStruct.KeyDesc.pUrlPrefix = _url; setStruct.ParamDesc.pStringSecurityDescriptor = _acl.ToSddl(); try { pStruct = Marshal.AllocHGlobal(Marshal.SizeOf(setStruct)); Marshal.StructureToPtr(setStruct, pStruct, false); if ((Status == ModifiedStatus.Modified) || (Status == ModifiedStatus.Removed)) { HttpApi.Error error = HttpApi.HttpDeleteServiceConfiguration( IntPtr.Zero, HttpApi.HTTP_SERVICE_CONFIG_ID.HttpServiceConfigUrlAclInfo, pStruct, Marshal.SizeOf(setStruct), IntPtr.Zero); if (error != HttpApi.Error.NO_ERROR) { throw new HttpApiException(error, "HttpDeleteServiceConfiguration (URLACL) failed. Error = " + error); } } if ((Status == ModifiedStatus.Modified) || (Status == ModifiedStatus.Added)) { HttpApi.Error error = HttpApi.HttpSetServiceConfiguration( IntPtr.Zero, HttpApi.HTTP_SERVICE_CONFIG_ID.HttpServiceConfigUrlAclInfo, pStruct, Marshal.SizeOf(setStruct), IntPtr.Zero); if (error != HttpApi.Error.NO_ERROR) { throw new HttpApiException(error, "HttpSetServiceConfiguration (URLACL) failed. Error = " + error); } } } finally { if (pStruct != IntPtr.Zero) { Marshal.DestroyStructure(pStruct, typeof(HttpApi.HTTP_SERVICE_CONFIG_URLACL_SET)); Marshal.FreeHGlobal(pStruct); } } }
public override void ApplyConfig() { IntPtr pStruct = IntPtr.Zero; HttpApi.HTTP_SERVICE_CONFIG_SSL_SET setStruct = ToStruct(); try { pStruct = Marshal.AllocHGlobal(Marshal.SizeOf(setStruct)); Marshal.StructureToPtr(setStruct, pStruct, false); if ((Status == ModifiedStatus.Modified) || (Status == ModifiedStatus.Removed)) { HttpApi.Error error = HttpApi.HttpDeleteServiceConfiguration( IntPtr.Zero, HttpApi.HTTP_SERVICE_CONFIG_ID.HttpServiceConfigSSLCertInfo, pStruct, Marshal.SizeOf(setStruct), IntPtr.Zero); if (error != HttpApi.Error.NO_ERROR) { throw new HttpApiException(error, "HttpDeleteServiceConfiguration (SSL) failed. Error = " + error); } } if ((Status == ModifiedStatus.Modified) || (Status == ModifiedStatus.Added)) { HttpApi.Error error = HttpApi.HttpSetServiceConfiguration( IntPtr.Zero, HttpApi.HTTP_SERVICE_CONFIG_ID.HttpServiceConfigSSLCertInfo, pStruct, Marshal.SizeOf(setStruct), IntPtr.Zero); if (error != HttpApi.Error.NO_ERROR) { throw new HttpApiException(error, "HttpSetServiceConfiguration (SSL) failed. Error = " + error); } } } finally { if (pStruct != IntPtr.Zero) { Marshal.DestroyStructure(pStruct, typeof(HttpApi.HTTP_SERVICE_CONFIG_SSL_SET)); Marshal.FreeHGlobal(pStruct); } FreeStruct(setStruct); } }