diff --git a/iis/winbuild/Makefile.win b/iis/winbuild/Makefile.win
index 73a5462a..0352c52d 100644
--- a/iis/winbuild/Makefile.win
+++ b/iis/winbuild/Makefile.win
@@ -4,11 +4,11 @@
###########################################################################
# Path to Apache httpd installation
-BASE = C:\Apache22
+BASE = %APACHE%
# Paths to required libraries
-PCRE = C:\work\pcre-8.30
-CURL = C:\work\curl-7.24.0
+PCRE = %PCRE%
+CURL = %CURL%
# Linking libraries
LIBS = $(BASE)\lib\libapr-1.lib \
@@ -24,7 +24,7 @@ CC = cL
MT = mt
-DEFS = /nologo /O2 /W3 -DWIN32 -DWINNT -Dinline=APR_INLINE -D_CONSOLE
+DEFS = /nologo /O2 /W3 -DWIN32 -DWINNT -Dinline=APR_INLINE -D_CONSOLE -D$(VERSION)
EXE = mlogc.exe
diff --git a/iis/winbuild/build.bat b/iis/winbuild/build.bat
index 1f4abff1..0965911c 100644
--- a/iis/winbuild/build.bat
+++ b/iis/winbuild/build.bat
@@ -1,115 +1,11 @@
c:
-set WORK=c:\work
-set HTTPD=httpd-2.2.22
-set APACHE=c:\Apache22
-set PCRE=pcre-8.30
-set ZLIB=zlib-1.2.7
-set LIBXML2=libxml2-2.7.7
-set LUA=lua-5.1.5
-set CURL=curl-7.24.0
+
+call build_apache.bat
+call build_pcre.bat
+call build_zlib.bat
+call build_libxml2.bat
+call build_lua.bat
+call build_curl.bat
+call build_module.bat
cd %WORK%
-rmdir /s /q %APACHE%
-rmdir /s /q %HTTPD%
-7z.exe x %HTTPD%-win32-src.zip
-fart.exe -r -i -C %WORK%\%HTTPD%\*.mak \x2Fmachine:x86 " "
-fart.exe -r -i -C %WORK%\%HTTPD%\*.mk.win \x2Fmachine:x86 " "
-copy /y %WORK%\libhttpd.mak %WORK%\%HTTPD%
-copy /y %WORK%\mod_ssl.mak %WORK%\%HTTPD%\modules\ssl
-copy /y %WORK%\apr.mak %WORK%\%HTTPD%\srclib\apr
-copy /y %WORK%\libapr.mak %WORK%\%HTTPD%\srclib\apr
-copy /y %WORK%\aprutil.mak %WORK%\%HTTPD%\srclib\apr-util
-copy /y %WORK%\libaprutil.mak %WORK%\%HTTPD%\srclib\apr-util
-copy /y %WORK%\dftables.mak %WORK%\%HTTPD%\srclib\pcre
-copy /y %WORK%\pcre.mak %WORK%\%HTTPD%\srclib\pcre
-cd %HTTPD%
-nmake -f Makefile.win installr
-SET HTTPD_BUILD=%WORK%\%HTTPD%
-IF NOT DEFINED FULLBUILD pause
-
-cd %WORK%
-rmdir /s /q %PCRE%
-7z.exe x %PCRE%.zip
-cd %PCRE%
-CMAKE -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=True
-NMAKE
-IF NOT DEFINED FULLBUILD pause
-
-cd %WORK%
-rmdir /s /q %ZLIB%
-7z.exe x %ZLIB%.zip
-cd %ZLIB%
-nmake -f win32\Makefile.msc
-SET INCLUDE=%INCLUDE%;%WORK%\%ZLIB%
-SET LIB=%LIB%;%WORK%\%ZLIB%
-IF NOT DEFINED FULLBUILD pause
-
-cd %WORK%
-rmdir /s /q %LIBXML2%
-7z.exe x %LIBXML2%.zip
-fart.exe -r -i -C %WORK%\%LIBXML2%\win32\*.* \x2Fopt:nowin98 " "
-cd %LIBXML2%\win32
-CSCRIPT configure.js iconv=no vcmanifest=yes zlib=yes
-NMAKE -f Makefile.msvc
-IF NOT DEFINED FULLBUILD pause
-
-cd %WORK%
-rmdir /s /q %LUA%
-7z.exe x %LUA%.zip
-CD %LUA%\src
-CL /Ox /arch:SSE2 /GF /GL /Gy /FD /EHsc /MD /Zi /TC /wd4005 /D "_MBCS" /D "LUA_CORE" /D "LUA_BUILD_AS_DLL" /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WIN32" /D "_WINDLL" /c *.c
-DEL lua.obj luac.obj
-LINK /DLL /LTCG /DEBUG /OUT:lua5.1.dll *.obj
-IF EXIST lua5.1.dll.manifest MT -manifest lua5.1.dll.manifest -outputresource:lua5.1.dll;2
-IF NOT DEFINED FULLBUILD pause
-
-cd %WORK%
-rmdir /s /q %CURL%
-7z.exe x %CURL%.zip
-copy /y CMakeLists.txt %CURL%
-CD %CURL%
-CMAKE -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=True -DCURL_ZLIB=True
-%WORK%\fart.exe -r -C %WORK%\%CURL%\include\curl\curlbuild.h LLU ULL
-NMAKE
-IF NOT DEFINED FULLBUILD pause
-
-cd %WORK%
-CD mod_security\apache2
-del *.obj *.dll *.lib
-NMAKE -f Makefile.win APACHE=C:\Apache22 PCRE=%WORK%\%PCRE% LIBXML2=%WORK%\%LIBXML2% LUA=%WORK%\%LUA%\src VERSION=VERSION_IIS
-cd ..\mlogc
-copy /y %WORK%\Makefile.win .
-nmake -f Makefile.win clean
-nmake -f Makefile.win
-cd ..\iis
-nmake -f Makefile.win clean
-NMAKE -f Makefile.win APACHE=C:\Apache22 PCRE=%WORK%\%PCRE% LIBXML2=%WORK%\%LIBXML2% LUA=%WORK%\%LUA%\src VERSION=VERSION_IIS
-
-cd %WORK%
-
-copy /y %APACHE%\bin\libapr-1.dll %DROP%
-copy /y %APACHE%\bin\libapr-1.pdb %DROP%
-copy /y %APACHE%\lib\libapr-1.lib %DROP%
-copy /y %APACHE%\bin\libapriconv-1.dll %DROP%
-copy /y %APACHE%\bin\libapriconv-1.pdb %DROP%
-copy /y %APACHE%\lib\libapriconv-1.lib %DROP%
-copy /y %APACHE%\bin\libaprutil-1.dll %DROP%
-copy /y %APACHE%\bin\libaprutil-1.pdb %DROP%
-copy /y %APACHE%\lib\libaprutil-1.lib %DROP%
-copy /y %WORK%\%LIBXML2%\win32\bin.msvc\libxml2.dll %DROP%
-copy /y %WORK%\%LIBXML2%\win32\bin.msvc\libxml2.lib %DROP%
-copy /y %WORK%\%LUA%\src\lua5.1.dll %DROP%
-copy /y %WORK%\%LUA%\src\lua5.1.pdb %DROP%
-copy /y %WORK%\%LUA%\src\lua5.1.lib %DROP%
-copy /y %WORK%\%PCRE%\pcre.dll %DROP%
-copy /y %WORK%\%PCRE%\pcre.pdb %DROP%
-copy /y %WORK%\%PCRE%\pcre.lib %DROP%
-copy /y %WORK%\%ZLIB%\zlib1.dll %DROP%
-copy /y %WORK%\%ZLIB%\zlib1.pdb %DROP%
-copy /y %WORK%\%ZLIB%\zdll.lib %DROP%
-copy /y %WORK%\%CURL%\libcurl.dll %DROP%
-copy /y %WORK%\%CURL%\libcurl.pdb %DROP%
-copy /y %WORK%\%CURL%\libcurl_imp.lib %DROP%
-copy /y %WORK%\mod_security\mlogc\mlogc.exe %DROP%
-copy /y %WORK%\mod_security\iis\modsecurityiis.dll %DROP%
-copy /y %WORK%\mod_security\iis\modsecurityiis.pdb %DROP%
diff --git a/iis/winbuild/build32.bat b/iis/winbuild/build32.bat
index e89f33e5..437a7248 100644
--- a/iis/winbuild/build32.bat
+++ b/iis/winbuild/build32.bat
@@ -1,3 +1,4 @@
+SET APACHE24_ZIP=httpd-2.4.3-win32.zip
mkdir %DROP%
call vsvars32.bat
call init.bat
diff --git a/iis/winbuild/build64.bat b/iis/winbuild/build64.bat
index 7c50f5ae..0bc40d13 100644
--- a/iis/winbuild/build64.bat
+++ b/iis/winbuild/build64.bat
@@ -1,3 +1,4 @@
+SET APACHE24_ZIP=httpd-2.4.3-win64.zip
mkdir %DROP%
call vcvars64.bat
call init.bat
diff --git a/iis/winbuild/build_apache.bat b/iis/winbuild/build_apache.bat
new file mode 100644
index 00000000..f62b7282
--- /dev/null
+++ b/iis/winbuild/build_apache.bat
@@ -0,0 +1,40 @@
+cd %WORK%
+rmdir /s /q %APACHE%
+rmdir /s /q %HTTPD%
+IF NOT DEFINED BUILD_APACHE GOTO USE_APACHE_24
+7z.exe x %HTTPD%-win32-src.zip
+fart.exe -r -i -C %WORK%\%HTTPD%\*.mak \x2Fmachine:x86 " "
+fart.exe -r -i -C %WORK%\%HTTPD%\*.mk.win \x2Fmachine:x86 " "
+copy /y %WORK%\libhttpd.mak %WORK%\%HTTPD%
+copy /y %WORK%\mod_ssl.mak %WORK%\%HTTPD%\modules\ssl
+copy /y %WORK%\apr.mak %WORK%\%HTTPD%\srclib\apr
+copy /y %WORK%\libapr.mak %WORK%\%HTTPD%\srclib\apr
+copy /y %WORK%\aprutil.mak %WORK%\%HTTPD%\srclib\apr-util
+copy /y %WORK%\libaprutil.mak %WORK%\%HTTPD%\srclib\apr-util
+copy /y %WORK%\dftables.mak %WORK%\%HTTPD%\srclib\pcre
+copy /y %WORK%\pcre.mak %WORK%\%HTTPD%\srclib\pcre
+cd %HTTPD%
+nmake -f Makefile.win installr
+IF NOT DEFINED FULLBUILD pause
+GOTO END
+
+:USE_APACHE_24
+set APACHE=%WORK%\Apache24
+del /q /f --*.*
+del /q /f readme.txt
+rmdir /s /q %APACHE%
+7z.exe x %APACHE24_ZIP%
+7z.exe x %HTTPD%.zip
+
+:END
+copy /y %APACHE%\bin\libapr-1.dll %DROP%
+copy /y %APACHE%\bin\libapr-1.pdb %DROP%
+copy /y %APACHE%\lib\libapr-1.lib %DROP%
+copy /y %APACHE%\bin\libapriconv-1.dll %DROP%
+copy /y %APACHE%\bin\libapriconv-1.pdb %DROP%
+copy /y %APACHE%\lib\libapriconv-1.lib %DROP%
+copy /y %APACHE%\bin\libaprutil-1.dll %DROP%
+copy /y %APACHE%\bin\libaprutil-1.pdb %DROP%
+copy /y %APACHE%\lib\libaprutil-1.lib %DROP%
+SET HTTPD_BUILD=%WORK%\%HTTPD%
+cd %WORK%
diff --git a/iis/winbuild/build_curl.bat b/iis/winbuild/build_curl.bat
new file mode 100644
index 00000000..ce902e34
--- /dev/null
+++ b/iis/winbuild/build_curl.bat
@@ -0,0 +1,14 @@
+cd %WORK%
+rmdir /s /q %CURL%
+7z.exe x %CURL%.zip
+copy /y CMakeLists.txt %CURL%
+CD %CURL%
+CMAKE -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=True -DCURL_ZLIB=True
+%WORK%\fart.exe -r -C %WORK%\%CURL%\include\curl\curlbuild.h LLU ULL
+NMAKE
+IF NOT DEFINED FULLBUILD pause
+cd %WORK%
+
+copy /y %WORK%\%CURL%\libcurl.dll %DROP%
+copy /y %WORK%\%CURL%\libcurl.pdb %DROP%
+copy /y %WORK%\%CURL%\libcurl_imp.lib %DROP%
diff --git a/iis/winbuild/build_libxml2.bat b/iis/winbuild/build_libxml2.bat
new file mode 100644
index 00000000..efef5dce
--- /dev/null
+++ b/iis/winbuild/build_libxml2.bat
@@ -0,0 +1,12 @@
+cd %WORK%
+rmdir /s /q %LIBXML2%
+7z.exe x %LIBXML2%.zip
+fart.exe -r -i -C %WORK%\%LIBXML2%\win32\*.* \x2Fopt:nowin98 " "
+cd %LIBXML2%\win32
+CSCRIPT configure.js iconv=no vcmanifest=yes zlib=yes
+NMAKE -f Makefile.msvc
+IF NOT DEFINED FULLBUILD pause
+cd %WORK%
+
+copy /y %WORK%\%LIBXML2%\win32\bin.msvc\libxml2.dll %DROP%
+copy /y %WORK%\%LIBXML2%\win32\bin.msvc\libxml2.lib %DROP%
diff --git a/iis/winbuild/build_lua.bat b/iis/winbuild/build_lua.bat
new file mode 100644
index 00000000..140be214
--- /dev/null
+++ b/iis/winbuild/build_lua.bat
@@ -0,0 +1,14 @@
+cd %WORK%
+rmdir /s /q %LUA%
+7z.exe x %LUA%.zip
+CD %LUA%\src
+CL /Ox /arch:SSE2 /GF /GL /Gy /FD /EHsc /MD /Zi /TC /wd4005 /D "_MBCS" /D "LUA_CORE" /D "LUA_BUILD_AS_DLL" /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WIN32" /D "_WINDLL" /c *.c
+DEL lua.obj luac.obj
+LINK /DLL /LTCG /DEBUG /OUT:lua5.1.dll *.obj
+IF EXIST lua5.1.dll.manifest MT -manifest lua5.1.dll.manifest -outputresource:lua5.1.dll;2
+IF NOT DEFINED FULLBUILD pause
+cd %WORK%
+
+copy /y %WORK%\%LUA%\src\lua5.1.dll %DROP%
+copy /y %WORK%\%LUA%\src\lua5.1.pdb %DROP%
+copy /y %WORK%\%LUA%\src\lua5.1.lib %DROP%
diff --git a/iis/winbuild/build_module.bat b/iis/winbuild/build_module.bat
new file mode 100644
index 00000000..7d54ae4a
--- /dev/null
+++ b/iis/winbuild/build_module.bat
@@ -0,0 +1,16 @@
+cd %WORK%
+CD mod_security\apache2
+del *.obj *.dll *.lib
+NMAKE -f Makefile.win APACHE=%APACHE% PCRE=%WORK%\%PCRE% LIBXML2=%WORK%\%LIBXML2% LUA=%WORK%\%LUA%\src VERSION=VERSION_IIS
+cd ..\mlogc
+copy /y %WORK%\Makefile.win .
+nmake -f Makefile.win clean
+nmake -f Makefile.win APACHE=%APACHE% PCRE=%WORK%\%PCRE% CURL=%WORK%\%CURL% VERSION=VERSION_IIS
+cd ..\iis
+nmake -f Makefile.win clean
+NMAKE -f Makefile.win APACHE=%APACHE% PCRE=%WORK%\%PCRE% LIBXML2=%WORK%\%LIBXML2% LUA=%WORK%\%LUA%\src VERSION=VERSION_IIS
+cd %WORK%
+
+copy /y %WORK%\mod_security\mlogc\mlogc.exe %DROP%
+copy /y %WORK%\mod_security\iis\modsecurityiis.dll %DROP%
+copy /y %WORK%\mod_security\iis\modsecurityiis.pdb %DROP%
diff --git a/iis/winbuild/build_pcre.bat b/iis/winbuild/build_pcre.bat
new file mode 100644
index 00000000..d1d17387
--- /dev/null
+++ b/iis/winbuild/build_pcre.bat
@@ -0,0 +1,12 @@
+cd %WORK%
+rmdir /s /q %PCRE%
+7z.exe x %PCRE%.zip
+cd %PCRE%
+CMAKE -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=True
+NMAKE
+IF NOT DEFINED FULLBUILD pause
+cd %WORK%
+
+copy /y %WORK%\%PCRE%\pcre.dll %DROP%
+copy /y %WORK%\%PCRE%\pcre.pdb %DROP%
+copy /y %WORK%\%PCRE%\pcre.lib %DROP%
diff --git a/iis/winbuild/build_zlib.bat b/iis/winbuild/build_zlib.bat
new file mode 100644
index 00000000..d9b901bb
--- /dev/null
+++ b/iis/winbuild/build_zlib.bat
@@ -0,0 +1,13 @@
+cd %WORK%
+rmdir /s /q %ZLIB%
+7z.exe x %ZLIB%.zip
+cd %ZLIB%
+nmake -f win32\Makefile.msc
+SET INCLUDE=%INCLUDE%;%WORK%\%ZLIB%
+SET LIB=%LIB%;%WORK%\%ZLIB%
+IF NOT DEFINED FULLBUILD pause
+cd %WORK%
+
+copy /y %WORK%\%ZLIB%\zlib1.dll %DROP%
+copy /y %WORK%\%ZLIB%\zlib1.pdb %DROP%
+copy /y %WORK%\%ZLIB%\zdll.lib %DROP%
diff --git a/iis/winbuild/buildall.bat b/iis/winbuild/buildall.bat
index 48ee316e..f99dd5ca 100644
--- a/iis/winbuild/buildall.bat
+++ b/iis/winbuild/buildall.bat
@@ -1,5 +1,7 @@
set FULLBUILD=1
+
set DROP=c:\drop\amd64
cmd.exe /c build64.bat
+
set DROP=c:\drop\x86
cmd.exe /c build32.bat
diff --git a/iis/winbuild/howto.txt b/iis/winbuild/howto.txt
index 50bbcce1..e5b034cd 100644
--- a/iis/winbuild/howto.txt
+++ b/iis/winbuild/howto.txt
@@ -12,7 +12,7 @@ IIS enabled/installed
cmake 2.8.7
curl 7.24.0
-apache 2.2.22
+apache 2.2.22 or apache 2.4.3
libxml2 2.7.7
lua 5.1.5
pcre 8.30
@@ -29,7 +29,7 @@ zlib 1.2.7
7. Download curl, apache, libxml2, lua, pcre and zlib, place them in zip files in c:\work
curl-7.24.0.zip
-httpd-2.2.22-win32-src.zip
+httpd-2.2.22-win32-src.zip or (httpd-2.4.3.zip (source) and httpd-2.4.3-win32.zip + httpd-2.4.3-win64.zip (binaries))
libxml2-2.7.7.zip
lua-5.1.5.zip
pcre-8.30.zip
@@ -38,7 +38,7 @@ zlib-1.2.7.zip
Modify c:\work\build.bat accordingly (if other versions were used)
8. Open cmd.exe window, go to c:\work and run buildall.bat
-9. When done, the binaries should appear under c:\drop\x86 (32-bit) and c:\drop\amd64 (64-bit)
+9. When done, the binaries, lib and pdb files should appear under c:\drop\x86 (32-bit) and c:\drop\amd64 (64-bit)
10. Open the VS ModSecurity IIS installer project
11. Copy new binaries to the installer's x86 and amd64 directories
12. Build installer from within VS
diff --git a/iis/winbuild/init.bat b/iis/winbuild/init.bat
index d6810f9f..7f01426f 100644
--- a/iis/winbuild/init.bat
+++ b/iis/winbuild/init.bat
@@ -1 +1,13 @@
set PATH=%PATH%;c:\work\cmake-2.8.7-win32-x86\bin;"c:\program files\7-zip"
+
+rem set BUILD_APACHE=YES
+set HTTPD=httpd-2.2.22
+IF NOT DEFINED BUILD_APACHE SET HTTPD=httpd-2.4.3
+
+set WORK=c:\work
+set APACHE=c:\Apache22
+set PCRE=pcre-8.30
+set ZLIB=zlib-1.2.7
+set LIBXML2=libxml2-2.7.7
+set LUA=lua-5.1.5
+set CURL=curl-7.24.0
diff --git a/mlogc/Makefile.win b/mlogc/Makefile.win
index 73a5462a..0352c52d 100755
--- a/mlogc/Makefile.win
+++ b/mlogc/Makefile.win
@@ -4,11 +4,11 @@
###########################################################################
# Path to Apache httpd installation
-BASE = C:\Apache22
+BASE = %APACHE%
# Paths to required libraries
-PCRE = C:\work\pcre-8.30
-CURL = C:\work\curl-7.24.0
+PCRE = %PCRE%
+CURL = %CURL%
# Linking libraries
LIBS = $(BASE)\lib\libapr-1.lib \
@@ -24,7 +24,7 @@ CC = cL
MT = mt
-DEFS = /nologo /O2 /W3 -DWIN32 -DWINNT -Dinline=APR_INLINE -D_CONSOLE
+DEFS = /nologo /O2 /W3 -DWIN32 -DWINNT -Dinline=APR_INLINE -D_CONSOLE -D$(VERSION)
EXE = mlogc.exe
diff --git a/standalone/config.c b/standalone/config.c
index 601ed601..1a49eee6 100644
--- a/standalone/config.c
+++ b/standalone/config.c
@@ -48,6 +48,7 @@ AP_DECLARE(int) ap_cfg_closefile(ap_configfile_t *cfp)
return (cfp->close == NULL) ? 0 : cfp->close(cfp->param);
}
+#if AP_SERVER_MAJORVERSION_NUMBER > 1 && AP_SERVER_MINORVERSION_NUMBER < 3
static apr_status_t cfg_close(void *param)
{
apr_file_t *cfp = (apr_file_t *) param;
@@ -73,6 +74,23 @@ static void *cfg_getstr(void *buf, size_t bufsiz, void *param)
}
return NULL;
}
+#else
+/* we can't use apr_file_* directly because of linking issues on Windows */
+static apr_status_t cfg_close(void *param)
+{
+ return apr_file_close(param);
+}
+
+static apr_status_t cfg_getch(char *ch, void *param)
+{
+ return apr_file_getc(ch, param);
+}
+
+static apr_status_t cfg_getstr(void *buf, apr_size_t bufsiz, void *param)
+{
+ return apr_file_gets(buf, bufsiz, param);
+}
+#endif
/* Read one line from open ap_configfile_t, strip LF, increase line number */
/* If custom handler does not define a getstr() function, read char by char */
@@ -478,9 +496,15 @@ AP_DECLARE(apr_status_t) ap_pcfg_openfile(ap_configfile_t **ret_cfg,
new_cfg = apr_palloc(p, sizeof(*new_cfg));
new_cfg->param = file;
new_cfg->name = apr_pstrdup(p, name);
+#if AP_SERVER_MAJORVERSION_NUMBER > 1 && AP_SERVER_MINORVERSION_NUMBER < 3
new_cfg->getch = (int (*)(void *)) cfg_getch;
new_cfg->getstr = (void *(*)(void *, size_t, void *)) cfg_getstr;
new_cfg->close = (int (*)(void *)) cfg_close;
+#else
+ new_cfg->getch = cfg_getch;
+ new_cfg->getstr = cfg_getstr;
+ new_cfg->close = cfg_close;
+#endif
new_cfg->line_number = 0;
*ret_cfg = new_cfg;
return APR_SUCCESS;
@@ -668,9 +692,15 @@ static const char *invoke_cmd(const command_rec *cmd, cmd_parms *parms,
}
}
+#if AP_SERVER_MAJORVERSION_NUMBER > 1 && AP_SERVER_MINORVERSION_NUMBER < 3
static cmd_parms default_parms =
{NULL, 0, -1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
+#endif
+#if AP_SERVER_MAJORVERSION_NUMBER > 1 && AP_SERVER_MINORVERSION_NUMBER > 3
+static cmd_parms default_parms =
+{NULL, 0, 0, NULL, -1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
+#endif
const char *process_command_config(server_rec *s,
void *mconfig,
diff --git a/standalone/main.cpp b/standalone/main.cpp
index 2fa11a89..7e0a1163 100644
--- a/standalone/main.cpp
+++ b/standalone/main.cpp
@@ -62,6 +62,7 @@ void parseeventfile()
char *t = event_file;
char *e = event_file + event_file_len;
+ int nocrlf = 1;
while(t < e)
{
@@ -70,23 +71,35 @@ void parseeventfile()
while(t < e && *t != 10 && *t != 13)
t++;
- while(t < e && (*t == 10 || *t == 13))
- *t++ = 0;
- }
+ char ct = *t;
+ *t = 0;
+ int i = event_line_cnt - 1;
- for(int i = 0; i < event_line_cnt; i++)
- {
int l = strlen(event_file_lines[i]);
- if(l != 14)
- continue;
+ if(l == 14 && event_file_lines[i][0] == '-' && event_file_lines[i][1] == '-' && event_file_lines[i][l-2] == '-' && event_file_lines[i][l-1] == '-')
+ {
+ char blk = event_file_lines[i][l-3];
- if(event_file_lines[i][0] != '-' || event_file_lines[i][1] != '-' || event_file_lines[i][l-2] != '-' || event_file_lines[i][l-1] != '-')
- continue;
+ event_file_blocks[blk] = i;
- char blk = event_file_lines[i][l-3];
+ if(blk == 'C' || blk == 'G')
+ {
+ nocrlf = 0;
+ }
+ else
+ {
+ nocrlf = 1;
+ }
+ }
+ *t = ct;
- event_file_blocks[blk] = i;
+ if(nocrlf)
+ while(t < e && (*t == 10 || *t == 13))
+ *t++ = 0;
+ else
+ while(t < e && (*t == 10 || *t == 13))
+ t++;
}
}
@@ -156,7 +169,9 @@ apr_status_t readbody(request_rec *r, char *buf, unsigned int length, unsigned i
*readcnt = size;
if(bodypos == l)
+ {
*is_eos = 1;
+ }
return APR_SUCCESS;
}
@@ -240,6 +255,9 @@ void main(int argc, char *argv[])
readeventfile(event_files[i]);
parseeventfile();
+ bodypos = 0;
+ responsepos = 0;
+
c = modsecNewConnection();
modsecProcessConnection(c);
diff --git a/standalone/server.c b/standalone/server.c
index ed5cd507..2875fa31 100644
--- a/standalone/server.c
+++ b/standalone/server.c
@@ -558,19 +558,17 @@ AP_DECLARE(char *) ap_server_root_relative(apr_pool_t *p, const char *file)
}
}
-#if AP_SERVER_MAJORVERSION_NUMBER > 1 && AP_SERVER_MINORVERSION_NUMBER < 3
AP_DECLARE(piped_log *) ap_open_piped_log(apr_pool_t *p, const char *program)
{
return NULL;
}
-#else
+
#if AP_SERVER_MAJORVERSION_NUMBER > 1 && AP_SERVER_MINORVERSION_NUMBER > 3
AP_DECLARE(apr_file_t *) ap_piped_log_write_fd(piped_log *pl)
{
return NULL;
}
#endif
-#endif
AP_DECLARE(char **) ap_create_environment(apr_pool_t *p, apr_table_t *t)
{
diff --git a/standalone/standalone.vcxproj b/standalone/standalone.vcxproj
index 5876ebef..ce4f1cd3 100644
--- a/standalone/standalone.vcxproj
+++ b/standalone/standalone.vcxproj
@@ -66,7 +66,7 @@
Level3
Disabled
- C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
+ C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2;c:\work\apache24\include
_MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC;VERSION_STANDALONE
4244;4018
@@ -151,38 +151,32 @@
- C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;;..\apache2
- C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
- C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
- C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
- C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
- C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2
C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2