]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
Windows build and other misc fixes.
authorVictor Julien <victor@inliniac.net>
Wed, 11 Jul 2012 10:47:34 +0000 (12:47 +0200)
committerVictor Julien <victor@inliniac.net>
Wed, 11 Jul 2012 10:53:09 +0000 (12:53 +0200)
Makefile.am
configure.in
src/Makefile.am
src/detect.c
src/util-classification-config.c
src/util-threshold-config.c

index f13a59a57d358133c1d3f1e9d44c7680d2b3a45d..e0938817414d511ecd5393d96488dee1802b7014 100644 (file)
@@ -16,24 +16,24 @@ install-data-am:
 install-full: install install-conf install-rules
 
 install-conf:
-       install -d $(e_sysconfdir)
-       @test -e $(e_sysconfdir)/suricata.yaml || install -m 600 $(top_srcdir)/suricata.yaml $(e_sysconfdir)
-       @test -e $(e_sysconfdir)/classification.config || install -m 600 $(top_srcdir)/classification.config $(e_sysconfdir)
-       @test -e $(e_sysconfdir)/reference.config || install -m 600 $(top_srcdir)/reference.config $(e_sysconfdir)
-       install -d $(localstatedir)/log/suricata/files
+       install -d "$(e_sysconfdir)"
+       @test -e "$(e_sysconfdir)/suricata.yaml" || install -m 600 "$(top_srcdir)/suricata.yaml" "$(e_sysconfdir)"
+       @test -e "$(e_sysconfdir)/classification.config" || install -m 600 "$(top_srcdir)/classification.config" "$(e_sysconfdir)"
+       @test -e "$(e_sysconfdir)/reference.config" || install -m 600 "$(top_srcdir)/reference.config" "$(e_sysconfdir)"
+       install -d "$(e_logfilesdir)"
 
 install-rules:
-       install -d $(e_sysconfdir)/rules
-       wget -qO - http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz | tar -x -z -C $(e_sysconfdir) -f -
-       @test -e $(e_sysconfdir)/rules/decoder-events.rules || install -m 600 $(top_srcdir)/rules/decoder-events.rules $(e_sysconfdir)/rules/
-       @test -e $(e_sysconfdir)/rules/stream-events.rules || install -m 600 $(top_srcdir)/rules/stream-events.rules $(e_sysconfdir)/rules/
-       @test -e $(e_sysconfdir)/rules/smtp-events.rules || install -m 600 $(top_srcdir)/rules/smtp-events.rules $(e_sysconfdir)/rules/
-       @test -e $(e_sysconfdir)/rules/http-events.rules || install -m 600 $(top_srcdir)/rules/http-events.rules $(e_sysconfdir)/rules/
+       install -d "$(e_sysconfrulesdir)"
+       wget -qO - http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz | tar -x -z -C "$(e_sysconfdir)" -f -
+       @test -e "$(e_sysconfrulesdir)decoder-events.rules" || install -m 600 "$(top_srcdir)/rules/decoder-events.rules" "$(e_sysconfrulesdir)"
+       @test -e "$(e_sysconfrulesdir)stream-events.rules" || install -m 600 "$(top_srcdir)/rules/stream-events.rules" "$(e_sysconfrulesdir)"
+       @test -e "$(e_sysconfrulesdir)smtp-events.rules" || install -m 600 "$(top_srcdir)/rules/smtp-events.rules" "$(e_sysconfrulesdir)"
+       @test -e "$(e_sysconfrulesdir)http-events.rules" || install -m 600 "$(top_srcdir)/rules/http-events.rules" "$(e_sysconfrulesdir)"
        @echo ""
        @echo "You can now start suricata by running as root something like '$(bindir)/suricata -c $(e_sysconfdir)/suricata.yaml -i eth0'."
        @echo ""
        @echo "If a library like libhtp.so is not found, you can run suricata with:"
-       @echo "'LD_LIBRARY_PATH=$(prefix)/lib $(bindir)/suricata -c $(e_sysconfdir)/suricata.yaml -i eth0'."
+       @echo "'LD_LIBRARY_PATH="$(prefix)/lib" "$(bindir)/suricata" -c "$(e_sysconfdir)/suricata.yaml" -i eth0'."
        @echo ""
        @echo "While rules are installed now, it's highly recommended to use a rule manager for maintaining rules."
        @echo "The two most common are Oinkmaster and Pulledpork. For a guide see:"
index 02f3ce6e5fadd0f65c806a5f49daca7109321ae8..3700df6adf844f08aa16778679430da168d4540c 100644 (file)
@@ -1241,25 +1241,32 @@ eval "$2=[$]$2$3"
 
 # suricata log dir
 if test "$WINDOWS_PATH" = "yes"; then
-  systemtype="`systeminfo | grep \"System Type\"`"
-  case $systemtype in
+  systemtype="`systeminfo | grep \"based PC\"`"
+  case "$systemtype" in
     *x64*)
-      e_logdir="C:\\Program Files (x86)\\Suricata\\log\\"
-      e_sysconfdir="C:\\Program Files (x86)\\Suricata\\"
-      e_magic_file="C:\\Program Files (x86)\\Suricata\\magic.mgc"
+      e_winbase="C:\\\\Program Files (x86)\\\\Suricata"
       ;;
     *)
-      e_logdir="C:\\Program Files\\Suricata\\log\\"
-      e_sysconfdir="C:\\Program Files\\Suricata\\"
-      e_magic_file="C:\\Program Files\\Suricata\\magic.mgc"
+      e_winbase="C:\\\\Program Files\\\\Suricata"
       ;;
   esac
+
+  e_sysconfdir="$e_winbase\\\\"
+  e_sysconfrulesdir="$e_winbase\\\\rules\\\\"
+  e_magic_file="$e_winbase\\\\magic.mgc"
+  e_logdir="$e_winbase\\\\log"
+  e_logfilesdir="$e_logdir\\\\files"
 else
   EXPAND_VARIABLE(localstatedir, e_logdir, "/log/suricata/")
+  EXPAND_VARIABLE(localstatedir, e_logfilesdir, "/log/suricata/files")
   EXPAND_VARIABLE(sysconfdir, e_sysconfdir, "/suricata/")
+  EXPAND_VARIABLE(sysconfdir, e_sysconfrulesdir, "/suricata/rules")
 fi
 AC_SUBST(e_logdir)
+AC_SUBST(e_logfilesdir)
 AC_SUBST(e_sysconfdir)
+AC_SUBST(e_sysconfrulesdir)
+AC_DEFINE_UNQUOTED([CONFIG_DIR],["$e_sysconfdir"],[Our CONFIG_DIR])
 AC_SUBST(e_magic_file)
 
 AC_OUTPUT(Makefile src/Makefile qa/Makefile qa/coccinelle/Makefile rules/Makefile doc/Makefile suricata.yaml)
index 1b8401dec908b16193809fff5d2e890fa573ecc5..5f5e34534a2abeb834b813c5e6662251d3a8ae9e 100644 (file)
@@ -6,8 +6,6 @@ noinst_HEADERS = action-globals.h \
         util-validate.h
 bin_PROGRAMS = suricata
 
-AM_CPPFLAGS = -DCONFIG_DIR=\"$(e_sysconfdir)\"
-
 suricata_SOURCES = suricata.c suricata.h \
 runmodes.c runmodes.h \
 runmode-pcap.c runmode-pcap.h \
index 9cb5526200e643f0af5adfe8871f62d43f7231f1..920f3b02526809a38eb65899c3ec4702045ef34f 100644 (file)
@@ -243,8 +243,13 @@ char *DetectLoadCompleteSigPath(char *sig_file)
             if (path == NULL)
                 return NULL;
             strlcpy(path, defaultpath, path_len);
-            if (path[strlen(path) - 1] != '/')
+#if defined OS_WIN32 || defined __CYGWIN__
+           if (path[strlen(path) - 1] != '\\')
+                strlcat(path, "\\\\", path_len);
+#else
+           if (path[strlen(path) - 1] != '/')
                 strlcat(path, "/", path_len);
+#endif
             strlcat(path, sig_file, path_len);
        } else {
             path = SCStrdup(sig_file);
index 6300844c4baabda67feeb6bfbef0dc1a0192dca7..d270bafcbffecba9fca72b07c4418a68947c284b 100644 (file)
 #define DETECT_CLASSCONFIG_REGEX "^\\s*config\\s*classification\\s*:\\s*([a-zA-Z][a-zA-Z0-9-_]*)\\s*,\\s*(.+)\\s*,\\s*(\\d+)\\s*$"
 
 /* Default path for the classification.config file */
+#if defined OS_WIN32 || defined __CYGWIN__
+#define SC_CLASS_CONF_DEF_CONF_FILEPATH CONFIG_DIR "\\\\classification.config"
+#else
 #define SC_CLASS_CONF_DEF_CONF_FILEPATH CONFIG_DIR "/classification.config"
+#endif
 
 /* Holds a pointer to the default path for the classification.config file */
 static const char *default_file_path = SC_CLASS_CONF_DEF_CONF_FILEPATH;
index f0619214141a8d8c6b61fc0bc0b117b960c35594..9a5a941ae717d3a54def77b63bb403e40dee2aa2 100644 (file)
@@ -75,7 +75,11 @@ typedef enum ThresholdRuleType {
 #define DETECT_SUPPRESS_REGEX "^,\\s*track\\s*(by_dst|by_src)\\s*,\\s*ip\\s*([\\d.:/]+)*\\s*$"
 
 /* Default path for the threshold.config file */
+#if defined OS_WIN32 || defined __CYGWIN__
+#define THRESHOLD_CONF_DEF_CONF_FILEPATH CONFIG_DIR "\\\\threshold.config"
+#else
 #define THRESHOLD_CONF_DEF_CONF_FILEPATH CONFIG_DIR "/threshold.config"
+#endif
 
 static pcre *regex_base = NULL;
 static pcre_extra *regex_base_study = NULL;