diff --git a/Utilities/Adaptors/Adaptor/appcfg.c b/Utilities/Adaptors/Adaptor/appcfg.c index 275b449e3b1..417b0ca207c 100644 --- a/Utilities/Adaptors/Adaptor/appcfg.c +++ b/Utilities/Adaptors/Adaptor/appcfg.c @@ -1106,7 +1106,8 @@ static void readServerConfig() { oneOrMoreUnModified = 1; else // No response has to be treated as modification, too oneOrMoreModified = 1; - } + } else + buffer[i] = NULL; } } @@ -1191,9 +1192,11 @@ static net_fd _contactServer(ConfigServer *server) { strcat(request_str, " HTTP/1.0\n"); req.request_str = request_str; req.headers = st_new(2); - if (server->lastModifiedTime[0]) { - req_addHeader(&req,HTTP_IFMODIFIEDSINCE,server->lastModifiedTime, STR_COPYVALUE|STR_FREEVALUE); - } + // Does not work due to a bug in merging unchanged config (according to this + // lastModifiedField) with changed config data + //if (server->lastModifiedTime[0]) { + // req_addHeader(&req,HTTP_IFMODIFIEDSINCE,server->lastModifiedTime, STR_COPYVALUE|STR_FREEVALUE); + //} if (req_sendRequest(&req, s) != 0) { transport->close_connection(s); s = NULL; diff --git a/Utilities/Adaptors/Adaptor/config.h b/Utilities/Adaptors/Adaptor/config.h index 37156159f96..62191646f8e 100644 --- a/Utilities/Adaptors/Adaptor/config.h +++ b/Utilities/Adaptors/Adaptor/config.h @@ -57,7 +57,7 @@ typedef int intptr_t; #define CURRENT_WOF_VERSION_MAJOR 4 #define CURRENT_WOF_VERSION_MINOR 6 -#define ADAPTOR_VERSION "4.6" +#define ADAPTOR_VERSION "4.6.1" /* Used to turn the value of a macro into a string literal */ #define _Str(x) #x diff --git a/Utilities/Adaptors/Adaptor/log.c b/Utilities/Adaptors/Adaptor/log.c index 3c82a4b71e2..8e3fb0bcb34 100644 --- a/Utilities/Adaptors/Adaptor/log.c +++ b/Utilities/Adaptors/Adaptor/log.c @@ -172,7 +172,10 @@ static int shouldLog() if (statTime < now) { struct stat statbuf; statTime = now + STATINTERVAL; /* reset timer */ - _shouldLog = ( (stat(logFlag,&statbuf) == 0) && (statbuf.st_uid == 0) ); + _shouldLog = (stat(logFlag,&statbuf) == 0); + #ifndef WIN32 + _shouldLog = _shouldLog && (statbuf.st_uid == 0); // requesting root ownership does not make sense under Win32 + #endif } WA_unlock(logMutex); return _shouldLog; diff --git a/Utilities/Adaptors/IIS/Installation.html b/Utilities/Adaptors/IIS/Installation.html index 8a31e0d6c7e..bece5d9a70d 100644 --- a/Utilities/Adaptors/IIS/Installation.html +++ b/Utilities/Adaptors/IIS/Installation.html @@ -75,12 +75,19 @@

Microsoft IIS 5-6 Web Server ISAPI Adaptor for WebObjects

Microsoft IIS 7.x Web Server ISAPI Adaptor for WebObjects

+

Additionally to the tasks mentioned above, you have to take care that ISAPI-extensions are installed. WebObjects.dll has to be registered unter CGI-/ISAPI-Restrictions. Unter Handler-Mappings, enable DLL-Exection. +

+

By using MINGW you can build WebObjects-Adaptor as 32bit and as 64bit-DLL. +

+

The 32-Bit-DLL will run fine on 32-Bit IIS and 64-Bit-DLL will run fine on 64-Bit IIS.
When you intend to use the 32-Bit-DLL with an 64-Bit IIS, take care to configure the application pool to run in 32 bit mode and configure all registry keys named above in the Wow6432Node. +

+ diff --git a/Utilities/Adaptors/IIS/WebObjects.c b/Utilities/Adaptors/IIS/WebObjects.c index d67c81d5ba4..538982bc113 100644 --- a/Utilities/Adaptors/IIS/WebObjects.c +++ b/Utilities/Adaptors/IIS/WebObjects.c @@ -602,6 +602,21 @@ __declspec(dllexport) DWORD __stdcall HttpExtensionProc(EXTENSION_CONTROL_BLOCK return HSE_STATUS_ERROR; } + // Deactivate IIS 7.x stream buffering + // IIS 7.x (and above?) behaves differently from IIS 6 by introducing + // output buffering ISAPI Extension output + // This could cause interrupted and hence incomplete streaming output + // This change does deactivate the output buffering in IIS 7.x + // (see http://support.microsoft.com/kb/946086) and does not harm + // when called within IIS 6 + // + p->ServerSupportFunction (p->ConnID, + HSE_REQ_SET_FLUSH_FLAG, + (LPVOID) TRUE, + NULL, + NULL + ); + /* * extract WebObjects request components from URI */ diff --git a/Utilities/Adaptors/IIS/httpext.h b/Utilities/Adaptors/IIS/httpext.h index 268e3593c32..7c68dd264a5 100644 --- a/Utilities/Adaptors/IIS/httpext.h +++ b/Utilities/Adaptors/IIS/httpext.h @@ -64,6 +64,7 @@ typedef LPVOID HCONN; #define HSE_REQ_END_RESERVED 1000 #define HSE_REQ_IO_COMPLETION (HSE_REQ_END_RESERVED + 5) #define HSE_REQ_CLOSE_CONNECTION (HSE_REQ_END_RESERVED + 17) +#define HSE_REQ_SET_FLUSH_FLAG (HSE_REQ_END_RESERVED + 43) /* * Flags for IO Functions, supported for IO Funcs.