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