From e131e2222d7df27e0f6ff9b8325c1d31ad94bd18 Mon Sep 17 00:00:00 2001 From: Felipe Zimmerle Date: Sun, 19 Jan 2014 05:51:22 -0800 Subject: [PATCH] Adds support to status engine on IIS version Fixes on the windows versions: build, mac address and machine name retrieval --- apache2/Makefile.win | 6 ++++-- apache2/apache2_config.c | 2 +- apache2/msc_status_engine.c | 10 +++++----- iis/Makefile.win | 6 ++++-- iis/ModSecurityIIS.vcxproj | 8 +++++--- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/apache2/Makefile.win b/apache2/Makefile.win index 31a83a99..dea150ac 100644 --- a/apache2/Makefile.win +++ b/apache2/Makefile.win @@ -12,7 +12,8 @@ LIBS = $(APACHE)\lib\libhttpd.lib \ $(APACHE)\lib\libaprutil-1.lib \ $(PCRE)\pcre.lib \ $(LIBXML2)\win32\bin.msvc\libxml2.lib \ - Ws2_32.lib + Ws2_32.lib \ + "iphlpapi.lib" ########################################################################### ########################################################################### @@ -46,7 +47,8 @@ OBJS = mod_security2.obj apache2_config.obj apache2_io.obj apache2_util.obj \ msc_logging.obj msc_xml.obj msc_multipart.obj modsecurity.obj \ msc_parsers.obj msc_util.obj msc_pcre.obj persist_dbm.obj \ msc_reqbody.obj msc_geo.obj msc_gsb.obj msc_crypt.obj msc_tree.obj msc_unicode.obj acmp.obj msc_lua.obj \ - msc_release.obj libinjection\libinjection_sqli.obj + msc_release.obj libinjection\libinjection_sqli.obj \ + msc_status_engine.obj all: $(DLL) diff --git a/apache2/apache2_config.c b/apache2/apache2_config.c index 304d0b91..6e0dc5d4 100644 --- a/apache2/apache2_config.c +++ b/apache2/apache2_config.c @@ -2083,7 +2083,7 @@ static const char *cmd_rule_engine(cmd_parms *cmd, void *_dcfg, const char *p1) return NULL; } -static const char *cmd_STATUS_ENGINE(cmd_parms *cmd, void *_dcfg, const char *p1) +static const char *cmd_status_engine(cmd_parms *cmd, void *_dcfg, const char *p1) { if (strcasecmp(p1, "on") == 0) { status_engine_state = STATUS_ENGINE_ENABLED; diff --git a/apache2/msc_status_engine.c b/apache2/msc_status_engine.c index 6797ca85..c073a157 100644 --- a/apache2/msc_status_engine.c +++ b/apache2/msc_status_engine.c @@ -96,14 +96,14 @@ void DSOLOCAL msc_status_engine_fill_with_dots(char *encoded_with_dots, // Based on: // http://stackoverflow.com/questions/16858782/how-to-obtain-almost-unique-system-identifier-in-a-cross-platform-way int DSOLOCAL msc_status_engine_machine_name(char *machine_name, size_t len) { +#ifdef WIN32 + DWORD lenComputerName = len; +#endif + memset(machine_name, '\0', sizeof(char) * len); #ifdef WIN32 - DWORD size = 1024; - GetComputerName(machine_name, &size); - - apr_snprintf(machine_name, len-1, "%s", computerName[0]); - machine_name[len - 1] = '\0'; + GetComputerName(machine_name, &lenComputerName); #else static struct utsname u; diff --git a/iis/Makefile.win b/iis/Makefile.win index f352d930..acb24dcc 100644 --- a/iis/Makefile.win +++ b/iis/Makefile.win @@ -12,7 +12,8 @@ LIBS = $(APACHE)\lib\libapr-1.lib \ $(PCRE)\pcre.lib \ $(LIBXML2)\win32\bin.msvc\libxml2.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" "ws2_32.lib" + "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" "ws2_32.lib" \ + "iphlpapi.lib" ########################################################################### ########################################################################### @@ -49,7 +50,8 @@ OBJS1 = mod_security2.obj apache2_config.obj apache2_io.obj apache2_util.obj \ msc_logging.obj msc_xml.obj msc_multipart.obj modsecurity.obj \ msc_parsers.obj msc_util.obj msc_pcre.obj persist_dbm.obj \ msc_reqbody.obj msc_geo.obj msc_gsb.obj msc_unicode.obj acmp.obj msc_lua.obj \ - msc_release.obj msc_crypt.obj msc_tree.obj + msc_release.obj msc_crypt.obj msc_tree.obj \ + msc_status_engine.obj OBJS2 = api.obj buckets.obj config.obj filters.obj hooks.obj regex.obj server.obj OBJS3 = main.obj moduleconfig.obj mymodule.obj OBJS4 = libinjection_sqli.obj diff --git a/iis/ModSecurityIIS.vcxproj b/iis/ModSecurityIIS.vcxproj index 2dd8eee5..5697fd51 100755 --- a/iis/ModSecurityIIS.vcxproj +++ b/iis/ModSecurityIIS.vcxproj @@ -113,7 +113,7 @@ mymodule.def true - 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 + 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 C:\core__\ModSecurity\iis\release\x64 /LIBPATH:"C:\core__\ModSecurity\iis\release\x64" %(AdditionalOptions) @@ -145,7 +145,7 @@ mymodule.def - 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 + 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 false @@ -163,6 +163,7 @@ + @@ -211,6 +212,7 @@ + @@ -235,4 +237,4 @@ - \ No newline at end of file +