Skip to content

Commit a95f371

Browse files
author
Felipe Zimmerle
committed
Adds JSON support on ISS port
The JSON parse is already supported in Nginx and Apache versions. This patch adds support on the IIS port.
1 parent 0787b45 commit a95f371

File tree

7 files changed

+70
-12
lines changed

7 files changed

+70
-12
lines changed

apache2/Makefile.win

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ INCLUDES = $(INCLUDES) -I$(LUA)\include -I$(LUA) \
4040

4141
# Yajl/Json is optional
4242
!IF "$(YAJL)" != ""
43-
LIBS = $(LIBS) $(YAJL)\yajl.lib
43+
LIBS = $(LIBS) $(YAJL)\lib\yajl.lib
4444
DEFS=$(DEFS) -DWITH_YAJL
4545
INCLUDES = $(INCLUDES) -I$(YAJL)\include -I$(YAJL) \
4646
!ENDIF

iis/Makefile.win

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ INCLUDES = $(INCLUDES) -I$(LUA)\include -I$(LUA) \
4343

4444
# Yajl/Json is optional
4545
!IF "$(YAJL)" != ""
46-
LIBS = $(LIBS) $(YAJL)\yajl.lib
46+
LIBS = $(LIBS) $(YAJL)\lib\yajl.lib
4747
DEFS=$(DEFS) -DWITH_YAJL
4848
INCLUDES = $(INCLUDES) -I$(YAJL)\include -I$(YAJL) \
4949
!ENDIF

iis/ModSecurityIIS.vcxproj

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@
8383
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
8484
<ClCompile>
8585
<Optimization>Disabled</Optimization>
86-
<AdditionalIncludeDirectories>dependencies\build_dir\pcre\include;dependencies\build_dir\pcre;dependencies\build_dir\libxml2\include;dependencies\build_dir\apache24\include;..\apache2;..\standalone</AdditionalIncludeDirectories>
86+
<AdditionalIncludeDirectories>dependencies\build_dir\pcre\include;dependencies\build_dir\pcre;dependencies\build_dir\libxml2\include;dependencies\build_dir\apache24\include;..\apache2;..\standalone;dependencies\build_dir\lloyd-yajl-f4b2b1a\build\yajl-2.0.1\include;</AdditionalIncludeDirectories>
8787
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC;VERSION_IIS</PreprocessorDefinitions>
8888
<PrecompiledHeader>NotUsing</PrecompiledHeader>
8989
<PrecompiledHeaderFile>precomp.h</PrecompiledHeaderFile>
@@ -93,7 +93,7 @@
9393
<Link>
9494
<ModuleDefinitionFile>mymodule.def</ModuleDefinitionFile>
9595
<GenerateDebugInformation>true</GenerateDebugInformation>
96-
<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);dependencies\build_dir\apache24\lib\libapr-1.lib;dependencies\build_dir\apache24\lib\libaprutil-1.lib;dependencies\build_dir\pcre\pcre.lib;dependencies\build_dir\libxml2\win32\bin.msvc\libxml2.lib</AdditionalDependencies>
96+
<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);dependencies\build_dir\apache24\lib\libapr-1.lib;dependencies\build_dir\apache24\lib\libaprutil-1.lib;dependencies\build_dir\pcre\pcre.lib;dependencies\build_dir\libxml2\win32\bin.msvc\libxml2.lib;dependencies\build_dir\yajl\build\yajl-2.0.1\lib\yajl.lib</AdditionalDependencies>
9797
</Link>
9898
<PostBuildEvent>
9999
<Command>
@@ -103,7 +103,7 @@
103103
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
104104
<ClCompile>
105105
<Optimization>Disabled</Optimization>
106-
<AdditionalIncludeDirectories>dependencies\build_dir\pcre\include;dependencies\build_dir\pcre;dependencies\build_dir\libxml2\include;..\apache2;..\standalone;dependencies\build_dir\apache24\include</AdditionalIncludeDirectories>
106+
<AdditionalIncludeDirectories>dependencies\build_dir\pcre\include;dependencies\build_dir\pcre;dependencies\build_dir\libxml2\include;..\apache2;..\standalone;dependencies\build_dir\apache24\include;dependencies\build_dir\lloyd-yajl-f4b2b1a\build\yajl-2.0.1\include;</AdditionalIncludeDirectories>
107107
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC</PreprocessorDefinitions>
108108
<PrecompiledHeader>NotUsing</PrecompiledHeader>
109109
<PrecompiledHeaderFile>precomp.h</PrecompiledHeaderFile>
@@ -113,7 +113,7 @@
113113
<Link>
114114
<ModuleDefinitionFile>mymodule.def</ModuleDefinitionFile>
115115
<GenerateDebugInformation>true</GenerateDebugInformation>
116-
<AdditionalDependencies>kernel32.lib;IPHLPAPI.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);dependencies\build_dir\apache24\lib\libapr-1.lib;dependencies\build_dir\apache24\lib\libaprutil-1.lib;dependencies\build_dir\pcre\pcre.lib;dependencies\build_dir\libxml2\win32\bin.msvc\libxml2.lib</AdditionalDependencies>
116+
<AdditionalDependencies>kernel32.lib;IPHLPAPI.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);dependencies\build_dir\apache24\lib\libapr-1.lib;dependencies\build_dir\apache24\lib\libaprutil-1.lib;dependencies\build_dir\pcre\pcre.lib;dependencies\build_dir\libxml2\win32\bin.msvc\libxml2.lib;dependencies\build_dir\yajl\build\yajl-2.0.1\lib\yajl.lib;</AdditionalDependencies>
117117
<AdditionalLibraryDirectories>C:\core__\ModSecurity\iis\release\x64</AdditionalLibraryDirectories>
118118
<AdditionalOptions> /LIBPATH:"C:\core__\ModSecurity\iis\release\x64" %(AdditionalOptions)</AdditionalOptions>
119119
</Link>
@@ -126,11 +126,11 @@
126126
<ClCompile>
127127
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC;VERSION_IIS</PreprocessorDefinitions>
128128
<PrecompiledHeader>NotUsing</PrecompiledHeader>
129-
<AdditionalIncludeDirectories>dependencies\build_dir\pcre\include;dependencies\build_dir\pcre;dependencies\build_dir\libxml2\include;..\apache2;..\standalone</AdditionalIncludeDirectories>
129+
<AdditionalIncludeDirectories>dependencies\build_dir\pcre\include;dependencies\build_dir\pcre;dependencies\build_dir\libxml2\include;..\apache2;..\standalone;dependencies\build_dir\lloyd-yajl-f4b2b1a\build\yajl-2.0.1\include;</AdditionalIncludeDirectories>
130130
</ClCompile>
131131
<Link>
132132
<ModuleDefinitionFile>mymodule.def</ModuleDefinitionFile>
133-
<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);dependencies\build_dir\apache24\lib\libapr-1.lib;dependencies\build_dir\apache24\lib\libaprutil-1.lib;dependencies\build_dir\pcre\pcre.lib;dependencies\build_dir\libxml2\win32\bin.msvc\libxml2.lib</AdditionalDependencies>
133+
<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);dependencies\build_dir\apache24\lib\libapr-1.lib;dependencies\build_dir\apache24\lib\libaprutil-1.lib;dependencies\build_dir\pcre\pcre.lib;dependencies\build_dir\libxml2\win32\bin.msvc\libxml2.lib;dependencies\build_dir\yajl\build\yajl-2.0.1\lib\yajl.lib</AdditionalDependencies>
134134
</Link>
135135
<PostBuildEvent>
136136
<Command>
@@ -141,11 +141,11 @@
141141
<ClCompile>
142142
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);WIN32;WINNT;inline=APR_INLINE;AP_DECLARE_STATIC</PreprocessorDefinitions>
143143
<PrecompiledHeader>NotUsing</PrecompiledHeader>
144-
<AdditionalIncludeDirectories>dependencies\build_dir\pcre\include;dependencies\build_dir\pcre;dependencies\build_dir\libxml2\include;..\apache2;..\standalone;dependencies\build_dir\apache24\include</AdditionalIncludeDirectories>
144+
<AdditionalIncludeDirectories>dependencies\build_dir\pcre\include;dependencies\build_dir\pcre;dependencies\build_dir\libxml2\include;..\apache2;..\standalone;dependencies\build_dir\apache24\include;dependencies\build_dir\lloyd-yajl-f4b2b1a\build\yajl-2.0.1\include;</AdditionalIncludeDirectories>
145145
</ClCompile>
146146
<Link>
147147
<ModuleDefinitionFile>mymodule.def</ModuleDefinitionFile>
148-
<AdditionalDependencies>kernel32.lib;IPHLPAPI.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);dependencies\build_dir\apache24\lib\libapr-1.lib;dependencies\build_dir\apache24\lib\libaprutil-1.lib;dependencies\build_dir\pcre\pcre.lib;dependencies\build_dir\libxml2\win32\bin.msvc\libxml2.lib</AdditionalDependencies>
148+
<AdditionalDependencies>kernel32.lib;IPHLPAPI.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);dependencies\build_dir\apache24\lib\libapr-1.lib;dependencies\build_dir\apache24\lib\libaprutil-1.lib;dependencies\build_dir\pcre\pcre.lib;dependencies\build_dir\libxml2\win32\bin.msvc\libxml2.lib;dependencies\build_dir\yajl\build\yajl-2.0.1\lib\yajl.lib;</AdditionalDependencies>
149149
<AdditionalLibraryDirectories>
150150
</AdditionalLibraryDirectories>
151151
<GenerateDebugInformation>false</GenerateDebugInformation>
@@ -167,6 +167,7 @@
167167
<ClCompile Include="..\apache2\msc_crypt.c" />
168168
<ClCompile Include="..\apache2\msc_geo.c" />
169169
<ClCompile Include="..\apache2\msc_gsb.c" />
170+
<ClCompile Include="..\apache2\msc_json.c" />
170171
<ClCompile Include="..\apache2\msc_logging.c" />
171172
<ClCompile Include="..\apache2\msc_lua.c" />
172173
<ClCompile Include="..\apache2\msc_multipart.c" />
@@ -216,6 +217,7 @@
216217
<ClInclude Include="..\apache2\msc_crypt.h" />
217218
<ClInclude Include="..\apache2\msc_geo.h" />
218219
<ClInclude Include="..\apache2\msc_gsb.h" />
220+
<ClInclude Include="..\apache2\msc_json.h" />
219221
<ClInclude Include="..\apache2\msc_logging.h" />
220222
<ClInclude Include="..\apache2\msc_lua.h" />
221223
<ClInclude Include="..\apache2\msc_multipart.h" />

iis/build_dependencies.bat

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
@set APACHE_SRC=httpd-2.4.6.tar.gz
1818
@set APACHE_BIN32=httpd-2.4.6-win32-VC11.zip
1919
@set APACHE_BIN64=httpd-2.4.6-win64-VC11.zip
20+
@set YAJL=lloyd-yajl-f4b2b1a.zip
2021

2122
:: @set VCARGS32="C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"
2223
:: @set VCARGS64="C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat"
@@ -73,6 +74,11 @@ echo "b"
7374
@if NOT (%ERRORLEVEL%) == (0) goto build_failed_curl
7475
@cd "%CURRENT_DIR%"
7576

77+
@echo # yajl - %YAJL%
78+
@call dependencies/build_yajl.bat
79+
@if NOT (%ERRORLEVEL%) == (0) goto build_failed_yajl
80+
@cd "%CURRENT_DIR%"
81+
7682
@echo All dependencies were built successfully.
7783
@cd "%CURRENT_DIR%"
7884
@exit /B 0
@@ -109,6 +115,10 @@ echo "b"
109115
@echo Failed to setup %CURL%...
110116
@goto failed
111117

118+
:build_failed_yajl
119+
@echo Failed to setup %YAJL%...
120+
@goto failed
121+
112122
:failed
113123
@cd %CURRENT_DIR%
114124
@exit /B 1

iis/build_modsecurity.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ set CURRENT_DIR=%cd%
1515
cd ..\apache2
1616
del *.obj *.dll *.lib
1717
del libinjection\*.obj libinjection\*.dll libinjection\*.lib
18-
NMAKE -f Makefile.win APACHE=..\iis\%DEPENDENCIES_DIR%\Apache24 PCRE=..\iis\%DEPENDENCIES_DIR%\pcre LIBXML2=..\iis\%DEPENDENCIES_DIR%\libxml2 LUA=..\iis\%DEPENDENCIES_DIR%\lua\src VERSION=VERSION_IIS
18+
NMAKE -f Makefile.win APACHE=..\iis\%DEPENDENCIES_DIR%\Apache24 PCRE=..\iis\%DEPENDENCIES_DIR%\pcre LIBXML2=..\iis\%DEPENDENCIES_DIR%\libxml2 LUA=..\iis\%DEPENDENCIES_DIR%\lua\src VERSION=VERSION_IIS YAJL=..\iis\%DEPENDENCIES_DIR%\yajl\build\yajl-2.0.1
1919
@if NOT (%ERRORLEVEL%) == (0) goto build_failed
2020

2121
@echo mlogc...
@@ -29,7 +29,7 @@ nmake -f Makefile.win APACHE=..\iis\%DEPENDENCIES_DIR%\Apache24 PCRE=..\iis\%DEP
2929
cd ..\iis
3030
del *.obj *.dll *.lib
3131
nmake -f Makefile.win clean
32-
NMAKE -f Makefile.win APACHE=..\iis\%DEPENDENCIES_DIR%\Apache24 PCRE=..\iis\%DEPENDENCIES_DIR%\pcre LIBXML2=..\iis\%DEPENDENCIES_DIR%\libxml2 LUA=..\iis\%DEPENDENCIES_DIR%\lua\src VERSION=VERSION_IIS
32+
NMAKE -f Makefile.win APACHE=..\iis\%DEPENDENCIES_DIR%\Apache24 PCRE=..\iis\%DEPENDENCIES_DIR%\pcre LIBXML2=..\iis\%DEPENDENCIES_DIR%\libxml2 LUA=..\iis\%DEPENDENCIES_DIR%\lua\src VERSION=VERSION_IIS YAJL=..\iis\%DEPENDENCIES_DIR%\yajl\build\yajl-2.0.1
3333
@if NOT (%ERRORLEVEL%) == (0) goto build_failed
3434

3535
cd %CURRENT_DIR%

iis/dependencies/build_yajl.bat

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
cd "%WORK_DIR%"
2+
3+
@if NOT EXIST "%SOURCE_DIR%\%YAJL%" goto file_not_found_bin
4+
5+
7z.exe x "%SOURCE_DIR%\%YAJL%"
6+
set YAJL_DIR=%YAJL:~0,-4%
7+
8+
move "%YAJL_DIR%" "yajl"
9+
10+
cd "yajl"
11+
12+
mkdir build
13+
@if NOT (%ERRORLEVEL%) == (0) goto build_failed
14+
cd build
15+
@if NOT (%ERRORLEVEL%) == (0) goto build_failed
16+
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..
17+
@if NOT (%ERRORLEVEL%) == (0) goto build_failed
18+
nmake
19+
@if NOT (%ERRORLEVEL%) == (0) goto build_failed
20+
21+
cd "%WORK%"
22+
23+
copy /y "%WORK_DIR%\yajl\build\yajl-2.0.1\lib\yajl.dll" "%OUTPUT_DIR%"
24+
copy /y "%WORK_DIR%\yajl\build\yajl-2.0.1\lib\yajl.pdb" "%OUTPUT_DIR%"
25+
copy /y "%WORK_DIR%\yajl\build\yajl-2.0.1\lib\yajl.lib" "%OUTPUT_DIR%"
26+
copy /y "%WORK_DIR%\yajl\build\yajl-2.0.1\lib\yajl_s.lib" "%OUTPUT_DIR%"
27+
28+
@exit /B 0
29+
30+
:file_not_found_bin
31+
@echo File not found: "%SOURCE_DIR%\%PCRE%"
32+
@goto failed
33+
34+
:build_failed
35+
@echo Problems during the building phase
36+
@goto failed
37+
38+
:failed
39+
@exit /B 1

iis/installer.wxs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,9 @@
542542
<Component Id="LUA5.1.DLL" DiskId="1" Guid="F2A09A92-F564-4C93-AB17-569A6FDA3A7C">
543543
<File Id="LUA5.1.DLL" Name="lua5.1.dll" Source="Release\amd64\lua5.1.dll" />
544544
</Component>
545+
<Component Id="YAJL.DLL" DiskId="1" Guid="F2A09A92-F564-4C93-AB17-5ZZA6FDA3A7C">
546+
<File Id="AYJL.DLL" Name="yajl.dll" Source="Release\amd64\yajl.dll" />
547+
</Component>
545548
<Component Id="MLOGC.EXE" DiskId="1" Guid="49A1606F-F374-453F-B968-C22CF6FBF9FF">
546549
<File Id="MLOGC.EXE" Name="mlogc.exe" Source="Release\amd64\mlogc.exe" />
547550
</Component>
@@ -575,6 +578,9 @@
575578
<Component Id="LUA5.1.DLL" DiskId="1" Guid="F2A09A92-F564-4C93-AB17-569A6FDA3A71">
576579
<File Id="LUA5.1.DLL" Name="lua5.1.dll" Source="Release\x86\lua5.1.dll" />
577580
</Component>
581+
<Component Id="YAJL.DLL" DiskId="1" Guid="F2A09A92-F564-4CZ3-AB17-5ZZA6FDA3A7C">
582+
<File Id="AYJL.DLL" Name="yajl.dll" Source="Release\x86\yajl.dll" />
583+
</Component>
578584
<Component Id="MLOGC.EXE" DiskId="1" Guid="49A1606F-F374-453F-B968-C22CF6FBF9F1">
579585
<File Id="MLOGC.EXE" Name="mlogc.exe" Source="Release\x86\mlogc.exe" />
580586
</Component>
@@ -598,6 +604,7 @@
598604
<ComponentRef Id="LIBCURL.DLL" />
599605
<ComponentRef Id="LIBXML2.DLL" />
600606
<ComponentRef Id="LUA5.1.DLL" />
607+
<ComponentRef Id="YAJL.DLL" />
601608
<ComponentRef Id="MLOGC.EXE" />
602609
<ComponentRef Id="MODSECURITYIIS.DLL" />
603610
<ComponentRef Id="PCRE.DLL" />

0 commit comments

Comments
 (0)