Imported Upstream version 2.5.1
[ossec-hids.git] / src / init / ossec-local.sh
index 259bd5d..12f5196 100755 (executable)
@@ -22,7 +22,7 @@ fi
 
 
 NAME="OSSEC HIDS"
-VERSION="v2.3"
+VERSION="v2.5.1"
 AUTHOR="Trend Micro Inc."
 DAEMONS="ossec-monitord ossec-logcollector ossec-syscheckd ossec-analysisd ossec-maild ossec-execd ${DB_DAEMON} ${CSYSLOG_DAEMON} ${AGENTLESS_DAEMON}"
 
@@ -115,8 +115,8 @@ enable()
 {
     if [ "X$2" = "X" ]; then
         echo ""
-        echo "Enable options: database, client-syslog, agentless"
-        echo "Usage: $0 enable [database|client-syslog|agentless]"
+        echo "Enable options: database, client-syslog, agentless, debug"
+        echo "Usage: $0 enable [database|client-syslog|agentless|debug]"
         exit 1;
     fi
     
@@ -126,12 +126,14 @@ enable()
         echo "CSYSLOG_DAEMON=ossec-csyslogd" >> ${PLIST};
     elif [ "X$2" = "Xagentless" ]; then
         echo "AGENTLESS_DAEMON=ossec-agentlessd" >> ${PLIST};    
+    elif [ "X$2" = "Xdebug" ]; then 
+        echo "DEBUG_CLI=\"-d\"" >> ${PLIST}; 
     else
         echo ""
         echo "Invalid enable option."
         echo ""
-        echo "Enable options: database, client-syslog, agentless"
-        echo "Usage: $0 enable [database|client-syslog|agentless]"
+        echo "Enable options: database, client-syslog, agentless, debug"
+        echo "Usage: $0 enable [database|client-syslog|agentless|debug]"
         exit 1;
     fi         
 
@@ -145,8 +147,8 @@ disable()
 {
     if [ "X$2" = "X" ]; then
         echo ""
-        echo "Disable options: database, client-syslog, agentless"
-        echo "Usage: $0 disable [database|client-syslog|agentless]"
+        echo "Disable options: database, client-syslog, agentless, debug"
+        echo "Usage: $0 disable [database|client-syslog|agentless,debug]"
         exit 1;
     fi
     
@@ -156,12 +158,14 @@ disable()
         echo "CSYSLOG_DAEMON=\"\"" >> ${PLIST};
     elif [ "X$2" = "Xagentless" ]; then
         echo "AGENTLESS_DAEMON=\"\"" >> ${PLIST};    
+    elif [ "X$2" = "Xdebug" ]; then 
+        echo "DEBUG_CLI=\"\"" >> ${PLIST}; 
     else
         echo ""
         echo "Invalid disable option."
         echo ""
-        echo "Disable options: database, client-syslog, agentless"
-        echo "Usage: $0 disable [database|client-syslog|agentless]"
+        echo "Disable options: database, client-syslog, agentless, debug"
+        echo "Usage: $0 disable [database|client-syslog|agentless|debug]"
         exit 1;
     fi         
 
@@ -183,6 +187,19 @@ status()
     done             
 }
 
+testconfig()
+{
+    # We first loop to check the config. 
+    for i in ${SDAEMONS}; do
+        ${DIR}/bin/${i} -t ${DEBUG_CLI};
+        if [ $? != 0 ]; then
+            echo "${i}: Configuration error. Exiting"
+            unlock;
+            exit 1;
+        fi    
+    done
+}
+
 
 # Start function
 start()
@@ -190,24 +207,20 @@ start()
     SDAEMONS="${DB_DAEMON} ${CSYSLOG_DAEMON} ${AGENTLESS_DAEMON} ossec-maild ossec-execd ossec-analysisd ossec-logcollector ossec-syscheckd ossec-monitord"
     
     echo "Starting $NAME $VERSION (by $AUTHOR)..."
+    ${DIR}/bin/ossec-logtest -t
+    if [ ! $? = 0 ]; then
+        echo "ossec-analysisd: Configuration error. Exiting."
+    fi    
+
     lock;
     checkpid;
 
-    # We first loop to check the config. 
-    for i in ${SDAEMONS}; do
-        ${DIR}/bin/${i} -t;
-        if [ $? != 0 ]; then
-            echo "${i}: Configuration error. Exiting"
-            unlock;
-            exit 1;
-        fi    
-    done
     
     # We actually start them now.
     for i in ${SDAEMONS}; do
         pstatus ${i};
         if [ $? = 0 ]; then
-            ${DIR}/bin/${i};
+            ${DIR}/bin/${i} ${DEBUG_CLI};
             if [ $? != 0 ]; then
                 unlock;
                 exit 1;
@@ -286,12 +299,14 @@ stopa()
 
 case "$1" in
   start)
+    testconfig
        start
        ;;
   stop) 
        stopa
        ;;
   restart)
+    testconfig
        stopa
        start
        ;;