mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-11-17 18:05:28 +03:00
VS12 solution
This commit is contained in:
committed by
Felipe Zimmerle
parent
da5948033f
commit
8509ff6f83
9
standalone/.gitignore
vendored
Normal file
9
standalone/.gitignore
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
*.sdf
|
||||||
|
*.log
|
||||||
|
*.tlog
|
||||||
|
*.exe
|
||||||
|
*.ilk
|
||||||
|
*.pdb
|
||||||
|
*.lib
|
||||||
|
*.obj
|
||||||
|
*.idb
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
<EFBFBD><EFBFBD>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<EFBFBD><EFBFBD>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<EFBFBD><EFBFBD>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<EFBFBD><EFBFBD>
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,93 +0,0 @@
|
|||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_RELEASE.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_LUA.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\VC110.PDB
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\FILTERS.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_PARSERS.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_PCRE.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_REQBODY.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_TREE.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_UNICODE.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_UTIL.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_XML.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\PERSIST_DBM.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\RE.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\RE_ACTIONS.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\RE_OPERATORS.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\RE_TFNS.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\RE_VARIABLES.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\API.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\BUCKETS.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\CONFIG.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\HOOKS.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\REGEX.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\SERVER.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\ACMP.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\APACHE2_CONFIG.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\APACHE2_IO.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\APACHE2_UTIL.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MOD_SECURITY2.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MODSECURITY.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_CRYPT.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_GEO.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_GSB.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_LOGGING.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MSC_MULTIPART.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\MAIN.OBJ
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\STANDALONE.ILK
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\STANDALONE.EXE
|
|
||||||
C:\WORK\MOD_SECURITY\STANDALONE\DEBUG\STANDALONE.PDB
|
|
||||||
C:\work\mod_security\standalone\Debug\standalone.lib
|
|
||||||
C:\work\mod_security\standalone\Debug\standalone.exp
|
|
||||||
c:\work\mod_security\standalone\Debug\acmp.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\apache2_config.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\apache2_io.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\apache2_util.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\api.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\buckets.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\config.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\filters.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\hooks.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\main.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\modsecurity.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\mod_security2.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_crypt.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_geo.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_gsb.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_logging.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_lua.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_multipart.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_parsers.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_pcre.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_release.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_reqbody.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_tree.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_unicode.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_util.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\msc_xml.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\persist_dbm.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\re.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\regex.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\re_actions.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\re_operators.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\re_tfns.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\re_variables.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\server.obj
|
|
||||||
c:\work\mod_security\standalone\Debug\standalone.ilk
|
|
||||||
c:\work\mod_security\standalone\Debug\cl.command.1.tlog
|
|
||||||
c:\work\mod_security\standalone\Debug\CL.read.1.tlog
|
|
||||||
c:\work\mod_security\standalone\Debug\CL.write.1.tlog
|
|
||||||
c:\work\mod_security\standalone\Debug\link-cvtres.read.1.tlog
|
|
||||||
c:\work\mod_security\standalone\Debug\link-cvtres.write.1.tlog
|
|
||||||
c:\work\mod_security\standalone\Debug\link-rc.read.1.tlog
|
|
||||||
c:\work\mod_security\standalone\Debug\link-rc.write.1.tlog
|
|
||||||
c:\work\mod_security\standalone\Debug\link.command.1.tlog
|
|
||||||
c:\work\mod_security\standalone\Debug\link.read.1.tlog
|
|
||||||
c:\work\mod_security\standalone\Debug\link.write.1.tlog
|
|
||||||
c:\work\mod_security\standalone\Debug\standalone.write.1.tlog
|
|
||||||
c:\work\mod_security\standalone\Debug\standalone.exp
|
|
||||||
c:\work\mod_security\standalone\Debug\vc110.idb
|
|
||||||
c:\work\mod_security\standalone\Debug\standalone.pdb
|
|
||||||
c:\work\mod_security\standalone\Debug\vc110.pdb
|
|
||||||
C:\work\mod_security\standalone\Debug\standalone.pdb
|
|
||||||
C:\work\mod_security\standalone\Debug\standalone.exe
|
|
||||||
C:\work\mod_security\standalone\Debug\standalone.ilk
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,2 +0,0 @@
|
|||||||
#v4.0:v110:false
|
|
||||||
Debug|Win32|C:\work\mod_security\standalone\|
|
|
||||||
Binary file not shown.
@@ -1,86 +0,0 @@
|
|||||||
Build started 4/12/2013 4:24:02 PM.
|
|
||||||
1>Project "c:\work\mod_security\standalone\standalone.vcxproj" on node 2 (Build target(s)).
|
|
||||||
1>ClCompile:
|
|
||||||
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /I"C:\work\pcre-8.30\include" /I"C:\work\pcre-8.30" /I"C:\work\libxml2-2.7.7\include" /IC:\apache22\include /I..\apache2 /I"c:\work\httpd-2.2.24\include" /ZI /nologo /W3 /WX- /Od /Oy- /D _MBCS /D _MBCS /D WIN32 /D WINNT /D inline=APR_INLINE /D AP_DECLARE_STATIC /D VERSION_STANDALONE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc110.pdb" /Gd /TC /wd4244 /wd4018 /analyze- /errorReport:prompt ..\apache2\acmp.c ..\apache2\apache2_config.c ..\apache2\apache2_io.c ..\apache2\apache2_util.c ..\apache2\modsecurity.c ..\apache2\mod_security2.c ..\apache2\msc_crypt.c ..\apache2\msc_geo.c ..\apache2\msc_gsb.c ..\apache2\msc_logging.c ..\apache2\msc_lua.c ..\apache2\msc_multipart.c ..\apache2\msc_parsers.c ..\apache2\msc_pcre.c ..\apache2\msc_release.c ..\apache2\msc_reqbody.c ..\apache2\msc_tree.c ..\apache2\msc_unicode.c ..\apache2\msc_util.c ..\apache2\msc_xml.c ..\apache2\persist_dbm.c ..\apache2\re.c ..\apache2\re_actions.c ..\apache2\re_operators.c ..\apache2\re_tfns.c ..\apache2\re_variables.c api.c buckets.c config.c filters.c hooks.c regex.c server.c
|
|
||||||
server.c
|
|
||||||
regex.c
|
|
||||||
hooks.c
|
|
||||||
filters.c
|
|
||||||
config.c
|
|
||||||
buckets.c
|
|
||||||
api.c
|
|
||||||
re_variables.c
|
|
||||||
re_tfns.c
|
|
||||||
re_operators.c
|
|
||||||
re_actions.c
|
|
||||||
re.c
|
|
||||||
persist_dbm.c
|
|
||||||
msc_xml.c
|
|
||||||
msc_util.c
|
|
||||||
msc_unicode.c
|
|
||||||
msc_tree.c
|
|
||||||
msc_reqbody.c
|
|
||||||
msc_release.c
|
|
||||||
msc_pcre.c
|
|
||||||
Generating Code...
|
|
||||||
Compiling...
|
|
||||||
msc_parsers.c
|
|
||||||
msc_multipart.c
|
|
||||||
msc_lua.c
|
|
||||||
msc_logging.c
|
|
||||||
msc_gsb.c
|
|
||||||
msc_geo.c
|
|
||||||
msc_crypt.c
|
|
||||||
mod_security2.c
|
|
||||||
modsecurity.c
|
|
||||||
apache2_util.c
|
|
||||||
apache2_io.c
|
|
||||||
apache2_config.c
|
|
||||||
acmp.c
|
|
||||||
Generating Code...
|
|
||||||
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /I"C:\work\pcre-8.30\include" /I"C:\work\pcre-8.30" /I"C:\work\libxml2-2.7.7\include" /IC:\apache22\include /I..\apache2 /I"c:\work\httpd-2.2.24\include" /ZI /nologo /W3 /WX- /Od /Oy- /D _MBCS /D _MBCS /D WIN32 /D WINNT /D inline=APR_INLINE /D AP_DECLARE_STATIC /D VERSION_STANDALONE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc110.pdb" /Gd /TP /wd4244 /wd4018 /analyze- /errorReport:prompt main.cpp
|
|
||||||
main.cpp
|
|
||||||
1>c:\work\mod_security\standalone\main.cpp(16): warning C4005: 'inline' : macro redefinition
|
|
||||||
command-line arguments : see previous definition of 'inline'
|
|
||||||
Link:
|
|
||||||
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\work\mod_security\standalone\Debug\standalone.exe" /INCREMENTAL /NOLOGO /LIBPATH:c:\drop\x86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "libapr-1.lib" "libaprutil-1.lib" pcre.lib libxml2.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:\work\mod_security\standalone\Debug\standalone.pdb" /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\work\mod_security\standalone\Debug\standalone.lib" /MACHINE:X86 Debug\acmp.obj
|
|
||||||
Debug\apache2_config.obj
|
|
||||||
Debug\apache2_io.obj
|
|
||||||
Debug\apache2_util.obj
|
|
||||||
Debug\modsecurity.obj
|
|
||||||
Debug\mod_security2.obj
|
|
||||||
Debug\msc_crypt.obj
|
|
||||||
Debug\msc_geo.obj
|
|
||||||
Debug\msc_gsb.obj
|
|
||||||
Debug\msc_logging.obj
|
|
||||||
Debug\msc_lua.obj
|
|
||||||
Debug\msc_multipart.obj
|
|
||||||
Debug\msc_parsers.obj
|
|
||||||
Debug\msc_pcre.obj
|
|
||||||
Debug\msc_release.obj
|
|
||||||
Debug\msc_reqbody.obj
|
|
||||||
Debug\msc_tree.obj
|
|
||||||
Debug\msc_unicode.obj
|
|
||||||
Debug\msc_util.obj
|
|
||||||
Debug\msc_xml.obj
|
|
||||||
Debug\persist_dbm.obj
|
|
||||||
Debug\re.obj
|
|
||||||
Debug\re_actions.obj
|
|
||||||
Debug\re_operators.obj
|
|
||||||
Debug\re_tfns.obj
|
|
||||||
Debug\re_variables.obj
|
|
||||||
Debug\api.obj
|
|
||||||
Debug\buckets.obj
|
|
||||||
Debug\config.obj
|
|
||||||
Debug\filters.obj
|
|
||||||
Debug\hooks.obj
|
|
||||||
Debug\main.obj
|
|
||||||
Debug\regex.obj
|
|
||||||
Debug\server.obj
|
|
||||||
Creating library C:\work\mod_security\standalone\Debug\standalone.lib and object C:\work\mod_security\standalone\Debug\standalone.exp
|
|
||||||
standalone.vcxproj -> C:\work\mod_security\standalone\Debug\standalone.exe
|
|
||||||
1>Done Building Project "c:\work\mod_security\standalone\standalone.vcxproj" (Build target(s)).
|
|
||||||
|
|
||||||
Build succeeded.
|
|
||||||
|
|
||||||
Time Elapsed 00:00:16.08
|
|
||||||
Binary file not shown.
@@ -1,5 +0,0 @@
|
|||||||
^c:\work\mod_security\standalone\standalone.vcxproj
|
|
||||||
C:\work\mod_security\standalone\Debug\standalone.lib
|
|
||||||
C:\work\mod_security\standalone\Debug\standalone.lib
|
|
||||||
C:\work\mod_security\standalone\Debug\standalone.exp
|
|
||||||
C:\work\mod_security\standalone\Debug\standalone.exp
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,165 +1,165 @@
|
|||||||
pkglibdir = $(prefix)/lib
|
pkglibdir = $(prefix)/lib
|
||||||
|
|
||||||
pkglib_LTLIBRARIES = standalone.la
|
pkglib_LTLIBRARIES = standalone.la
|
||||||
|
|
||||||
standalone_la_SOURCES = ../apache2/acmp.c \
|
standalone_la_SOURCES = ../apache2/acmp.c \
|
||||||
../apache2/apache2_config.c \
|
../apache2/apache2_config.c \
|
||||||
../apache2/apache2_io.c \
|
../apache2/apache2_io.c \
|
||||||
../apache2/apache2_util.c \
|
../apache2/apache2_util.c \
|
||||||
../apache2/libinjection/libinjection_html5.c \
|
../apache2/libinjection/libinjection_html5.c \
|
||||||
../apache2/libinjection/libinjection_sqli.c \
|
../apache2/libinjection/libinjection_sqli.c \
|
||||||
../apache2/libinjection/libinjection_xss.c \
|
../apache2/libinjection/libinjection_xss.c \
|
||||||
../apache2/mod_security2.c \
|
../apache2/mod_security2.c \
|
||||||
../apache2/modsecurity.c \
|
../apache2/modsecurity.c \
|
||||||
../apache2/msc_status_engine.c \
|
../apache2/msc_status_engine.c \
|
||||||
../apache2/msc_crypt.c \
|
../apache2/msc_crypt.c \
|
||||||
../apache2/msc_geo.c \
|
../apache2/msc_geo.c \
|
||||||
../apache2/msc_gsb.c \
|
../apache2/msc_gsb.c \
|
||||||
../apache2/msc_json.c \
|
../apache2/msc_json.c \
|
||||||
../apache2/msc_logging.c \
|
../apache2/msc_logging.c \
|
||||||
../apache2/msc_lua.c \
|
../apache2/msc_lua.c \
|
||||||
../apache2/msc_multipart.c \
|
../apache2/msc_multipart.c \
|
||||||
../apache2/msc_parsers.c \
|
../apache2/msc_parsers.c \
|
||||||
../apache2/msc_pcre.c \
|
../apache2/msc_pcre.c \
|
||||||
../apache2/msc_release.c \
|
../apache2/msc_release.c \
|
||||||
../apache2/msc_remote_rules.c \
|
../apache2/msc_remote_rules.c \
|
||||||
../apache2/msc_reqbody.c \
|
../apache2/msc_reqbody.c \
|
||||||
../apache2/msc_tree.c \
|
../apache2/msc_tree.c \
|
||||||
../apache2/msc_unicode.c \
|
../apache2/msc_unicode.c \
|
||||||
../apache2/msc_util.c \
|
../apache2/msc_util.c \
|
||||||
../apache2/msc_xml.c \
|
../apache2/msc_xml.c \
|
||||||
../apache2/persist_dbm.c \
|
../apache2/persist_dbm.c \
|
||||||
../apache2/re_actions.c \
|
../apache2/re_actions.c \
|
||||||
../apache2/re.c \
|
../apache2/re.c \
|
||||||
../apache2/re_operators.c \
|
../apache2/re_operators.c \
|
||||||
../apache2/re_tfns.c \
|
../apache2/re_tfns.c \
|
||||||
../apache2/re_variables.c \
|
../apache2/re_variables.c \
|
||||||
api.c \
|
api.c \
|
||||||
buckets.c \
|
buckets.c \
|
||||||
config.c \
|
config.c \
|
||||||
filters.c \
|
filters.c \
|
||||||
hooks.c \
|
hooks.c \
|
||||||
regex.c \
|
regex.c \
|
||||||
server.c
|
server.c
|
||||||
|
|
||||||
# FIXME: Standalone does not mean that it will be a nginx build.
|
# FIXME: Standalone does not mean that it will be a nginx build.
|
||||||
standalone_la_CFLAGS = -DVERSION_NGINX \
|
standalone_la_CFLAGS = -DVERSION_NGINX \
|
||||||
@APR_CFLAGS@ \
|
@APR_CFLAGS@ \
|
||||||
@APU_CFLAGS@ \
|
@APU_CFLAGS@ \
|
||||||
@APXS_CFLAGS@ \
|
@APXS_CFLAGS@ \
|
||||||
@CURL_CFLAGS@ \
|
@CURL_CFLAGS@ \
|
||||||
@LIBXML2_CFLAGS@ \
|
@LIBXML2_CFLAGS@ \
|
||||||
@LUA_CFLAGS@ \
|
@LUA_CFLAGS@ \
|
||||||
@MODSEC_EXTRA_CFLAGS@ \
|
@MODSEC_EXTRA_CFLAGS@ \
|
||||||
@PCRE_CFLAGS@ \
|
@PCRE_CFLAGS@ \
|
||||||
@YAJL_CFLAGS@ \
|
@YAJL_CFLAGS@ \
|
||||||
@SSDEEP_CFLAGS@
|
@SSDEEP_CFLAGS@
|
||||||
|
|
||||||
standalone_la_CPPFLAGS = @APR_CPPFLAGS@ \
|
standalone_la_CPPFLAGS = @APR_CPPFLAGS@ \
|
||||||
@LIBXML2_CPPFLAGS@ \
|
@LIBXML2_CPPFLAGS@ \
|
||||||
@PCRE_CPPFLAGS@
|
@PCRE_CPPFLAGS@
|
||||||
|
|
||||||
standalone_la_LIBADD = @APR_LDADD@ \
|
standalone_la_LIBADD = @APR_LDADD@ \
|
||||||
@APU_LDADD@ \
|
@APU_LDADD@ \
|
||||||
@LIBXML2_LDADD@ \
|
@LIBXML2_LDADD@ \
|
||||||
@LUA_LDADD@ \
|
@LUA_LDADD@ \
|
||||||
@PCRE_LDADD@ \
|
@PCRE_LDADD@ \
|
||||||
@YAJL_LDADD@ \
|
@YAJL_LDADD@ \
|
||||||
@SSDEEP_CFLAGS@
|
@SSDEEP_CFLAGS@
|
||||||
|
|
||||||
if AIX
|
if AIX
|
||||||
standalone_la_LDFLAGS = -module -avoid-version \
|
standalone_la_LDFLAGS = -module -avoid-version \
|
||||||
@APR_LDFLAGS@ \
|
@APR_LDFLAGS@ \
|
||||||
@APU_LDFLAGS@ \
|
@APU_LDFLAGS@ \
|
||||||
@APXS_LDFLAGS@ \
|
@APXS_LDFLAGS@ \
|
||||||
@LIBXML2_LDFLAGS@ \
|
@LIBXML2_LDFLAGS@ \
|
||||||
@LUA_LDFLAGS@ \
|
@LUA_LDFLAGS@ \
|
||||||
@PCRE_LDFLAGS@ \
|
@PCRE_LDFLAGS@ \
|
||||||
@YAJL_LDFLAGS@ \
|
@YAJL_LDFLAGS@ \
|
||||||
@SSDEEP_LDFLAGS@
|
@SSDEEP_LDFLAGS@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if HPUX
|
if HPUX
|
||||||
standalone_la_LDFLAGS = -module -avoid-version \
|
standalone_la_LDFLAGS = -module -avoid-version \
|
||||||
@APR_LDFLAGS@ \
|
@APR_LDFLAGS@ \
|
||||||
@APU_LDFLAGS@ \
|
@APU_LDFLAGS@ \
|
||||||
@APXS_LDFLAGS@ \
|
@APXS_LDFLAGS@ \
|
||||||
@LIBXML2_LDFLAGS@ \
|
@LIBXML2_LDFLAGS@ \
|
||||||
@LUA_LDFLAGS@ \
|
@LUA_LDFLAGS@ \
|
||||||
@PCRE_LDFLAGS@ \
|
@PCRE_LDFLAGS@ \
|
||||||
@YAJL_LDFLAGS@ \
|
@YAJL_LDFLAGS@ \
|
||||||
@SSDEEP_LDFLAGS@
|
@SSDEEP_LDFLAGS@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if MACOSX
|
if MACOSX
|
||||||
standalone_la_LDFLAGS = -module -avoid-version \
|
standalone_la_LDFLAGS = -module -avoid-version \
|
||||||
@APR_LDFLAGS@ \
|
@APR_LDFLAGS@ \
|
||||||
@APU_LDFLAGS@ \
|
@APU_LDFLAGS@ \
|
||||||
@APXS_LDFLAGS@ \
|
@APXS_LDFLAGS@ \
|
||||||
@LIBXML2_LDFLAGS@ \
|
@LIBXML2_LDFLAGS@ \
|
||||||
@LUA_LDFLAGS@ \
|
@LUA_LDFLAGS@ \
|
||||||
@PCRE_LDFLAGS@ \
|
@PCRE_LDFLAGS@ \
|
||||||
@YAJL_LDFLAGS@ \
|
@YAJL_LDFLAGS@ \
|
||||||
@SSDEEP_LDFLAGS@
|
@SSDEEP_LDFLAGS@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if SOLARIS
|
if SOLARIS
|
||||||
standalone_la_LDFLAGS = -module -avoid-version \
|
standalone_la_LDFLAGS = -module -avoid-version \
|
||||||
@APR_LDFLAGS@ \
|
@APR_LDFLAGS@ \
|
||||||
@APU_LDFLAGS@ \
|
@APU_LDFLAGS@ \
|
||||||
@APXS_LDFLAGS@ \
|
@APXS_LDFLAGS@ \
|
||||||
@LIBXML2_LDFLAGS@ \
|
@LIBXML2_LDFLAGS@ \
|
||||||
@LUA_LDFLAGS@ \
|
@LUA_LDFLAGS@ \
|
||||||
@PCRE_LDFLAGS@ \
|
@PCRE_LDFLAGS@ \
|
||||||
@YAJL_LDFLAGS@ \
|
@YAJL_LDFLAGS@ \
|
||||||
@SSDEEP_LDFLAGS@
|
@SSDEEP_LDFLAGS@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if LINUX
|
if LINUX
|
||||||
standalone_la_LDFLAGS = -no-undefined -module -avoid-version \
|
standalone_la_LDFLAGS = -no-undefined -module -avoid-version \
|
||||||
@APR_LDFLAGS@ \
|
@APR_LDFLAGS@ \
|
||||||
@APU_LDFLAGS@ \
|
@APU_LDFLAGS@ \
|
||||||
@APXS_LDFLAGS@ \
|
@APXS_LDFLAGS@ \
|
||||||
@LIBXML2_LDFLAGS@ \
|
@LIBXML2_LDFLAGS@ \
|
||||||
@LUA_LDFLAGS@ \
|
@LUA_LDFLAGS@ \
|
||||||
@PCRE_LDFLAGS@ \
|
@PCRE_LDFLAGS@ \
|
||||||
@YAJL_LDFLAGS@ \
|
@YAJL_LDFLAGS@ \
|
||||||
@SSDEEP_LDFLAGS@
|
@SSDEEP_LDFLAGS@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if FREEBSD
|
if FREEBSD
|
||||||
standalone_la_LDFLAGS = -no-undefined -module -avoid-version \
|
standalone_la_LDFLAGS = -no-undefined -module -avoid-version \
|
||||||
@APR_LDFLAGS@ \
|
@APR_LDFLAGS@ \
|
||||||
@APU_LDFLAGS@ \
|
@APU_LDFLAGS@ \
|
||||||
@APXS_LDFLAGS@ \
|
@APXS_LDFLAGS@ \
|
||||||
@LIBXML2_LDFLAGS@ \
|
@LIBXML2_LDFLAGS@ \
|
||||||
@LUA_LDFLAGS@ \
|
@LUA_LDFLAGS@ \
|
||||||
@PCRE_LDFLAGS@ \
|
@PCRE_LDFLAGS@ \
|
||||||
@YAJL_LDFLAGS@ \
|
@YAJL_LDFLAGS@ \
|
||||||
@SSDEEP_LDFLAGS@
|
@SSDEEP_LDFLAGS@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if OPENBSD
|
if OPENBSD
|
||||||
standalone_la_LDFLAGS = -no-undefined -module -avoid-version \
|
standalone_la_LDFLAGS = -no-undefined -module -avoid-version \
|
||||||
@APR_LDFLAGS@ \
|
@APR_LDFLAGS@ \
|
||||||
@APU_LDFLAGS@ \
|
@APU_LDFLAGS@ \
|
||||||
@APXS_LDFLAGS@ \
|
@APXS_LDFLAGS@ \
|
||||||
@LIBXML2_LDFLAGS@ \
|
@LIBXML2_LDFLAGS@ \
|
||||||
@LUA_LDFLAGS@ \
|
@LUA_LDFLAGS@ \
|
||||||
@PCRE_LDFLAGS@ \
|
@PCRE_LDFLAGS@ \
|
||||||
@YAJL_LDFLAGS@ \
|
@YAJL_LDFLAGS@ \
|
||||||
@SSDEEP_LDFLAGS@
|
@SSDEEP_LDFLAGS@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if NETBSD
|
if NETBSD
|
||||||
standalone_la_LDFLAGS = -no-undefined -module -avoid-version \
|
standalone_la_LDFLAGS = -no-undefined -module -avoid-version \
|
||||||
@APR_LDFLAGS@ \
|
@APR_LDFLAGS@ \
|
||||||
@APU_LDFLAGS@ \
|
@APU_LDFLAGS@ \
|
||||||
@APXS_LDFLAGS@ \
|
@APXS_LDFLAGS@ \
|
||||||
@LIBXML2_LDFLAGS@ \
|
@LIBXML2_LDFLAGS@ \
|
||||||
@LUA_LDFLAGS@ \
|
@LUA_LDFLAGS@ \
|
||||||
@PCRE_LDFLAGS@ \
|
@PCRE_LDFLAGS@ \
|
||||||
@YAJL_LDFLAGS@ \
|
@YAJL_LDFLAGS@ \
|
||||||
@SSDEEP_LDFLAGS@
|
@SSDEEP_LDFLAGS@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
254
standalone/api.h
254
standalone/api.h
@@ -1,129 +1,129 @@
|
|||||||
/*
|
/*
|
||||||
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
||||||
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
||||||
*
|
*
|
||||||
* You may not use this file except in compliance with
|
* You may not use this file except in compliance with
|
||||||
* the License. You may obtain a copy of the License at
|
* the License. You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* If any of the files related to licensing are missing or if you have any
|
* If any of the files related to licensing are missing or if you have any
|
||||||
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
||||||
* directly using the email address security@modsecurity.org.
|
* directly using the email address security@modsecurity.org.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
#include "http_core.h"
|
#include "http_core.h"
|
||||||
#include "http_request.h"
|
#include "http_request.h"
|
||||||
|
|
||||||
#include "modsecurity.h"
|
#include "modsecurity.h"
|
||||||
#include "apache2.h"
|
#include "apache2.h"
|
||||||
#include "http_main.h"
|
#include "http_main.h"
|
||||||
#include "http_connection.h"
|
#include "http_connection.h"
|
||||||
|
|
||||||
#include "apr_optional.h"
|
#include "apr_optional.h"
|
||||||
#include "mod_log_config.h"
|
#include "mod_log_config.h"
|
||||||
|
|
||||||
#include "msc_logging.h"
|
#include "msc_logging.h"
|
||||||
#include "msc_util.h"
|
#include "msc_util.h"
|
||||||
|
|
||||||
#include "ap_mpm.h"
|
#include "ap_mpm.h"
|
||||||
#include "scoreboard.h"
|
#include "scoreboard.h"
|
||||||
|
|
||||||
#include "apr_version.h"
|
#include "apr_version.h"
|
||||||
|
|
||||||
#include "apr_lib.h"
|
#include "apr_lib.h"
|
||||||
#include "ap_config.h"
|
#include "ap_config.h"
|
||||||
#include "http_config.h"
|
#include "http_config.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
server_rec *modsecInit();
|
server_rec *modsecInit();
|
||||||
void modsecTerminate();
|
void modsecTerminate();
|
||||||
|
|
||||||
void modsecStartConfig();
|
void modsecStartConfig();
|
||||||
directory_config *modsecGetDefaultConfig();
|
directory_config *modsecGetDefaultConfig();
|
||||||
const char *modsecProcessConfig(directory_config *config, const char *file, const char *dir);
|
const char *modsecProcessConfig(directory_config *config, const char *file, const char *dir);
|
||||||
void modsecFinalizeConfig();
|
void modsecFinalizeConfig();
|
||||||
|
|
||||||
void modsecInitProcess();
|
void modsecInitProcess();
|
||||||
|
|
||||||
conn_rec *modsecNewConnection();
|
conn_rec *modsecNewConnection();
|
||||||
void modsecProcessConnection(conn_rec *c);
|
void modsecProcessConnection(conn_rec *c);
|
||||||
int modsecFinishConnection(conn_rec *c);
|
int modsecFinishConnection(conn_rec *c);
|
||||||
|
|
||||||
request_rec *modsecNewRequest(conn_rec *connection, directory_config *config);
|
request_rec *modsecNewRequest(conn_rec *connection, directory_config *config);
|
||||||
|
|
||||||
int modsecProcessRequestBody(request_rec *r);
|
int modsecProcessRequestBody(request_rec *r);
|
||||||
int modsecProcessRequestHeaders(request_rec *r);
|
int modsecProcessRequestHeaders(request_rec *r);
|
||||||
|
|
||||||
static inline int modsecProcessRequest(request_rec *r) {
|
static inline int modsecProcessRequest(request_rec *r) {
|
||||||
int status;
|
int status;
|
||||||
status = modsecProcessRequestHeaders(r);
|
status = modsecProcessRequestHeaders(r);
|
||||||
if (status != DECLINED) {
|
if (status != DECLINED) {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
return modsecProcessRequestBody(r);
|
return modsecProcessRequestBody(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int modsecProcessResponse(request_rec *r);
|
int modsecProcessResponse(request_rec *r);
|
||||||
int modsecFinishRequest(request_rec *r);
|
int modsecFinishRequest(request_rec *r);
|
||||||
|
|
||||||
void modsecSetLogHook(void *obj, void (*hook)(void *obj, int level, char *str));
|
void modsecSetLogHook(void *obj, void (*hook)(void *obj, int level, char *str));
|
||||||
|
|
||||||
#define NOTE_MSR_BRIGADE_REQUEST "modsecurity-brigade-request"
|
#define NOTE_MSR_BRIGADE_REQUEST "modsecurity-brigade-request"
|
||||||
#define NOTE_MSR_BRIGADE_RESPONSE "modsecurity-brigade-response"
|
#define NOTE_MSR_BRIGADE_RESPONSE "modsecurity-brigade-response"
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
modsecSetBodyBrigade(request_rec *r, apr_bucket_brigade *b) {
|
modsecSetBodyBrigade(request_rec *r, apr_bucket_brigade *b) {
|
||||||
apr_table_setn(r->notes, NOTE_MSR_BRIGADE_REQUEST, (char *)b);
|
apr_table_setn(r->notes, NOTE_MSR_BRIGADE_REQUEST, (char *)b);
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline apr_bucket_brigade *
|
static inline apr_bucket_brigade *
|
||||||
modsecGetBodyBrigade(request_rec *r) {
|
modsecGetBodyBrigade(request_rec *r) {
|
||||||
return (apr_bucket_brigade *)apr_table_get(r->notes, NOTE_MSR_BRIGADE_REQUEST);
|
return (apr_bucket_brigade *)apr_table_get(r->notes, NOTE_MSR_BRIGADE_REQUEST);
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
modsecSetResponseBrigade(request_rec *r, apr_bucket_brigade *b) {
|
modsecSetResponseBrigade(request_rec *r, apr_bucket_brigade *b) {
|
||||||
apr_table_setn(r->notes, NOTE_MSR_BRIGADE_RESPONSE, (char *)b);
|
apr_table_setn(r->notes, NOTE_MSR_BRIGADE_RESPONSE, (char *)b);
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline apr_bucket_brigade *
|
static inline apr_bucket_brigade *
|
||||||
modsecGetResponseBrigade(request_rec *r) {
|
modsecGetResponseBrigade(request_rec *r) {
|
||||||
return (apr_bucket_brigade *)apr_table_get(r->notes, NOTE_MSR_BRIGADE_RESPONSE);
|
return (apr_bucket_brigade *)apr_table_get(r->notes, NOTE_MSR_BRIGADE_RESPONSE);
|
||||||
};
|
};
|
||||||
|
|
||||||
void modsecSetReadBody(apr_status_t (*func)(request_rec *r, char *buf, unsigned int length, unsigned int *readcnt, int *is_eos));
|
void modsecSetReadBody(apr_status_t (*func)(request_rec *r, char *buf, unsigned int length, unsigned int *readcnt, int *is_eos));
|
||||||
void modsecSetReadResponse(apr_status_t (*func)(request_rec *r, char *buf, unsigned int length, unsigned int *readcnt, int *is_eos));
|
void modsecSetReadResponse(apr_status_t (*func)(request_rec *r, char *buf, unsigned int length, unsigned int *readcnt, int *is_eos));
|
||||||
void modsecSetWriteBody(apr_status_t (*func)(request_rec *r, char *buf, unsigned int length));
|
void modsecSetWriteBody(apr_status_t (*func)(request_rec *r, char *buf, unsigned int length));
|
||||||
void modsecSetWriteResponse(apr_status_t (*func)(request_rec *r, char *buf, unsigned int length));
|
void modsecSetWriteResponse(apr_status_t (*func)(request_rec *r, char *buf, unsigned int length));
|
||||||
void modsecSetDropAction(int (*func)(request_rec *r));
|
void modsecSetDropAction(int (*func)(request_rec *r));
|
||||||
|
|
||||||
int modsecIsResponseBodyAccessEnabled(request_rec *r);
|
int modsecIsResponseBodyAccessEnabled(request_rec *r);
|
||||||
int modsecIsRequestBodyAccessEnabled(request_rec *r);
|
int modsecIsRequestBodyAccessEnabled(request_rec *r);
|
||||||
|
|
||||||
int modsecContextState(request_rec *r);
|
int modsecContextState(request_rec *r);
|
||||||
|
|
||||||
void modsecSetConfigForIISRequestBody(request_rec *r);
|
void modsecSetConfigForIISRequestBody(request_rec *r);
|
||||||
|
|
||||||
const char *modsecIsServerSignatureAvailale(void);
|
const char *modsecIsServerSignatureAvailale(void);
|
||||||
|
|
||||||
#ifdef VERSION_IIS
|
#ifdef VERSION_IIS
|
||||||
void modsecStatusEngineCall(void);
|
void modsecStatusEngineCall(void);
|
||||||
void modsecReportRemoteLoadedRules(void);
|
void modsecReportRemoteLoadedRules(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,184 +1,184 @@
|
|||||||
/*
|
/*
|
||||||
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
||||||
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
||||||
*
|
*
|
||||||
* You may not use this file except in compliance with
|
* You may not use this file except in compliance with
|
||||||
* the License. You may obtain a copy of the License at
|
* the License. You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* If any of the files related to licensing are missing or if you have any
|
* If any of the files related to licensing are missing or if you have any
|
||||||
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
||||||
* directly using the email address security@modsecurity.org.
|
* directly using the email address security@modsecurity.org.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
#include "http_core.h"
|
#include "http_core.h"
|
||||||
#include "http_request.h"
|
#include "http_request.h"
|
||||||
|
|
||||||
#include "modsecurity.h"
|
#include "modsecurity.h"
|
||||||
#include "apache2.h"
|
#include "apache2.h"
|
||||||
#include "http_main.h"
|
#include "http_main.h"
|
||||||
#include "http_connection.h"
|
#include "http_connection.h"
|
||||||
|
|
||||||
#include "apr_optional.h"
|
#include "apr_optional.h"
|
||||||
#include "mod_log_config.h"
|
#include "mod_log_config.h"
|
||||||
|
|
||||||
#include "msc_logging.h"
|
#include "msc_logging.h"
|
||||||
#include "msc_util.h"
|
#include "msc_util.h"
|
||||||
|
|
||||||
#include "ap_mpm.h"
|
#include "ap_mpm.h"
|
||||||
#include "scoreboard.h"
|
#include "scoreboard.h"
|
||||||
|
|
||||||
#include "apr_version.h"
|
#include "apr_version.h"
|
||||||
|
|
||||||
#include "apr_lib.h"
|
#include "apr_lib.h"
|
||||||
#include "ap_config.h"
|
#include "ap_config.h"
|
||||||
#include "http_config.h"
|
#include "http_config.h"
|
||||||
#include "apr_buckets.h"
|
#include "apr_buckets.h"
|
||||||
|
|
||||||
|
|
||||||
AP_DECLARE(apr_status_t) ap_get_brigade(ap_filter_t *next,
|
AP_DECLARE(apr_status_t) ap_get_brigade(ap_filter_t *next,
|
||||||
apr_bucket_brigade *bb,
|
apr_bucket_brigade *bb,
|
||||||
ap_input_mode_t mode,
|
ap_input_mode_t mode,
|
||||||
apr_read_type_e block,
|
apr_read_type_e block,
|
||||||
apr_off_t readbytes)
|
apr_off_t readbytes)
|
||||||
{
|
{
|
||||||
if (next) {
|
if (next) {
|
||||||
return next->frec->filter_func.in_func(next, bb, mode, block,
|
return next->frec->filter_func.in_func(next, bb, mode, block,
|
||||||
readbytes);
|
readbytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
return AP_NOBODY_READ;
|
return AP_NOBODY_READ;
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE(apr_status_t) ap_pass_brigade(ap_filter_t *next,
|
AP_DECLARE(apr_status_t) ap_pass_brigade(ap_filter_t *next,
|
||||||
apr_bucket_brigade *bb)
|
apr_bucket_brigade *bb)
|
||||||
{
|
{
|
||||||
if (next) {
|
if (next) {
|
||||||
apr_bucket *e;
|
apr_bucket *e;
|
||||||
if ((e = APR_BRIGADE_LAST(bb)) && APR_BUCKET_IS_EOS(e) && next->r) {
|
if ((e = APR_BRIGADE_LAST(bb)) && APR_BUCKET_IS_EOS(e) && next->r) {
|
||||||
/* This is only safe because HTTP_HEADER filter is always in
|
/* This is only safe because HTTP_HEADER filter is always in
|
||||||
* the filter stack. This ensures that there is ALWAYS a
|
* the filter stack. This ensures that there is ALWAYS a
|
||||||
* request-based filter that we can attach this to. If the
|
* request-based filter that we can attach this to. If the
|
||||||
* HTTP_FILTER is removed, and another filter is not put in its
|
* HTTP_FILTER is removed, and another filter is not put in its
|
||||||
* place, then handlers like mod_cgi, which attach their own
|
* place, then handlers like mod_cgi, which attach their own
|
||||||
* EOS bucket to the brigade will be broken, because we will
|
* EOS bucket to the brigade will be broken, because we will
|
||||||
* get two EOS buckets on the same request.
|
* get two EOS buckets on the same request.
|
||||||
*/
|
*/
|
||||||
next->r->eos_sent = 1;
|
next->r->eos_sent = 1;
|
||||||
|
|
||||||
/* remember the eos for internal redirects, too */
|
/* remember the eos for internal redirects, too */
|
||||||
if (next->r->prev) {
|
if (next->r->prev) {
|
||||||
request_rec *prev = next->r->prev;
|
request_rec *prev = next->r->prev;
|
||||||
|
|
||||||
while (prev) {
|
while (prev) {
|
||||||
prev->eos_sent = 1;
|
prev->eos_sent = 1;
|
||||||
prev = prev->prev;
|
prev = prev->prev;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return next->frec->filter_func.out_func(next, bb);
|
return next->frec->filter_func.out_func(next, bb);
|
||||||
}
|
}
|
||||||
return AP_NOBODY_WROTE;
|
return AP_NOBODY_WROTE;
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE(apr_status_t) ap_save_brigade(ap_filter_t *f,
|
AP_DECLARE(apr_status_t) ap_save_brigade(ap_filter_t *f,
|
||||||
apr_bucket_brigade **saveto,
|
apr_bucket_brigade **saveto,
|
||||||
apr_bucket_brigade **b, apr_pool_t *p)
|
apr_bucket_brigade **b, apr_pool_t *p)
|
||||||
{
|
{
|
||||||
apr_bucket *e;
|
apr_bucket *e;
|
||||||
apr_status_t rv, srv = APR_SUCCESS;
|
apr_status_t rv, srv = APR_SUCCESS;
|
||||||
|
|
||||||
/* If have never stored any data in the filter, then we had better
|
/* If have never stored any data in the filter, then we had better
|
||||||
* create an empty bucket brigade so that we can concat.
|
* create an empty bucket brigade so that we can concat.
|
||||||
*/
|
*/
|
||||||
if (!(*saveto)) {
|
if (!(*saveto)) {
|
||||||
*saveto = apr_brigade_create(p, f->c->bucket_alloc);
|
*saveto = apr_brigade_create(p, f->c->bucket_alloc);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (e = APR_BRIGADE_FIRST(*b);
|
for (e = APR_BRIGADE_FIRST(*b);
|
||||||
e != APR_BRIGADE_SENTINEL(*b);
|
e != APR_BRIGADE_SENTINEL(*b);
|
||||||
e = APR_BUCKET_NEXT(e))
|
e = APR_BUCKET_NEXT(e))
|
||||||
{
|
{
|
||||||
rv = apr_bucket_setaside(e, p);
|
rv = apr_bucket_setaside(e, p);
|
||||||
|
|
||||||
/* If the bucket type does not implement setaside, then
|
/* If the bucket type does not implement setaside, then
|
||||||
* (hopefully) morph it into a bucket type which does, and set
|
* (hopefully) morph it into a bucket type which does, and set
|
||||||
* *that* aside... */
|
* *that* aside... */
|
||||||
if (rv == APR_ENOTIMPL) {
|
if (rv == APR_ENOTIMPL) {
|
||||||
const char *s;
|
const char *s;
|
||||||
apr_size_t n;
|
apr_size_t n;
|
||||||
|
|
||||||
rv = apr_bucket_read(e, &s, &n, APR_BLOCK_READ);
|
rv = apr_bucket_read(e, &s, &n, APR_BLOCK_READ);
|
||||||
if (rv == APR_SUCCESS) {
|
if (rv == APR_SUCCESS) {
|
||||||
rv = apr_bucket_setaside(e, p);
|
rv = apr_bucket_setaside(e, p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rv != APR_SUCCESS) {
|
if (rv != APR_SUCCESS) {
|
||||||
srv = rv;
|
srv = rv;
|
||||||
/* Return an error but still save the brigade if
|
/* Return an error but still save the brigade if
|
||||||
* ->setaside() is really not implemented. */
|
* ->setaside() is really not implemented. */
|
||||||
if (rv != APR_ENOTIMPL) {
|
if (rv != APR_ENOTIMPL) {
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
APR_BRIGADE_CONCAT(*saveto, *b);
|
APR_BRIGADE_CONCAT(*saveto, *b);
|
||||||
return srv;
|
return srv;
|
||||||
}
|
}
|
||||||
|
|
||||||
static apr_status_t error_bucket_read(apr_bucket *b, const char **str,
|
static apr_status_t error_bucket_read(apr_bucket *b, const char **str,
|
||||||
apr_size_t *len, apr_read_type_e block)
|
apr_size_t *len, apr_read_type_e block)
|
||||||
{
|
{
|
||||||
*str = "Unknown error.";
|
*str = "Unknown error.";
|
||||||
*len = strlen(*str);
|
*len = strlen(*str);
|
||||||
return APR_SUCCESS;
|
return APR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void error_bucket_destroy(void *data)
|
static void error_bucket_destroy(void *data)
|
||||||
{
|
{
|
||||||
ap_bucket_error *h = data;
|
ap_bucket_error *h = data;
|
||||||
|
|
||||||
if (apr_bucket_shared_destroy(h)) {
|
if (apr_bucket_shared_destroy(h)) {
|
||||||
apr_bucket_free(h);
|
apr_bucket_free(h);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE_DATA const apr_bucket_type_t ap_bucket_type_error = {
|
AP_DECLARE_DATA const apr_bucket_type_t ap_bucket_type_error = {
|
||||||
"ERROR", 5, APR_BUCKET_METADATA,
|
"ERROR", 5, APR_BUCKET_METADATA,
|
||||||
error_bucket_destroy,
|
error_bucket_destroy,
|
||||||
error_bucket_read,
|
error_bucket_read,
|
||||||
apr_bucket_setaside_notimpl,
|
apr_bucket_setaside_notimpl,
|
||||||
apr_bucket_split_notimpl,
|
apr_bucket_split_notimpl,
|
||||||
apr_bucket_shared_copy
|
apr_bucket_shared_copy
|
||||||
};
|
};
|
||||||
|
|
||||||
AP_DECLARE(apr_bucket *) ap_bucket_error_make(apr_bucket *b, int error,
|
AP_DECLARE(apr_bucket *) ap_bucket_error_make(apr_bucket *b, int error,
|
||||||
const char *buf, apr_pool_t *p)
|
const char *buf, apr_pool_t *p)
|
||||||
{
|
{
|
||||||
ap_bucket_error *h;
|
ap_bucket_error *h;
|
||||||
|
|
||||||
h = apr_bucket_alloc(sizeof(*h), b->list);
|
h = apr_bucket_alloc(sizeof(*h), b->list);
|
||||||
h->status = error;
|
h->status = error;
|
||||||
h->data = (buf) ? apr_pstrdup(p, buf) : NULL;
|
h->data = (buf) ? apr_pstrdup(p, buf) : NULL;
|
||||||
|
|
||||||
b = apr_bucket_shared_make(b, h, 0, 0);
|
b = apr_bucket_shared_make(b, h, 0, 0);
|
||||||
b->type = &ap_bucket_type_error;
|
b->type = &ap_bucket_type_error;
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE(apr_bucket *) ap_bucket_error_create(int error, const char *buf,
|
AP_DECLARE(apr_bucket *) ap_bucket_error_create(int error, const char *buf,
|
||||||
apr_pool_t *p,
|
apr_pool_t *p,
|
||||||
apr_bucket_alloc_t *list)
|
apr_bucket_alloc_t *list)
|
||||||
{
|
{
|
||||||
apr_bucket *b = apr_bucket_alloc(sizeof(*b), list);
|
apr_bucket *b = apr_bucket_alloc(sizeof(*b), list);
|
||||||
|
|
||||||
APR_BUCKET_INIT(b);
|
APR_BUCKET_INIT(b);
|
||||||
b->free = apr_bucket_free;
|
b->free = apr_bucket_free;
|
||||||
b->list = list;
|
b->list = list;
|
||||||
return ap_bucket_error_make(b, error, buf, p);
|
return ap_bucket_error_make(b, error, buf, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,248 +1,248 @@
|
|||||||
/*
|
/*
|
||||||
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
||||||
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
||||||
*
|
*
|
||||||
* You may not use this file except in compliance with
|
* You may not use this file except in compliance with
|
||||||
* the License. You may obtain a copy of the License at
|
* the License. You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* If any of the files related to licensing are missing or if you have any
|
* If any of the files related to licensing are missing or if you have any
|
||||||
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
||||||
* directly using the email address security@modsecurity.org.
|
* directly using the email address security@modsecurity.org.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
#include "http_core.h"
|
#include "http_core.h"
|
||||||
#include "http_request.h"
|
#include "http_request.h"
|
||||||
|
|
||||||
#include "modsecurity.h"
|
#include "modsecurity.h"
|
||||||
#include "apache2.h"
|
#include "apache2.h"
|
||||||
#include "http_main.h"
|
#include "http_main.h"
|
||||||
#include "http_connection.h"
|
#include "http_connection.h"
|
||||||
|
|
||||||
#include "apr_optional.h"
|
#include "apr_optional.h"
|
||||||
#include "mod_log_config.h"
|
#include "mod_log_config.h"
|
||||||
|
|
||||||
#include "msc_logging.h"
|
#include "msc_logging.h"
|
||||||
#include "msc_util.h"
|
#include "msc_util.h"
|
||||||
|
|
||||||
#include "ap_mpm.h"
|
#include "ap_mpm.h"
|
||||||
#include "scoreboard.h"
|
#include "scoreboard.h"
|
||||||
|
|
||||||
#include "apr_version.h"
|
#include "apr_version.h"
|
||||||
|
|
||||||
#include "apr_lib.h"
|
#include "apr_lib.h"
|
||||||
#include "ap_config.h"
|
#include "ap_config.h"
|
||||||
#include "http_config.h"
|
#include "http_config.h"
|
||||||
|
|
||||||
#define FILTER_POOL apr_hook_global_pool
|
#define FILTER_POOL apr_hook_global_pool
|
||||||
#include "apr_hooks.h"
|
#include "apr_hooks.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** This macro returns true/false if a given filter should be inserted BEFORE
|
** This macro returns true/false if a given filter should be inserted BEFORE
|
||||||
** another filter. This will happen when one of: 1) there isn't another
|
** another filter. This will happen when one of: 1) there isn't another
|
||||||
** filter; 2) that filter has a higher filter type (class); 3) that filter
|
** filter; 2) that filter has a higher filter type (class); 3) that filter
|
||||||
** corresponds to a different request.
|
** corresponds to a different request.
|
||||||
*/
|
*/
|
||||||
#define INSERT_BEFORE(f, before_this) ((before_this) == NULL \
|
#define INSERT_BEFORE(f, before_this) ((before_this) == NULL \
|
||||||
|| (before_this)->frec->ftype > (f)->frec->ftype \
|
|| (before_this)->frec->ftype > (f)->frec->ftype \
|
||||||
|| (before_this)->r != (f)->r)
|
|| (before_this)->r != (f)->r)
|
||||||
|
|
||||||
|
|
||||||
apr_table_t *ms_input_filters = NULL;
|
apr_table_t *ms_input_filters = NULL;
|
||||||
apr_table_t *ms_output_filters = NULL;
|
apr_table_t *ms_output_filters = NULL;
|
||||||
|
|
||||||
void init_filter_tables()
|
void init_filter_tables()
|
||||||
{
|
{
|
||||||
if(ms_input_filters == NULL)
|
if(ms_input_filters == NULL)
|
||||||
{
|
{
|
||||||
ms_input_filters = apr_table_make(FILTER_POOL, 10);
|
ms_input_filters = apr_table_make(FILTER_POOL, 10);
|
||||||
ms_output_filters = apr_table_make(FILTER_POOL, 10);
|
ms_output_filters = apr_table_make(FILTER_POOL, 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE(ap_filter_rec_t *) ap_register_input_filter(const char *name,
|
AP_DECLARE(ap_filter_rec_t *) ap_register_input_filter(const char *name,
|
||||||
ap_in_filter_func filter_func,
|
ap_in_filter_func filter_func,
|
||||||
ap_init_filter_func filter_init,
|
ap_init_filter_func filter_init,
|
||||||
ap_filter_type ftype)
|
ap_filter_type ftype)
|
||||||
{
|
{
|
||||||
ap_filter_rec_t *f;
|
ap_filter_rec_t *f;
|
||||||
|
|
||||||
init_filter_tables();
|
init_filter_tables();
|
||||||
|
|
||||||
f = apr_palloc(FILTER_POOL, sizeof(ap_filter_rec_t));
|
f = apr_palloc(FILTER_POOL, sizeof(ap_filter_rec_t));
|
||||||
|
|
||||||
f->filter_func.in_func = filter_func;
|
f->filter_func.in_func = filter_func;
|
||||||
f->filter_init_func = filter_init;
|
f->filter_init_func = filter_init;
|
||||||
f->ftype = ftype;
|
f->ftype = ftype;
|
||||||
f->name = name;
|
f->name = name;
|
||||||
|
|
||||||
apr_table_setn(ms_input_filters, name, (const char *)f);
|
apr_table_setn(ms_input_filters, name, (const char *)f);
|
||||||
|
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE(ap_filter_rec_t *) ap_register_output_filter(const char *name,
|
AP_DECLARE(ap_filter_rec_t *) ap_register_output_filter(const char *name,
|
||||||
ap_out_filter_func filter_func,
|
ap_out_filter_func filter_func,
|
||||||
ap_init_filter_func filter_init,
|
ap_init_filter_func filter_init,
|
||||||
ap_filter_type ftype)
|
ap_filter_type ftype)
|
||||||
{
|
{
|
||||||
ap_filter_rec_t *f;
|
ap_filter_rec_t *f;
|
||||||
|
|
||||||
init_filter_tables();
|
init_filter_tables();
|
||||||
|
|
||||||
f = apr_palloc(FILTER_POOL, sizeof(ap_filter_rec_t));
|
f = apr_palloc(FILTER_POOL, sizeof(ap_filter_rec_t));
|
||||||
|
|
||||||
f->filter_func.out_func = filter_func;
|
f->filter_func.out_func = filter_func;
|
||||||
f->filter_init_func = filter_init;
|
f->filter_init_func = filter_init;
|
||||||
f->ftype = ftype;
|
f->ftype = ftype;
|
||||||
f->name = name;
|
f->name = name;
|
||||||
|
|
||||||
apr_table_setn(ms_output_filters, name, (const char *)f);
|
apr_table_setn(ms_output_filters, name, (const char *)f);
|
||||||
|
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ap_filter_t *add_any_filter_handle(ap_filter_rec_t *frec, void *ctx,
|
static ap_filter_t *add_any_filter_handle(ap_filter_rec_t *frec, void *ctx,
|
||||||
request_rec *r, conn_rec *c,
|
request_rec *r, conn_rec *c,
|
||||||
ap_filter_t **r_filters,
|
ap_filter_t **r_filters,
|
||||||
ap_filter_t **p_filters,
|
ap_filter_t **p_filters,
|
||||||
ap_filter_t **c_filters)
|
ap_filter_t **c_filters)
|
||||||
{
|
{
|
||||||
apr_pool_t* p = r ? r->pool : c->pool;
|
apr_pool_t* p = r ? r->pool : c->pool;
|
||||||
ap_filter_t *f = apr_palloc(p, sizeof(*f));
|
ap_filter_t *f = apr_palloc(p, sizeof(*f));
|
||||||
ap_filter_t **outf;
|
ap_filter_t **outf;
|
||||||
|
|
||||||
if (frec->ftype < AP_FTYPE_PROTOCOL) {
|
if (frec->ftype < AP_FTYPE_PROTOCOL) {
|
||||||
if (r) {
|
if (r) {
|
||||||
outf = r_filters;
|
outf = r_filters;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL,
|
ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL,
|
||||||
"a content filter was added without a request: %s", frec->name);
|
"a content filter was added without a request: %s", frec->name);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (frec->ftype < AP_FTYPE_CONNECTION) {
|
else if (frec->ftype < AP_FTYPE_CONNECTION) {
|
||||||
if (r) {
|
if (r) {
|
||||||
outf = p_filters;
|
outf = p_filters;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL,
|
ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL,
|
||||||
"a protocol filter was added without a request: %s", frec->name);
|
"a protocol filter was added without a request: %s", frec->name);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
outf = c_filters;
|
outf = c_filters;
|
||||||
}
|
}
|
||||||
|
|
||||||
f->frec = frec;
|
f->frec = frec;
|
||||||
f->ctx = ctx;
|
f->ctx = ctx;
|
||||||
f->r = r;
|
f->r = r;
|
||||||
f->c = c;
|
f->c = c;
|
||||||
f->next = NULL;
|
f->next = NULL;
|
||||||
|
|
||||||
if (INSERT_BEFORE(f, *outf)) {
|
if (INSERT_BEFORE(f, *outf)) {
|
||||||
f->next = *outf;
|
f->next = *outf;
|
||||||
|
|
||||||
if (*outf) {
|
if (*outf) {
|
||||||
ap_filter_t *first = NULL;
|
ap_filter_t *first = NULL;
|
||||||
|
|
||||||
if (r) {
|
if (r) {
|
||||||
/* If we are adding our first non-connection filter,
|
/* If we are adding our first non-connection filter,
|
||||||
* Then don't try to find the right location, it is
|
* Then don't try to find the right location, it is
|
||||||
* automatically first.
|
* automatically first.
|
||||||
*/
|
*/
|
||||||
if (*r_filters != *c_filters) {
|
if (*r_filters != *c_filters) {
|
||||||
first = *r_filters;
|
first = *r_filters;
|
||||||
while (first && (first->next != (*outf))) {
|
while (first && (first->next != (*outf))) {
|
||||||
first = first->next;
|
first = first->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (first && first != (*outf)) {
|
if (first && first != (*outf)) {
|
||||||
first->next = f;
|
first->next = f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*outf = f;
|
*outf = f;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ap_filter_t *fscan = *outf;
|
ap_filter_t *fscan = *outf;
|
||||||
while (!INSERT_BEFORE(f, fscan->next))
|
while (!INSERT_BEFORE(f, fscan->next))
|
||||||
fscan = fscan->next;
|
fscan = fscan->next;
|
||||||
|
|
||||||
f->next = fscan->next;
|
f->next = fscan->next;
|
||||||
fscan->next = f;
|
fscan->next = f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (frec->ftype < AP_FTYPE_CONNECTION && (*r_filters == *c_filters)) {
|
if (frec->ftype < AP_FTYPE_CONNECTION && (*r_filters == *c_filters)) {
|
||||||
*r_filters = *p_filters;
|
*r_filters = *p_filters;
|
||||||
}
|
}
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE(ap_filter_t *) ap_add_input_filter(const char *name, void *ctx,
|
AP_DECLARE(ap_filter_t *) ap_add_input_filter(const char *name, void *ctx,
|
||||||
request_rec *r, conn_rec *c)
|
request_rec *r, conn_rec *c)
|
||||||
{
|
{
|
||||||
ap_filter_rec_t *f = (ap_filter_rec_t *)apr_table_get(ms_input_filters, name);
|
ap_filter_rec_t *f = (ap_filter_rec_t *)apr_table_get(ms_input_filters, name);
|
||||||
|
|
||||||
if(f == NULL)
|
if(f == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return add_any_filter_handle(f, ctx, r, c,
|
return add_any_filter_handle(f, ctx, r, c,
|
||||||
r ? &r->input_filters : NULL,
|
r ? &r->input_filters : NULL,
|
||||||
r ? &r->proto_input_filters : NULL, &c->input_filters);
|
r ? &r->proto_input_filters : NULL, &c->input_filters);
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE(ap_filter_t *) ap_add_output_filter(const char *name, void *ctx,
|
AP_DECLARE(ap_filter_t *) ap_add_output_filter(const char *name, void *ctx,
|
||||||
request_rec *r, conn_rec *c)
|
request_rec *r, conn_rec *c)
|
||||||
{
|
{
|
||||||
ap_filter_rec_t *f = (ap_filter_rec_t *)apr_table_get(ms_output_filters, name);
|
ap_filter_rec_t *f = (ap_filter_rec_t *)apr_table_get(ms_output_filters, name);
|
||||||
|
|
||||||
if(f == NULL)
|
if(f == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return add_any_filter_handle(f, ctx, r, c,
|
return add_any_filter_handle(f, ctx, r, c,
|
||||||
r ? &r->output_filters : NULL,
|
r ? &r->output_filters : NULL,
|
||||||
r ? &r->proto_output_filters : NULL, &c->output_filters);
|
r ? &r->proto_output_filters : NULL, &c->output_filters);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void remove_any_filter(ap_filter_t *f, ap_filter_t **r_filt, ap_filter_t **p_filt,
|
static void remove_any_filter(ap_filter_t *f, ap_filter_t **r_filt, ap_filter_t **p_filt,
|
||||||
ap_filter_t **c_filt)
|
ap_filter_t **c_filt)
|
||||||
{
|
{
|
||||||
ap_filter_t **curr = r_filt ? r_filt : c_filt;
|
ap_filter_t **curr = r_filt ? r_filt : c_filt;
|
||||||
ap_filter_t *fscan = *curr;
|
ap_filter_t *fscan = *curr;
|
||||||
|
|
||||||
if (p_filt && *p_filt == f)
|
if (p_filt && *p_filt == f)
|
||||||
*p_filt = (*p_filt)->next;
|
*p_filt = (*p_filt)->next;
|
||||||
|
|
||||||
if (*curr == f) {
|
if (*curr == f) {
|
||||||
*curr = (*curr)->next;
|
*curr = (*curr)->next;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (fscan->next != f) {
|
while (fscan->next != f) {
|
||||||
if (!(fscan = fscan->next)) {
|
if (!(fscan = fscan->next)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fscan->next = f->next;
|
fscan->next = f->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE(void) ap_remove_input_filter(ap_filter_t *f)
|
AP_DECLARE(void) ap_remove_input_filter(ap_filter_t *f)
|
||||||
{
|
{
|
||||||
remove_any_filter(f, f->r ? &f->r->input_filters : NULL,
|
remove_any_filter(f, f->r ? &f->r->input_filters : NULL,
|
||||||
f->r ? &f->r->proto_input_filters : NULL,
|
f->r ? &f->r->proto_input_filters : NULL,
|
||||||
&f->c->input_filters);
|
&f->c->input_filters);
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE(void) ap_remove_output_filter(ap_filter_t *f)
|
AP_DECLARE(void) ap_remove_output_filter(ap_filter_t *f)
|
||||||
{
|
{
|
||||||
remove_any_filter(f, f->r ? &f->r->output_filters : NULL,
|
remove_any_filter(f, f->r ? &f->r->output_filters : NULL,
|
||||||
f->r ? &f->r->proto_output_filters : NULL,
|
f->r ? &f->r->proto_output_filters : NULL,
|
||||||
&f->c->output_filters);
|
&f->c->output_filters);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,65 +1,65 @@
|
|||||||
/*
|
/*
|
||||||
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
||||||
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
||||||
*
|
*
|
||||||
* You may not use this file except in compliance with
|
* You may not use this file except in compliance with
|
||||||
* the License. You may obtain a copy of the License at
|
* the License. You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* If any of the files related to licensing are missing or if you have any
|
* If any of the files related to licensing are missing or if you have any
|
||||||
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
||||||
* directly using the email address security@modsecurity.org.
|
* directly using the email address security@modsecurity.org.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
#include "http_core.h"
|
#include "http_core.h"
|
||||||
#include "http_request.h"
|
#include "http_request.h"
|
||||||
|
|
||||||
#include "modsecurity.h"
|
#include "modsecurity.h"
|
||||||
#include "apache2.h"
|
#include "apache2.h"
|
||||||
#include "http_main.h"
|
#include "http_main.h"
|
||||||
#include "http_connection.h"
|
#include "http_connection.h"
|
||||||
|
|
||||||
#include "apr_optional.h"
|
#include "apr_optional.h"
|
||||||
#include "mod_log_config.h"
|
#include "mod_log_config.h"
|
||||||
|
|
||||||
#include "msc_logging.h"
|
#include "msc_logging.h"
|
||||||
#include "msc_util.h"
|
#include "msc_util.h"
|
||||||
|
|
||||||
#include "ap_mpm.h"
|
#include "ap_mpm.h"
|
||||||
#include "scoreboard.h"
|
#include "scoreboard.h"
|
||||||
|
|
||||||
#include "apr_version.h"
|
#include "apr_version.h"
|
||||||
|
|
||||||
#include "apr_lib.h"
|
#include "apr_lib.h"
|
||||||
#include "ap_config.h"
|
#include "ap_config.h"
|
||||||
#include "http_config.h"
|
#include "http_config.h"
|
||||||
|
|
||||||
|
|
||||||
#define DECLARE_EXTERNAL_HOOK(ns,link,ret,name,args) \
|
#define DECLARE_EXTERNAL_HOOK(ns,link,ret,name,args) \
|
||||||
ns##_HOOK_##name##_t *hookfn_##name = NULL; \
|
ns##_HOOK_##name##_t *hookfn_##name = NULL; \
|
||||||
link##_DECLARE(void) ns##_hook_##name(ns##_HOOK_##name##_t *pf, \
|
link##_DECLARE(void) ns##_hook_##name(ns##_HOOK_##name##_t *pf, \
|
||||||
const char * const *aszPre, \
|
const char * const *aszPre, \
|
||||||
const char * const *aszSucc, int nOrder) \
|
const char * const *aszSucc, int nOrder) \
|
||||||
{ \
|
{ \
|
||||||
hookfn_##name = pf; \
|
hookfn_##name = pf; \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DECLARE_HOOK(ret,name,args) \
|
#define DECLARE_HOOK(ret,name,args) \
|
||||||
DECLARE_EXTERNAL_HOOK(ap,AP,ret,name,args)
|
DECLARE_EXTERNAL_HOOK(ap,AP,ret,name,args)
|
||||||
|
|
||||||
DECLARE_HOOK(int,pre_config,(apr_pool_t *pconf,apr_pool_t *plog, apr_pool_t *ptemp))
|
DECLARE_HOOK(int,pre_config,(apr_pool_t *pconf,apr_pool_t *plog, apr_pool_t *ptemp))
|
||||||
DECLARE_HOOK(int,post_config,(apr_pool_t *pconf,apr_pool_t *plog, apr_pool_t *ptemp,server_rec *s))
|
DECLARE_HOOK(int,post_config,(apr_pool_t *pconf,apr_pool_t *plog, apr_pool_t *ptemp,server_rec *s))
|
||||||
DECLARE_HOOK(void,child_init,(apr_pool_t *pchild, server_rec *s))
|
DECLARE_HOOK(void,child_init,(apr_pool_t *pchild, server_rec *s))
|
||||||
DECLARE_HOOK(int,process_connection,(conn_rec *c))
|
DECLARE_HOOK(int,process_connection,(conn_rec *c))
|
||||||
DECLARE_HOOK(int,post_read_request,(request_rec *r))
|
DECLARE_HOOK(int,post_read_request,(request_rec *r))
|
||||||
DECLARE_HOOK(int,fixups,(request_rec *r))
|
DECLARE_HOOK(int,fixups,(request_rec *r))
|
||||||
DECLARE_HOOK(void, error_log, (const char *file, int line, int level,
|
DECLARE_HOOK(void, error_log, (const char *file, int line, int level,
|
||||||
apr_status_t status, const server_rec *s,
|
apr_status_t status, const server_rec *s,
|
||||||
const request_rec *r, apr_pool_t *pool,
|
const request_rec *r, apr_pool_t *pool,
|
||||||
const char *errstr))
|
const char *errstr))
|
||||||
DECLARE_HOOK(int,log_transaction,(request_rec *r))
|
DECLARE_HOOK(int,log_transaction,(request_rec *r))
|
||||||
DECLARE_HOOK(void,insert_filter,(request_rec *r))
|
DECLARE_HOOK(void,insert_filter,(request_rec *r))
|
||||||
DECLARE_HOOK(void,insert_error_filter,(request_rec *r))
|
DECLARE_HOOK(void,insert_error_filter,(request_rec *r))
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,434 +1,434 @@
|
|||||||
/*
|
/*
|
||||||
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
||||||
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
||||||
*
|
*
|
||||||
* You may not use this file except in compliance with
|
* You may not use this file except in compliance with
|
||||||
* the License. You may obtain a copy of the License at
|
* the License. You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* If any of the files related to licensing are missing or if you have any
|
* If any of the files related to licensing are missing or if you have any
|
||||||
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
||||||
* directly using the email address security@modsecurity.org.
|
* directly using the email address security@modsecurity.org.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#undef inline
|
//#undef inline
|
||||||
#define inline inline
|
#define inline inline
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <conio.h>
|
#include <conio.h>
|
||||||
#include "api.h"
|
#include "api.h"
|
||||||
|
|
||||||
|
|
||||||
char *config_file = NULL;
|
char *config_file = NULL;
|
||||||
char *url_file = NULL;
|
char *url_file = NULL;
|
||||||
char *event_files[1024];
|
char *event_files[1024];
|
||||||
int event_file_cnt;
|
int event_file_cnt;
|
||||||
char *event_file = NULL;
|
char *event_file = NULL;
|
||||||
int event_file_len = 0;
|
int event_file_len = 0;
|
||||||
char **event_file_lines;
|
char **event_file_lines;
|
||||||
int event_line_cnt = 0;
|
int event_line_cnt = 0;
|
||||||
int event_file_blocks[256];
|
int event_file_blocks[256];
|
||||||
|
|
||||||
#define EVENT_FILE_MAX_SIZE (16*1024*1024)
|
#define EVENT_FILE_MAX_SIZE (16*1024*1024)
|
||||||
|
|
||||||
#define MAX_URLS 4096
|
#define MAX_URLS 4096
|
||||||
|
|
||||||
char urls[MAX_URLS][4096];
|
char urls[MAX_URLS][4096];
|
||||||
int url_cnt = 0;
|
int url_cnt = 0;
|
||||||
|
|
||||||
void readeventfile(char *name)
|
void readeventfile(char *name)
|
||||||
{
|
{
|
||||||
if(event_file == NULL)
|
if(event_file == NULL)
|
||||||
{
|
{
|
||||||
event_file = (char *)malloc(EVENT_FILE_MAX_SIZE);
|
event_file = (char *)malloc(EVENT_FILE_MAX_SIZE);
|
||||||
event_file_lines = (char **)malloc(EVENT_FILE_MAX_SIZE);
|
event_file_lines = (char **)malloc(EVENT_FILE_MAX_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
event_file_len = 0;
|
event_file_len = 0;
|
||||||
event_line_cnt = 0;
|
event_line_cnt = 0;
|
||||||
memset(event_file_blocks, -1, sizeof(int) * 256);
|
memset(event_file_blocks, -1, sizeof(int) * 256);
|
||||||
|
|
||||||
FILE *fr = fopen(name, "rb");
|
FILE *fr = fopen(name, "rb");
|
||||||
|
|
||||||
if(fr == NULL)
|
if(fr == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
event_file_len = fread(event_file, 1, EVENT_FILE_MAX_SIZE - 1, fr);
|
event_file_len = fread(event_file, 1, EVENT_FILE_MAX_SIZE - 1, fr);
|
||||||
|
|
||||||
fclose(fr);
|
fclose(fr);
|
||||||
|
|
||||||
event_file[event_file_len] = 0;
|
event_file[event_file_len] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void parseeventfile()
|
void parseeventfile()
|
||||||
{
|
{
|
||||||
if(event_file_len == 0 || event_file == NULL)
|
if(event_file_len == 0 || event_file == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
char *t = event_file;
|
char *t = event_file;
|
||||||
char *e = event_file + event_file_len;
|
char *e = event_file + event_file_len;
|
||||||
int nocrlf = 1;
|
int nocrlf = 1;
|
||||||
|
|
||||||
while(t < e)
|
while(t < e)
|
||||||
{
|
{
|
||||||
event_file_lines[event_line_cnt++] = t;
|
event_file_lines[event_line_cnt++] = t;
|
||||||
|
|
||||||
while(t < e && *t != 10 && *t != 13)
|
while(t < e && *t != 10 && *t != 13)
|
||||||
t++;
|
t++;
|
||||||
|
|
||||||
char ct = *t;
|
char ct = *t;
|
||||||
*t = 0;
|
*t = 0;
|
||||||
int i = event_line_cnt - 1;
|
int i = event_line_cnt - 1;
|
||||||
|
|
||||||
int l = strlen(event_file_lines[i]);
|
int l = strlen(event_file_lines[i]);
|
||||||
|
|
||||||
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] == '-')
|
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];
|
char blk = event_file_lines[i][l-3];
|
||||||
|
|
||||||
event_file_blocks[blk] = i;
|
event_file_blocks[blk] = i;
|
||||||
|
|
||||||
if(blk == 'C' || blk == 'G')
|
if(blk == 'C' || blk == 'G')
|
||||||
{
|
{
|
||||||
nocrlf = 0;
|
nocrlf = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
nocrlf = 1;
|
nocrlf = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*t = ct;
|
*t = ct;
|
||||||
|
|
||||||
if(nocrlf)
|
if(nocrlf)
|
||||||
while(t < e && (*t == 10 || *t == 13))
|
while(t < e && (*t == 10 || *t == 13))
|
||||||
*t++ = 0;
|
*t++ = 0;
|
||||||
else
|
else
|
||||||
while(t < e && (*t == 10 || *t == 13))
|
while(t < e && (*t == 10 || *t == 13))
|
||||||
t++;
|
t++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void parseargs(int argc, char *argv[])
|
void parseargs(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int i = 1;
|
int i = 1;
|
||||||
|
|
||||||
event_file_cnt = 0;
|
event_file_cnt = 0;
|
||||||
|
|
||||||
while(i < argc)
|
while(i < argc)
|
||||||
{
|
{
|
||||||
if(argv[i][0] == '-')
|
if(argv[i][0] == '-')
|
||||||
{
|
{
|
||||||
if(argv[i][1] == 'c' && i < argc - 1)
|
if(argv[i][1] == 'c' && i < argc - 1)
|
||||||
{
|
{
|
||||||
config_file = argv[i + 1];
|
config_file = argv[i + 1];
|
||||||
i += 2;
|
i += 2;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(argv[i][1] == 'u' && i < argc - 1)
|
if(argv[i][1] == 'u' && i < argc - 1)
|
||||||
{
|
{
|
||||||
url_file = argv[i + 1];
|
url_file = argv[i + 1];
|
||||||
i += 2;
|
i += 2;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(event_file_cnt == 1024)
|
if(event_file_cnt == 1024)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Too many input files! (limit 1024)\n");
|
fprintf(stderr, "Too many input files! (limit 1024)\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
event_files[event_file_cnt++] = argv[i++];
|
event_files[event_file_cnt++] = argv[i++];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void log(void *obj, int level, char *str)
|
void log(void *obj, int level, char *str)
|
||||||
{
|
{
|
||||||
printf("%s\n", str);
|
printf("%s\n", str);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int bodypos = 0;
|
unsigned int bodypos = 0;
|
||||||
|
|
||||||
apr_status_t readbody(request_rec *r, char *buf, unsigned int length, unsigned int *readcnt, int *is_eos)
|
apr_status_t readbody(request_rec *r, char *buf, unsigned int length, unsigned int *readcnt, int *is_eos)
|
||||||
{
|
{
|
||||||
int j = event_file_blocks['C'];
|
int j = event_file_blocks['C'];
|
||||||
|
|
||||||
if(j < 0)
|
if(j < 0)
|
||||||
{
|
{
|
||||||
*is_eos = 1;
|
*is_eos = 1;
|
||||||
return APR_SUCCESS;
|
return APR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
j++;
|
j++;
|
||||||
|
|
||||||
if(event_file_lines[j][0] == 0)
|
if(event_file_lines[j][0] == 0)
|
||||||
{
|
{
|
||||||
*is_eos = 1;
|
*is_eos = 1;
|
||||||
return APR_SUCCESS;
|
return APR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int l = strlen(event_file_lines[j]);
|
unsigned int l = strlen(event_file_lines[j]);
|
||||||
unsigned int size = length;
|
unsigned int size = length;
|
||||||
|
|
||||||
if(bodypos + size > l)
|
if(bodypos + size > l)
|
||||||
size = l - bodypos;
|
size = l - bodypos;
|
||||||
|
|
||||||
memcpy(buf, &event_file_lines[j][bodypos], size);
|
memcpy(buf, &event_file_lines[j][bodypos], size);
|
||||||
|
|
||||||
bodypos += size;
|
bodypos += size;
|
||||||
*readcnt = size;
|
*readcnt = size;
|
||||||
|
|
||||||
if(bodypos == l)
|
if(bodypos == l)
|
||||||
{
|
{
|
||||||
*is_eos = 1;
|
*is_eos = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return APR_SUCCESS;
|
return APR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int responsepos = 0;
|
unsigned int responsepos = 0;
|
||||||
|
|
||||||
apr_status_t readresponse(request_rec *r, char *buf, unsigned int length, unsigned int *readcnt, int *is_eos)
|
apr_status_t readresponse(request_rec *r, char *buf, unsigned int length, unsigned int *readcnt, int *is_eos)
|
||||||
{
|
{
|
||||||
int j = event_file_blocks['G'];
|
int j = event_file_blocks['G'];
|
||||||
|
|
||||||
if(j < 0)
|
if(j < 0)
|
||||||
{
|
{
|
||||||
*is_eos = 1;
|
*is_eos = 1;
|
||||||
return APR_SUCCESS;
|
return APR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
j++;
|
j++;
|
||||||
|
|
||||||
if(event_file_lines[j][0] == 0)
|
if(event_file_lines[j][0] == 0)
|
||||||
{
|
{
|
||||||
*is_eos = 1;
|
*is_eos = 1;
|
||||||
return APR_SUCCESS;
|
return APR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int l = strlen(event_file_lines[j]);
|
unsigned int l = strlen(event_file_lines[j]);
|
||||||
unsigned int size = length;
|
unsigned int size = length;
|
||||||
|
|
||||||
if(responsepos + size > l)
|
if(responsepos + size > l)
|
||||||
size = l - responsepos;
|
size = l - responsepos;
|
||||||
|
|
||||||
memcpy(buf, &event_file_lines[j][responsepos], size);
|
memcpy(buf, &event_file_lines[j][responsepos], size);
|
||||||
|
|
||||||
responsepos += size;
|
responsepos += size;
|
||||||
*readcnt = size;
|
*readcnt = size;
|
||||||
|
|
||||||
if(responsepos == l)
|
if(responsepos == l)
|
||||||
*is_eos = 1;
|
*is_eos = 1;
|
||||||
|
|
||||||
return APR_SUCCESS;
|
return APR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
void main(int argc, char *argv[])
|
void main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
directory_config *config;
|
directory_config *config;
|
||||||
conn_rec *c;
|
conn_rec *c;
|
||||||
request_rec *r;
|
request_rec *r;
|
||||||
|
|
||||||
parseargs(argc, argv);
|
parseargs(argc, argv);
|
||||||
|
|
||||||
if(config_file == NULL || argc < 3)
|
if(config_file == NULL || argc < 3)
|
||||||
{
|
{
|
||||||
printf("Usage:\n");
|
printf("Usage:\n");
|
||||||
printf("standalone.exe -c <config_file> [-u <text_file_with_urls>] <event_file1> [<event_file2> <event_file3> ...]\n");
|
printf("standalone.exe -c <config_file> [-u <text_file_with_urls>] <event_file1> [<event_file2> <event_file3> ...]\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
modsecSetLogHook(NULL, log);
|
modsecSetLogHook(NULL, log);
|
||||||
|
|
||||||
modsecSetReadBody(readbody);
|
modsecSetReadBody(readbody);
|
||||||
modsecSetReadResponse(readresponse);
|
modsecSetReadResponse(readresponse);
|
||||||
|
|
||||||
modsecInit();
|
modsecInit();
|
||||||
|
|
||||||
modsecStartConfig();
|
modsecStartConfig();
|
||||||
|
|
||||||
config = modsecGetDefaultConfig();
|
config = modsecGetDefaultConfig();
|
||||||
|
|
||||||
const char * err = modsecProcessConfig(config, config_file, "c:\\inetpub\\wwwroot");
|
const char * err = modsecProcessConfig(config, config_file, "c:\\inetpub\\wwwroot");
|
||||||
|
|
||||||
if(err != NULL)
|
if(err != NULL)
|
||||||
{
|
{
|
||||||
printf("%s\n", err);
|
printf("%s\n", err);
|
||||||
}
|
}
|
||||||
|
|
||||||
modsecFinalizeConfig();
|
modsecFinalizeConfig();
|
||||||
|
|
||||||
modsecInitProcess();
|
modsecInitProcess();
|
||||||
|
|
||||||
if(url_file != NULL)
|
if(url_file != NULL)
|
||||||
{
|
{
|
||||||
FILE *fr = fopen(url_file, "rb");
|
FILE *fr = fopen(url_file, "rb");
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
while(fgets(urls[i],4096,fr) != NULL)
|
while(fgets(urls[i],4096,fr) != NULL)
|
||||||
{
|
{
|
||||||
urls[i][4095] = 0;
|
urls[i][4095] = 0;
|
||||||
|
|
||||||
int l = strlen(urls[i]) - 1;
|
int l = strlen(urls[i]) - 1;
|
||||||
|
|
||||||
if(l < 8)
|
if(l < 8)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
while(urls[i][l] == 10 || urls[i][l] == 13)
|
while(urls[i][l] == 10 || urls[i][l] == 13)
|
||||||
l--;
|
l--;
|
||||||
|
|
||||||
urls[i++][l + 1] = 0;
|
urls[i++][l + 1] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
url_cnt = i;
|
url_cnt = i;
|
||||||
fclose(fr);
|
fclose(fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i = 0; i < event_file_cnt; i++)
|
for(int i = 0; i < event_file_cnt; i++)
|
||||||
{
|
{
|
||||||
if(url_cnt == 0)
|
if(url_cnt == 0)
|
||||||
{
|
{
|
||||||
urls[0][0] = 0;
|
urls[0][0] = 0;
|
||||||
url_cnt = 1;
|
url_cnt = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int ui = 0; ui < url_cnt; ui++)
|
for(int ui = 0; ui < url_cnt; ui++)
|
||||||
{
|
{
|
||||||
readeventfile(event_files[i]);
|
readeventfile(event_files[i]);
|
||||||
parseeventfile();
|
parseeventfile();
|
||||||
|
|
||||||
bodypos = 0;
|
bodypos = 0;
|
||||||
responsepos = 0;
|
responsepos = 0;
|
||||||
|
|
||||||
c = modsecNewConnection();
|
c = modsecNewConnection();
|
||||||
|
|
||||||
modsecProcessConnection(c);
|
modsecProcessConnection(c);
|
||||||
|
|
||||||
r = modsecNewRequest(c, config);
|
r = modsecNewRequest(c, config);
|
||||||
|
|
||||||
int j = event_file_blocks['B'];
|
int j = event_file_blocks['B'];
|
||||||
|
|
||||||
if(j < 0)
|
if(j < 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
j++;
|
j++;
|
||||||
|
|
||||||
if(event_file_lines[j][0] == 0)
|
if(event_file_lines[j][0] == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
char *method = event_file_lines[j];
|
char *method = event_file_lines[j];
|
||||||
char *url = strchr(method, 32);
|
char *url = strchr(method, 32);
|
||||||
char *proto = strchr(url + 1, 32);
|
char *proto = strchr(url + 1, 32);
|
||||||
|
|
||||||
if(url == NULL || proto == NULL)
|
if(url == NULL || proto == NULL)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
*url++=0;
|
*url++=0;
|
||||||
*proto++=0;
|
*proto++=0;
|
||||||
|
|
||||||
if(urls[ui][0] != 0)
|
if(urls[ui][0] != 0)
|
||||||
{
|
{
|
||||||
url = urls[ui];
|
url = urls[ui];
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SETMETHOD(m) if(strcmp(method,#m) == 0){ r->method = method; r->method_number = M_##m; }
|
#define SETMETHOD(m) if(strcmp(method,#m) == 0){ r->method = method; r->method_number = M_##m; }
|
||||||
|
|
||||||
r->method = "INVALID";
|
r->method = "INVALID";
|
||||||
r->method_number = M_INVALID;
|
r->method_number = M_INVALID;
|
||||||
|
|
||||||
SETMETHOD(OPTIONS)
|
SETMETHOD(OPTIONS)
|
||||||
SETMETHOD(GET)
|
SETMETHOD(GET)
|
||||||
SETMETHOD(POST)
|
SETMETHOD(POST)
|
||||||
SETMETHOD(PUT)
|
SETMETHOD(PUT)
|
||||||
SETMETHOD(DELETE)
|
SETMETHOD(DELETE)
|
||||||
SETMETHOD(TRACE)
|
SETMETHOD(TRACE)
|
||||||
SETMETHOD(CONNECT)
|
SETMETHOD(CONNECT)
|
||||||
SETMETHOD(MOVE)
|
SETMETHOD(MOVE)
|
||||||
SETMETHOD(COPY)
|
SETMETHOD(COPY)
|
||||||
SETMETHOD(PROPFIND)
|
SETMETHOD(PROPFIND)
|
||||||
SETMETHOD(PROPPATCH)
|
SETMETHOD(PROPPATCH)
|
||||||
SETMETHOD(MKCOL)
|
SETMETHOD(MKCOL)
|
||||||
SETMETHOD(LOCK)
|
SETMETHOD(LOCK)
|
||||||
SETMETHOD(UNLOCK)
|
SETMETHOD(UNLOCK)
|
||||||
|
|
||||||
r->protocol = proto;
|
r->protocol = proto;
|
||||||
|
|
||||||
while(event_file_lines[++j][0] != 0)
|
while(event_file_lines[++j][0] != 0)
|
||||||
{
|
{
|
||||||
char *value = strchr(event_file_lines[j], ':');
|
char *value = strchr(event_file_lines[j], ':');
|
||||||
|
|
||||||
if(value == NULL)
|
if(value == NULL)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
*value++ = 0;
|
*value++ = 0;
|
||||||
|
|
||||||
while(*value <=32 && *value != 0)
|
while(*value <=32 && *value != 0)
|
||||||
value++;
|
value++;
|
||||||
|
|
||||||
apr_table_setn(r->headers_in, event_file_lines[j], value);
|
apr_table_setn(r->headers_in, event_file_lines[j], value);
|
||||||
}
|
}
|
||||||
|
|
||||||
r->content_encoding = apr_table_get(r->headers_in, "Content-Encoding");
|
r->content_encoding = apr_table_get(r->headers_in, "Content-Encoding");
|
||||||
r->content_type = apr_table_get(r->headers_in, "Content-Type");
|
r->content_type = apr_table_get(r->headers_in, "Content-Type");
|
||||||
r->hostname = apr_table_get(r->headers_in, "Host");
|
r->hostname = apr_table_get(r->headers_in, "Host");
|
||||||
r->path_info = url;
|
r->path_info = url;
|
||||||
|
|
||||||
char *query = strchr(url, '?');
|
char *query = strchr(url, '?');
|
||||||
char *rawurl = url;
|
char *rawurl = url;
|
||||||
|
|
||||||
if(query != NULL)
|
if(query != NULL)
|
||||||
{
|
{
|
||||||
rawurl = (char *)apr_palloc(r->pool, strlen(url) + 1);
|
rawurl = (char *)apr_palloc(r->pool, strlen(url) + 1);
|
||||||
strcpy(rawurl, url);
|
strcpy(rawurl, url);
|
||||||
*query++ = 0;
|
*query++ = 0;
|
||||||
r->args = query;
|
r->args = query;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *lng = apr_table_get(r->headers_in, "Content-Languages");
|
const char *lng = apr_table_get(r->headers_in, "Content-Languages");
|
||||||
|
|
||||||
if(lng != NULL)
|
if(lng != NULL)
|
||||||
{
|
{
|
||||||
r->content_languages = apr_array_make(r->pool, 1, sizeof(const char *));
|
r->content_languages = apr_array_make(r->pool, 1, sizeof(const char *));
|
||||||
|
|
||||||
*(const char **)apr_array_push(r->content_languages) = lng;
|
*(const char **)apr_array_push(r->content_languages) = lng;
|
||||||
}
|
}
|
||||||
|
|
||||||
r->request_time = apr_time_now();
|
r->request_time = apr_time_now();
|
||||||
|
|
||||||
r->parsed_uri.scheme = "http";
|
r->parsed_uri.scheme = "http";
|
||||||
r->parsed_uri.path = r->path_info;
|
r->parsed_uri.path = r->path_info;
|
||||||
r->parsed_uri.hostname = (char *)r->hostname;
|
r->parsed_uri.hostname = (char *)r->hostname;
|
||||||
r->parsed_uri.is_initialized = 1;
|
r->parsed_uri.is_initialized = 1;
|
||||||
r->parsed_uri.port = 80;
|
r->parsed_uri.port = 80;
|
||||||
r->parsed_uri.port_str = "80";
|
r->parsed_uri.port_str = "80";
|
||||||
r->parsed_uri.query = r->args;
|
r->parsed_uri.query = r->args;
|
||||||
r->parsed_uri.dns_looked_up = 0;
|
r->parsed_uri.dns_looked_up = 0;
|
||||||
r->parsed_uri.dns_resolved = 0;
|
r->parsed_uri.dns_resolved = 0;
|
||||||
r->parsed_uri.password = NULL;
|
r->parsed_uri.password = NULL;
|
||||||
r->parsed_uri.user = NULL;
|
r->parsed_uri.user = NULL;
|
||||||
r->parsed_uri.fragment = NULL;
|
r->parsed_uri.fragment = NULL;
|
||||||
|
|
||||||
r->unparsed_uri = rawurl;
|
r->unparsed_uri = rawurl;
|
||||||
r->uri = r->unparsed_uri;
|
r->uri = r->unparsed_uri;
|
||||||
|
|
||||||
r->the_request = (char *)apr_palloc(r->pool, strlen(r->method) + 1 + strlen(r->uri) + 1 + strlen(r->protocol) + 1);
|
r->the_request = (char *)apr_palloc(r->pool, strlen(r->method) + 1 + strlen(r->uri) + 1 + strlen(r->protocol) + 1);
|
||||||
|
|
||||||
strcpy(r->the_request, r->method);
|
strcpy(r->the_request, r->method);
|
||||||
strcat(r->the_request, " ");
|
strcat(r->the_request, " ");
|
||||||
strcat(r->the_request, r->uri);
|
strcat(r->the_request, r->uri);
|
||||||
strcat(r->the_request, " ");
|
strcat(r->the_request, " ");
|
||||||
strcat(r->the_request, r->protocol);
|
strcat(r->the_request, r->protocol);
|
||||||
|
|
||||||
apr_table_setn(r->subprocess_env, "UNIQUE_ID", "1");
|
apr_table_setn(r->subprocess_env, "UNIQUE_ID", "1");
|
||||||
|
|
||||||
modsecProcessRequest(r);
|
modsecProcessRequest(r);
|
||||||
modsecProcessResponse(r);
|
modsecProcessResponse(r);
|
||||||
modsecFinishRequest(r);
|
modsecFinishRequest(r);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
modsecTerminate();
|
modsecTerminate();
|
||||||
getch();
|
getch();
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1,162 +1,162 @@
|
|||||||
/*
|
/*
|
||||||
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
||||||
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
||||||
*
|
*
|
||||||
* You may not use this file except in compliance with
|
* You may not use this file except in compliance with
|
||||||
* the License. You may obtain a copy of the License at
|
* the License. You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* If any of the files related to licensing are missing or if you have any
|
* If any of the files related to licensing are missing or if you have any
|
||||||
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
||||||
* directly using the email address security@modsecurity.org.
|
* directly using the email address security@modsecurity.org.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
#include "http_core.h"
|
#include "http_core.h"
|
||||||
#include "http_request.h"
|
#include "http_request.h"
|
||||||
|
|
||||||
#include "modsecurity.h"
|
#include "modsecurity.h"
|
||||||
#include "apache2.h"
|
#include "apache2.h"
|
||||||
#include "http_main.h"
|
#include "http_main.h"
|
||||||
#include "http_connection.h"
|
#include "http_connection.h"
|
||||||
|
|
||||||
#include "apr_optional.h"
|
#include "apr_optional.h"
|
||||||
#include "mod_log_config.h"
|
#include "mod_log_config.h"
|
||||||
|
|
||||||
#include "msc_logging.h"
|
#include "msc_logging.h"
|
||||||
#include "msc_util.h"
|
#include "msc_util.h"
|
||||||
|
|
||||||
#include "ap_mpm.h"
|
#include "ap_mpm.h"
|
||||||
#include "scoreboard.h"
|
#include "scoreboard.h"
|
||||||
|
|
||||||
#include "apr_version.h"
|
#include "apr_version.h"
|
||||||
|
|
||||||
#include "apr_lib.h"
|
#include "apr_lib.h"
|
||||||
#include "ap_config.h"
|
#include "ap_config.h"
|
||||||
#include "http_config.h"
|
#include "http_config.h"
|
||||||
|
|
||||||
|
|
||||||
static apr_status_t regex_cleanup(void *preg)
|
static apr_status_t regex_cleanup(void *preg)
|
||||||
{
|
{
|
||||||
ap_regfree((ap_regex_t *) preg);
|
ap_regfree((ap_regex_t *) preg);
|
||||||
return APR_SUCCESS;
|
return APR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE(ap_regex_t *) ap_pregcomp(apr_pool_t *p, const char *pattern,
|
AP_DECLARE(ap_regex_t *) ap_pregcomp(apr_pool_t *p, const char *pattern,
|
||||||
int cflags)
|
int cflags)
|
||||||
{
|
{
|
||||||
ap_regex_t *preg = apr_palloc(p, sizeof *preg);
|
ap_regex_t *preg = apr_palloc(p, sizeof *preg);
|
||||||
|
|
||||||
if (ap_regcomp(preg, pattern, cflags)) {
|
if (ap_regcomp(preg, pattern, cflags)) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
apr_pool_cleanup_register(p, (void *) preg, regex_cleanup,
|
apr_pool_cleanup_register(p, (void *) preg, regex_cleanup,
|
||||||
apr_pool_cleanup_null);
|
apr_pool_cleanup_null);
|
||||||
|
|
||||||
return preg;
|
return preg;
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE(void) ap_regfree(ap_regex_t *preg)
|
AP_DECLARE(void) ap_regfree(ap_regex_t *preg)
|
||||||
{
|
{
|
||||||
(pcre_free)(preg->re_pcre);
|
(pcre_free)(preg->re_pcre);
|
||||||
}
|
}
|
||||||
|
|
||||||
AP_DECLARE(int) ap_regcomp(ap_regex_t *preg, const char *pattern, int cflags)
|
AP_DECLARE(int) ap_regcomp(ap_regex_t *preg, const char *pattern, int cflags)
|
||||||
{
|
{
|
||||||
const char *errorptr;
|
const char *errorptr;
|
||||||
int erroffset;
|
int erroffset;
|
||||||
int options = 0;
|
int options = 0;
|
||||||
int nsub = 0;
|
int nsub = 0;
|
||||||
|
|
||||||
if ((cflags & AP_REG_ICASE) != 0) options |= PCRE_CASELESS;
|
if ((cflags & AP_REG_ICASE) != 0) options |= PCRE_CASELESS;
|
||||||
if ((cflags & AP_REG_NEWLINE) != 0) options |= PCRE_MULTILINE;
|
if ((cflags & AP_REG_NEWLINE) != 0) options |= PCRE_MULTILINE;
|
||||||
|
|
||||||
preg->re_pcre = pcre_compile(pattern, options, &errorptr, &erroffset, NULL);
|
preg->re_pcre = pcre_compile(pattern, options, &errorptr, &erroffset, NULL);
|
||||||
preg->re_erroffset = erroffset;
|
preg->re_erroffset = erroffset;
|
||||||
|
|
||||||
if (preg->re_pcre == NULL) return AP_REG_INVARG;
|
if (preg->re_pcre == NULL) return AP_REG_INVARG;
|
||||||
|
|
||||||
pcre_fullinfo((const pcre *)preg->re_pcre, NULL, PCRE_INFO_CAPTURECOUNT, &nsub);
|
pcre_fullinfo((const pcre *)preg->re_pcre, NULL, PCRE_INFO_CAPTURECOUNT, &nsub);
|
||||||
preg->re_nsub = nsub;
|
preg->re_nsub = nsub;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef POSIX_MALLOC_THRESHOLD
|
#ifndef POSIX_MALLOC_THRESHOLD
|
||||||
#define POSIX_MALLOC_THRESHOLD (10)
|
#define POSIX_MALLOC_THRESHOLD (10)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
AP_DECLARE(int) ap_regexec(const ap_regex_t *preg, const char *string,
|
AP_DECLARE(int) ap_regexec(const ap_regex_t *preg, const char *string,
|
||||||
apr_size_t nmatch, ap_regmatch_t pmatch[],
|
apr_size_t nmatch, ap_regmatch_t pmatch[],
|
||||||
int eflags)
|
int eflags)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
int options = 0;
|
int options = 0;
|
||||||
int *ovector = NULL;
|
int *ovector = NULL;
|
||||||
int small_ovector[POSIX_MALLOC_THRESHOLD * 3];
|
int small_ovector[POSIX_MALLOC_THRESHOLD * 3];
|
||||||
int allocated_ovector = 0;
|
int allocated_ovector = 0;
|
||||||
|
|
||||||
if ((eflags & AP_REG_NOTBOL) != 0) options |= PCRE_NOTBOL;
|
if ((eflags & AP_REG_NOTBOL) != 0) options |= PCRE_NOTBOL;
|
||||||
if ((eflags & AP_REG_NOTEOL) != 0) options |= PCRE_NOTEOL;
|
if ((eflags & AP_REG_NOTEOL) != 0) options |= PCRE_NOTEOL;
|
||||||
|
|
||||||
((ap_regex_t *)preg)->re_erroffset = (apr_size_t)(-1); /* Only has meaning after compile */
|
((ap_regex_t *)preg)->re_erroffset = (apr_size_t)(-1); /* Only has meaning after compile */
|
||||||
|
|
||||||
if (nmatch > 0)
|
if (nmatch > 0)
|
||||||
{
|
{
|
||||||
if (nmatch <= POSIX_MALLOC_THRESHOLD)
|
if (nmatch <= POSIX_MALLOC_THRESHOLD)
|
||||||
{
|
{
|
||||||
ovector = &(small_ovector[0]);
|
ovector = &(small_ovector[0]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ovector = (int *)malloc(sizeof(int) * nmatch * 3);
|
ovector = (int *)malloc(sizeof(int) * nmatch * 3);
|
||||||
if (ovector == NULL) return AP_REG_ESPACE;
|
if (ovector == NULL) return AP_REG_ESPACE;
|
||||||
allocated_ovector = 1;
|
allocated_ovector = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = pcre_exec((const pcre *)preg->re_pcre, NULL, string, (int)strlen(string),
|
rc = pcre_exec((const pcre *)preg->re_pcre, NULL, string, (int)strlen(string),
|
||||||
0, options, ovector, nmatch * 3);
|
0, options, ovector, nmatch * 3);
|
||||||
|
|
||||||
if (rc == 0) rc = nmatch; /* All captured slots were filled in */
|
if (rc == 0) rc = nmatch; /* All captured slots were filled in */
|
||||||
|
|
||||||
if (rc >= 0)
|
if (rc >= 0)
|
||||||
{
|
{
|
||||||
apr_size_t i;
|
apr_size_t i;
|
||||||
for (i = 0; i < (apr_size_t)rc; i++)
|
for (i = 0; i < (apr_size_t)rc; i++)
|
||||||
{
|
{
|
||||||
pmatch[i].rm_so = ovector[i*2];
|
pmatch[i].rm_so = ovector[i*2];
|
||||||
pmatch[i].rm_eo = ovector[i*2+1];
|
pmatch[i].rm_eo = ovector[i*2+1];
|
||||||
}
|
}
|
||||||
if (allocated_ovector) free(ovector);
|
if (allocated_ovector) free(ovector);
|
||||||
for (; i < nmatch; i++) pmatch[i].rm_so = pmatch[i].rm_eo = -1;
|
for (; i < nmatch; i++) pmatch[i].rm_so = pmatch[i].rm_eo = -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (allocated_ovector) free(ovector);
|
if (allocated_ovector) free(ovector);
|
||||||
switch(rc)
|
switch(rc)
|
||||||
{
|
{
|
||||||
case PCRE_ERROR_NOMATCH: return AP_REG_NOMATCH;
|
case PCRE_ERROR_NOMATCH: return AP_REG_NOMATCH;
|
||||||
case PCRE_ERROR_NULL: return AP_REG_INVARG;
|
case PCRE_ERROR_NULL: return AP_REG_INVARG;
|
||||||
case PCRE_ERROR_BADOPTION: return AP_REG_INVARG;
|
case PCRE_ERROR_BADOPTION: return AP_REG_INVARG;
|
||||||
case PCRE_ERROR_BADMAGIC: return AP_REG_INVARG;
|
case PCRE_ERROR_BADMAGIC: return AP_REG_INVARG;
|
||||||
case PCRE_ERROR_UNKNOWN_NODE: return AP_REG_ASSERT;
|
case PCRE_ERROR_UNKNOWN_NODE: return AP_REG_ASSERT;
|
||||||
case PCRE_ERROR_NOMEMORY: return AP_REG_ESPACE;
|
case PCRE_ERROR_NOMEMORY: return AP_REG_ESPACE;
|
||||||
#ifdef PCRE_ERROR_MATCHLIMIT
|
#ifdef PCRE_ERROR_MATCHLIMIT
|
||||||
case PCRE_ERROR_MATCHLIMIT: return AP_REG_ESPACE;
|
case PCRE_ERROR_MATCHLIMIT: return AP_REG_ESPACE;
|
||||||
#endif
|
#endif
|
||||||
#ifdef PCRE_ERROR_BADUTF8
|
#ifdef PCRE_ERROR_BADUTF8
|
||||||
case PCRE_ERROR_BADUTF8: return AP_REG_INVARG;
|
case PCRE_ERROR_BADUTF8: return AP_REG_INVARG;
|
||||||
#endif
|
#endif
|
||||||
#ifdef PCRE_ERROR_BADUTF8_OFFSET
|
#ifdef PCRE_ERROR_BADUTF8_OFFSET
|
||||||
case PCRE_ERROR_BADUTF8_OFFSET: return AP_REG_INVARG;
|
case PCRE_ERROR_BADUTF8_OFFSET: return AP_REG_INVARG;
|
||||||
#endif
|
#endif
|
||||||
default: return AP_REG_ASSERT;
|
default: return AP_REG_ASSERT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,26 +1,26 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||||
# Visual Studio 2010
|
# Visual Studio 2010
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "standalone", "standalone.vcxproj", "{20EC871F-B6A0-4398-9B67-A33598A796E8}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "standalone", "standalone.vcxproj", "{20EC871F-B6A0-4398-9B67-A33598A796E8}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Win32 = Debug|Win32
|
Debug|Win32 = Debug|Win32
|
||||||
Debug|x64 = Debug|x64
|
Debug|x64 = Debug|x64
|
||||||
Release|Win32 = Release|Win32
|
Release|Win32 = Release|Win32
|
||||||
Release|x64 = Release|x64
|
Release|x64 = Release|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Debug|Win32.ActiveCfg = Debug|Win32
|
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Debug|Win32.Build.0 = Debug|Win32
|
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Debug|x64.ActiveCfg = Debug|x64
|
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Debug|x64.Build.0 = Debug|x64
|
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Debug|x64.Build.0 = Debug|x64
|
||||||
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Release|Win32.ActiveCfg = Release|Win32
|
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Release|Win32.Build.0 = Release|Win32
|
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Release|Win32.Build.0 = Release|Win32
|
||||||
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Release|x64.ActiveCfg = Release|x64
|
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Release|x64.ActiveCfg = Release|x64
|
||||||
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Release|x64.Build.0 = Release|x64
|
{20EC871F-B6A0-4398-9B67-A33598A796E8}.Release|x64.Build.0 = Release|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
Binary file not shown.
@@ -1,216 +1,216 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>x64</Platform>
|
<Platform>x64</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|x64">
|
<ProjectConfiguration Include="Release|x64">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>x64</Platform>
|
<Platform>x64</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{20EC871F-B6A0-4398-9B67-A33598A796E8}</ProjectGuid>
|
<ProjectGuid>{20EC871F-B6A0-4398-9B67-A33598A796E8}</ProjectGuid>
|
||||||
<RootNamespace>standalone</RootNamespace>
|
<RootNamespace>standalone</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v110</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v110</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v110</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110</PlatformToolset>
|
<PlatformToolset>v110</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup />
|
<PropertyGroup />
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2;c:\work\httpd-2.2.24\include</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2;c:\work\httpd-2.2.24\include</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC;VERSION_STANDALONE</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC;VERSION_STANDALONE</PreprocessorDefinitions>
|
||||||
<DisableSpecificWarnings>4244;4018</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4018</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies);libapr-1.lib;libaprutil-1.lib;pcre.lib;libxml2.lib</AdditionalDependencies>
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies);libapr-1.lib;libaprutil-1.lib;pcre.lib;libxml2.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>c:\drop\x86</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>c:\drop\x86</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC</PreprocessorDefinitions>
|
||||||
<DisableSpecificWarnings>4244;4018</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4018</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies);libapr-1.lib;libaprutil-1.lib;pcre.lib;libxml2.lib</AdditionalDependencies>
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies);libapr-1.lib;libaprutil-1.lib;pcre.lib;libxml2.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>c:\drop\amd64</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>c:\drop\amd64</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<AdditionalIncludeDirectories>C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies);libapr-1.lib;libaprutil-1.lib;pcre.lib;libxml2.lib</AdditionalDependencies>
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies);libapr-1.lib;libaprutil-1.lib;pcre.lib;libxml2.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>c:\drop\x86</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>c:\drop\x86</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<AdditionalIncludeDirectories>C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies);libapr-1.lib;libaprutil-1.lib;pcre.lib;libxml2.lib</AdditionalDependencies>
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ws2_32.lib;%(AdditionalDependencies);libapr-1.lib;libaprutil-1.lib;pcre.lib;libxml2.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>c:\drop\amd64</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>c:\drop\amd64</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\apache2\acmp.c" />
|
<ClCompile Include="..\apache2\acmp.c" />
|
||||||
<ClCompile Include="..\apache2\apache2_config.c" />
|
<ClCompile Include="..\apache2\apache2_config.c" />
|
||||||
<ClCompile Include="..\apache2\apache2_io.c" />
|
<ClCompile Include="..\apache2\apache2_io.c" />
|
||||||
<ClCompile Include="..\apache2\apache2_util.c" />
|
<ClCompile Include="..\apache2\apache2_util.c" />
|
||||||
<ClCompile Include="..\apache2\modsecurity.c" />
|
<ClCompile Include="..\apache2\modsecurity.c" />
|
||||||
<ClCompile Include="..\apache2\mod_security2.c" />
|
<ClCompile Include="..\apache2\mod_security2.c" />
|
||||||
<ClCompile Include="..\apache2\msc_crypt.c" />
|
<ClCompile Include="..\apache2\msc_crypt.c" />
|
||||||
<ClCompile Include="..\apache2\msc_geo.c" />
|
<ClCompile Include="..\apache2\msc_geo.c" />
|
||||||
<ClCompile Include="..\apache2\msc_gsb.c" />
|
<ClCompile Include="..\apache2\msc_gsb.c" />
|
||||||
<ClCompile Include="..\apache2\msc_logging.c" />
|
<ClCompile Include="..\apache2\msc_logging.c" />
|
||||||
<ClCompile Include="..\apache2\msc_lua.c" />
|
<ClCompile Include="..\apache2\msc_lua.c" />
|
||||||
<ClCompile Include="..\apache2\msc_multipart.c" />
|
<ClCompile Include="..\apache2\msc_multipart.c" />
|
||||||
<ClCompile Include="..\apache2\msc_parsers.c" />
|
<ClCompile Include="..\apache2\msc_parsers.c" />
|
||||||
<ClCompile Include="..\apache2\msc_pcre.c" />
|
<ClCompile Include="..\apache2\msc_pcre.c" />
|
||||||
<ClCompile Include="..\apache2\msc_release.c" />
|
<ClCompile Include="..\apache2\msc_release.c" />
|
||||||
<ClCompile Include="..\apache2\msc_reqbody.c" />
|
<ClCompile Include="..\apache2\msc_reqbody.c" />
|
||||||
<ClCompile Include="..\apache2\msc_tree.c" />
|
<ClCompile Include="..\apache2\msc_tree.c" />
|
||||||
<ClCompile Include="..\apache2\msc_unicode.c" />
|
<ClCompile Include="..\apache2\msc_unicode.c" />
|
||||||
<ClCompile Include="..\apache2\msc_util.c" />
|
<ClCompile Include="..\apache2\msc_util.c" />
|
||||||
<ClCompile Include="..\apache2\msc_xml.c" />
|
<ClCompile Include="..\apache2\msc_xml.c" />
|
||||||
<ClCompile Include="..\apache2\persist_dbm.c" />
|
<ClCompile Include="..\apache2\persist_dbm.c" />
|
||||||
<ClCompile Include="..\apache2\re.c" />
|
<ClCompile Include="..\apache2\re.c" />
|
||||||
<ClCompile Include="..\apache2\re_actions.c" />
|
<ClCompile Include="..\apache2\re_actions.c" />
|
||||||
<ClCompile Include="..\apache2\re_operators.c" />
|
<ClCompile Include="..\apache2\re_operators.c" />
|
||||||
<ClCompile Include="..\apache2\re_tfns.c" />
|
<ClCompile Include="..\apache2\re_tfns.c" />
|
||||||
<ClCompile Include="..\apache2\re_variables.c" />
|
<ClCompile Include="..\apache2\re_variables.c" />
|
||||||
<ClCompile Include="api.c" />
|
<ClCompile Include="api.c" />
|
||||||
<ClCompile Include="buckets.c">
|
<ClCompile Include="buckets.c">
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;;..\apache2</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;;..\apache2</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;;..\apache2</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="config.c" />
|
<ClCompile Include="config.c" />
|
||||||
<ClCompile Include="filters.c">
|
<ClCompile Include="filters.c">
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="hooks.c">
|
<ClCompile Include="hooks.c">
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="main.cpp">
|
<ClCompile Include="main.cpp">
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="regex.c">
|
<ClCompile Include="regex.c">
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="server.c">
|
<ClCompile Include="server.c">
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\work\pcre-8.30\include;C:\work\pcre-8.30;C:\work\libxml2-2.7.7\include;C:\apache22\include;..\apache2</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\apache2\acmp.h" />
|
<ClInclude Include="..\apache2\acmp.h" />
|
||||||
<ClInclude Include="..\apache2\apache2.h" />
|
<ClInclude Include="..\apache2\apache2.h" />
|
||||||
<ClInclude Include="..\apache2\modsecurity.h" />
|
<ClInclude Include="..\apache2\modsecurity.h" />
|
||||||
<ClInclude Include="..\apache2\modsecurity_config.h" />
|
<ClInclude Include="..\apache2\modsecurity_config.h" />
|
||||||
<ClInclude Include="..\apache2\modsecurity_config_auto.h" />
|
<ClInclude Include="..\apache2\modsecurity_config_auto.h" />
|
||||||
<ClInclude Include="..\apache2\msc_crypt.h" />
|
<ClInclude Include="..\apache2\msc_crypt.h" />
|
||||||
<ClInclude Include="..\apache2\msc_geo.h" />
|
<ClInclude Include="..\apache2\msc_geo.h" />
|
||||||
<ClInclude Include="..\apache2\msc_gsb.h" />
|
<ClInclude Include="..\apache2\msc_gsb.h" />
|
||||||
<ClInclude Include="..\apache2\msc_logging.h" />
|
<ClInclude Include="..\apache2\msc_logging.h" />
|
||||||
<ClInclude Include="..\apache2\msc_lua.h" />
|
<ClInclude Include="..\apache2\msc_lua.h" />
|
||||||
<ClInclude Include="..\apache2\msc_multipart.h" />
|
<ClInclude Include="..\apache2\msc_multipart.h" />
|
||||||
<ClInclude Include="..\apache2\msc_parsers.h" />
|
<ClInclude Include="..\apache2\msc_parsers.h" />
|
||||||
<ClInclude Include="..\apache2\msc_pcre.h" />
|
<ClInclude Include="..\apache2\msc_pcre.h" />
|
||||||
<ClInclude Include="..\apache2\msc_release.h" />
|
<ClInclude Include="..\apache2\msc_release.h" />
|
||||||
<ClInclude Include="..\apache2\msc_tree.h" />
|
<ClInclude Include="..\apache2\msc_tree.h" />
|
||||||
<ClInclude Include="..\apache2\msc_unicode.h" />
|
<ClInclude Include="..\apache2\msc_unicode.h" />
|
||||||
<ClInclude Include="..\apache2\msc_util.h" />
|
<ClInclude Include="..\apache2\msc_util.h" />
|
||||||
<ClInclude Include="..\apache2\msc_xml.h" />
|
<ClInclude Include="..\apache2\msc_xml.h" />
|
||||||
<ClInclude Include="..\apache2\persist_dbm.h" />
|
<ClInclude Include="..\apache2\persist_dbm.h" />
|
||||||
<ClInclude Include="..\apache2\re.h" />
|
<ClInclude Include="..\apache2\re.h" />
|
||||||
<ClInclude Include="..\apache2\utf8tables.h" />
|
<ClInclude Include="..\apache2\utf8tables.h" />
|
||||||
<ClInclude Include="api.h" />
|
<ClInclude Include="api.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -1,192 +1,192 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Resource Files">
|
<Filter Include="Resource Files">
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="ModSecurity Headers">
|
<Filter Include="ModSecurity Headers">
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="ModSecurity Sources">
|
<Filter Include="ModSecurity Sources">
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Standalone Sources">
|
<Filter Include="Standalone Sources">
|
||||||
<UniqueIdentifier>{2d4a2f57-e994-4dad-888a-e61a65029abf}</UniqueIdentifier>
|
<UniqueIdentifier>{2d4a2f57-e994-4dad-888a-e61a65029abf}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\apache2\acmp.c">
|
<ClCompile Include="..\apache2\acmp.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\apache2_config.c">
|
<ClCompile Include="..\apache2\apache2_config.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\apache2_io.c">
|
<ClCompile Include="..\apache2\apache2_io.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\apache2_util.c">
|
<ClCompile Include="..\apache2\apache2_util.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\mod_security2.c">
|
<ClCompile Include="..\apache2\mod_security2.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\modsecurity.c">
|
<ClCompile Include="..\apache2\modsecurity.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_geo.c">
|
<ClCompile Include="..\apache2\msc_geo.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_gsb.c">
|
<ClCompile Include="..\apache2\msc_gsb.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_logging.c">
|
<ClCompile Include="..\apache2\msc_logging.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_lua.c">
|
<ClCompile Include="..\apache2\msc_lua.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_multipart.c">
|
<ClCompile Include="..\apache2\msc_multipart.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_parsers.c">
|
<ClCompile Include="..\apache2\msc_parsers.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_pcre.c">
|
<ClCompile Include="..\apache2\msc_pcre.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_release.c">
|
<ClCompile Include="..\apache2\msc_release.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_reqbody.c">
|
<ClCompile Include="..\apache2\msc_reqbody.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_unicode.c">
|
<ClCompile Include="..\apache2\msc_unicode.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_util.c">
|
<ClCompile Include="..\apache2\msc_util.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_xml.c">
|
<ClCompile Include="..\apache2\msc_xml.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\persist_dbm.c">
|
<ClCompile Include="..\apache2\persist_dbm.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\re.c">
|
<ClCompile Include="..\apache2\re.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\re_actions.c">
|
<ClCompile Include="..\apache2\re_actions.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\re_operators.c">
|
<ClCompile Include="..\apache2\re_operators.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\re_tfns.c">
|
<ClCompile Include="..\apache2\re_tfns.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\re_variables.c">
|
<ClCompile Include="..\apache2\re_variables.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="filters.c">
|
<ClCompile Include="filters.c">
|
||||||
<Filter>Standalone Sources</Filter>
|
<Filter>Standalone Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="hooks.c">
|
<ClCompile Include="hooks.c">
|
||||||
<Filter>Standalone Sources</Filter>
|
<Filter>Standalone Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="buckets.c">
|
<ClCompile Include="buckets.c">
|
||||||
<Filter>Standalone Sources</Filter>
|
<Filter>Standalone Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="regex.c">
|
<ClCompile Include="regex.c">
|
||||||
<Filter>Standalone Sources</Filter>
|
<Filter>Standalone Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="server.c">
|
<ClCompile Include="server.c">
|
||||||
<Filter>Standalone Sources</Filter>
|
<Filter>Standalone Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="config.c">
|
<ClCompile Include="config.c">
|
||||||
<Filter>Standalone Sources</Filter>
|
<Filter>Standalone Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="api.c">
|
<ClCompile Include="api.c">
|
||||||
<Filter>Standalone Sources</Filter>
|
<Filter>Standalone Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="main.cpp">
|
<ClCompile Include="main.cpp">
|
||||||
<Filter>Standalone Sources</Filter>
|
<Filter>Standalone Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_crypt.c">
|
<ClCompile Include="..\apache2\msc_crypt.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\apache2\msc_tree.c">
|
<ClCompile Include="..\apache2\msc_tree.c">
|
||||||
<Filter>ModSecurity Sources</Filter>
|
<Filter>ModSecurity Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\apache2\acmp.h">
|
<ClInclude Include="..\apache2\acmp.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\apache2.h">
|
<ClInclude Include="..\apache2\apache2.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\modsecurity.h">
|
<ClInclude Include="..\apache2\modsecurity.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\modsecurity_config.h">
|
<ClInclude Include="..\apache2\modsecurity_config.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\modsecurity_config_auto.h">
|
<ClInclude Include="..\apache2\modsecurity_config_auto.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_geo.h">
|
<ClInclude Include="..\apache2\msc_geo.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_gsb.h">
|
<ClInclude Include="..\apache2\msc_gsb.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_logging.h">
|
<ClInclude Include="..\apache2\msc_logging.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_lua.h">
|
<ClInclude Include="..\apache2\msc_lua.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_multipart.h">
|
<ClInclude Include="..\apache2\msc_multipart.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_parsers.h">
|
<ClInclude Include="..\apache2\msc_parsers.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_pcre.h">
|
<ClInclude Include="..\apache2\msc_pcre.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_release.h">
|
<ClInclude Include="..\apache2\msc_release.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_unicode.h">
|
<ClInclude Include="..\apache2\msc_unicode.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_util.h">
|
<ClInclude Include="..\apache2\msc_util.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_xml.h">
|
<ClInclude Include="..\apache2\msc_xml.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\persist_dbm.h">
|
<ClInclude Include="..\apache2\persist_dbm.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\re.h">
|
<ClInclude Include="..\apache2\re.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\utf8tables.h">
|
<ClInclude Include="..\apache2\utf8tables.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="api.h">
|
<ClInclude Include="api.h">
|
||||||
<Filter>Standalone Sources</Filter>
|
<Filter>Standalone Sources</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_crypt.h">
|
<ClInclude Include="..\apache2\msc_crypt.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\apache2\msc_tree.h">
|
<ClInclude Include="..\apache2\msc_tree.h">
|
||||||
<Filter>ModSecurity Headers</Filter>
|
<Filter>ModSecurity Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LocalDebuggerCommandArguments>-c d:\temp\antixss.conf -u d:\temp\modsec_urls.txt d:\temp\test1.dat</LocalDebuggerCommandArguments>
|
<LocalDebuggerCommandArguments>-c d:\temp\antixss.conf -u d:\temp\modsec_urls.txt d:\temp\test1.dat</LocalDebuggerCommandArguments>
|
||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
<LocalDebuggerCommand>$(TargetPath)</LocalDebuggerCommand>
|
<LocalDebuggerCommand>$(TargetPath)</LocalDebuggerCommand>
|
||||||
<LocalDebuggerAttach>false</LocalDebuggerAttach>
|
<LocalDebuggerAttach>false</LocalDebuggerAttach>
|
||||||
<LocalDebuggerDebuggerType>NativeOnly</LocalDebuggerDebuggerType>
|
<LocalDebuggerDebuggerType>NativeOnly</LocalDebuggerDebuggerType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<LocalDebuggerCommandArguments>-c d:\xss.conf d:\test.dat</LocalDebuggerCommandArguments>
|
<LocalDebuggerCommandArguments>-c d:\xss.conf d:\test.dat</LocalDebuggerCommandArguments>
|
||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
12
v3wkqlls.fht.txt
Normal file
12
v3wkqlls.fht.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
# Please enter the commit message for your changes. Lines starting
|
||||||
|
# with '#' will be ignored, and an empty message aborts the commit.
|
||||||
|
# On branch master
|
||||||
|
# Your branch is ahead of 'origin/master' by 1 commit.
|
||||||
|
#
|
||||||
|
# Changes to be committed:
|
||||||
|
# (use "git reset HEAD <file>..." to unstage)
|
||||||
|
#
|
||||||
|
# deleted: standalone/standalone.sdf
|
||||||
|
#
|
||||||
|
|
||||||
Reference in New Issue
Block a user