From 95a5a8f9efef02ddcec5b3f69be99a00d71a802a Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sun, 16 Dec 2018 21:19:24 -0600 Subject: Import implementation of IisCA from old repo's scasched/scaexec. --- src/ca/scawebapp7.cpp | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 src/ca/scawebapp7.cpp (limited to 'src/ca/scawebapp7.cpp') diff --git a/src/ca/scawebapp7.cpp b/src/ca/scawebapp7.cpp new file mode 100644 index 00000000..94e6bb18 --- /dev/null +++ b/src/ca/scawebapp7.cpp @@ -0,0 +1,120 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +#include "precomp.h" +HRESULT ScaWriteWebApplication7( + __in_z LPCWSTR wzWebName, + __in_z LPCWSTR wzRootOfWeb, + SCA_WEB_APPLICATION* pswapp, + SCA_APPPOOL * /*psapList*/ + ) +{ + HRESULT hr = S_OK; + + //all go to same web/root location tag + hr = ScaWriteConfigID(IIS_ASP_BEGIN); + ExitOnFailure(hr, "Failed to write WebApp ASP begin id"); + hr = ScaWriteConfigString(wzWebName); //site name key + ExitOnFailure(hr, "Failed to write app web key"); + hr = ScaWriteConfigString(wzRootOfWeb); //app path key + ExitOnFailure(hr, "Failed to write app web root"); + + // IIS7 Not Supported: Isolation + if (MSI_NULL_INTEGER != pswapp->iIsolation) + { + WcaLog(LOGMSG_TRACEONLY, "Not supported by IIS7: Isolation Mode, ignoring"); + } + + // allow session state + if (MSI_NULL_INTEGER != pswapp->fAllowSessionState) + { + //system.webServer/asp /session | allowSessionState + hr = ScaWriteConfigID(IIS_ASP_SESSIONSTATE); + ExitOnFailure(hr, "Failed to write WebApp ASP sessionstate id"); + hr = ScaWriteConfigInteger(pswapp->fAllowSessionState); + ExitOnFailure(hr, "Failed to write allow session information for App: '%ls'", pswapp->wzName); + } + + // session timeout + if (MSI_NULL_INTEGER != pswapp->iSessionTimeout) + { + //system.webServer/asp /session | timeout + hr = ScaWriteConfigID(IIS_ASP_SESSIONTIMEOUT); + ExitOnFailure(hr, "Failed to write WebApp ASP sessiontimepot id"); + hr = ScaWriteConfigInteger(pswapp->iSessionTimeout); + ExitOnFailure(hr, "Failed to write session timeout for App: '%ls'", pswapp->wzName); + } + + // asp buffering + if (MSI_NULL_INTEGER != pswapp->fBuffer) + { + //system.webServer/asp | bufferingOn + hr = ScaWriteConfigID(IIS_ASP_BUFFER); + ExitOnFailure(hr, "Failed to write WebApp ASP buffer id"); + hr = ScaWriteConfigInteger(pswapp->fBuffer); + ExitOnFailure(hr, "Failed to write buffering flag for App: '%ls'", pswapp->wzName); + } + + // asp parent paths + if (MSI_NULL_INTEGER != pswapp->fParentPaths) + { + //system.webServer/asp | enableParentPaths + hr = ScaWriteConfigID(IIS_ASP_PARENTPATHS); + ExitOnFailure(hr, "Failed to write WebApp ASP parentpaths id"); + hr = ScaWriteConfigInteger(pswapp->fParentPaths); + ExitOnFailure(hr, "Failed to write parent paths flag for App: '%ls'", pswapp->wzName); + } + + // default scripting language + if (*pswapp->wzDefaultScript) + { + //system.webServer/asp | scriptLanguage + hr = ScaWriteConfigID(IIS_ASP_SCRIPTLANG); + ExitOnFailure(hr, "Failed to write WebApp ASP script lang id"); + hr = ScaWriteConfigString(pswapp->wzDefaultScript); + ExitOnFailure(hr, "Failed to write default scripting language for App: '%ls'", pswapp->wzName); + } + + // asp script timeout + if (MSI_NULL_INTEGER != pswapp->iScriptTimeout) + { + //system.webServer/asp /limits | scriptTimeout + hr = ScaWriteConfigID(IIS_ASP_SCRIPTTIMEOUT); + ExitOnFailure(hr, "Failed to write WebApp ASP script timeout id"); + hr = ScaWriteConfigInteger(pswapp->iScriptTimeout); + ExitOnFailure(hr, "Failed to write script timeout for App: '%ls'", pswapp->wzName); + } + + // asp server-side script debugging + if (MSI_NULL_INTEGER != pswapp->fServerDebugging) + { + //system.webServer/asp | appAllowDebugging + hr = ScaWriteConfigID(IIS_ASP_SCRIPTSERVERDEBUG); + ExitOnFailure(hr, "Failed to write WebApp ASP script debug id"); + hr = ScaWriteConfigInteger(pswapp->fServerDebugging); + ExitOnFailure(hr, "Failed to write ASP server-side script debugging flag for App: '%ls'", pswapp->wzName); + } + + // asp client-side script debugging + if (MSI_NULL_INTEGER != pswapp->fClientDebugging) + { + //system.webServer/asp | appAllowClientDebug + hr = ScaWriteConfigID(IIS_ASP_SCRIPTCLIENTDEBUG); + ExitOnFailure(hr, "Failed to write WebApp ASP script debug id"); + hr = ScaWriteConfigInteger(pswapp->fClientDebugging); + ExitOnFailure(hr, "Failed to write ASP client-side script debugging flag for App: '%ls'", pswapp->wzName); + } + + //done with ASP application properties + hr = ScaWriteConfigID(IIS_ASP_END); + ExitOnFailure(hr, "Failed to write WebApp ASP begin id"); + + //write out app estensions + if (pswapp->pswappextList) + { + hr = ScaWebAppExtensionsWrite7(wzWebName, wzRootOfWeb, pswapp->pswappextList); + ExitOnFailure(hr, "Failed to write AppExtensions for App: '%ls'", pswapp->wzName); + } + +LExit: + return hr; +} -- cgit v1.2.3-55-g6feb