Code

Different text to scan for if multiple addresses
[nagiosplug.git] / plugins / check_nt.c
index 3b2bd5e1178db98725bfb8c29867db0b3733a60d..50bf9f03c485be64c557a59c4ec6fcc052cd1986 100644 (file)
@@ -58,7 +58,6 @@ char *req_password=NULL;
 unsigned long lvalue_list[MAX_VALUE_LIST];
 unsigned long warning_value=0L;
 unsigned long critical_value=0L;
-int check_value_list=FALSE;
 int check_warning_value=FALSE;
 int check_critical_value=FALSE;
 enum checkvars vars_to_check = CHECK_NONE;
@@ -96,6 +95,10 @@ int main(int argc, char **argv){
        int uphours=0;
        int upminutes=0;
 
+       setlocale (LC_ALL, "");
+       bindtextdomain (PACKAGE, LOCALEDIR);
+       textdomain (PACKAGE);
+
        if(process_arguments(argc,argv)==ERROR)
                usage(_("Could not parse arguments\n"));
 
@@ -111,8 +114,13 @@ int main(int argc, char **argv){
 
                asprintf(&send_buffer, "%s&1", req_password);
                fetch_data (server_address, server_port, send_buffer);
-               output_message = strdup (recv_buffer);
-               return_code=STATE_OK;
+               if (value_list != NULL && strcmp(recv_buffer, value_list) != 0) {
+                       asprintf (&output_message, _("Wrong client version - running: %s, required: %s"), recv_buffer, value_list);
+                       return_code = STATE_WARNING;
+               } else {
+                       asprintf (&output_message, "%s", recv_buffer);
+                       return_code = STATE_OK;
+               }
                break;
 
        case CHECK_CPULOAD:
@@ -230,12 +238,11 @@ int main(int argc, char **argv){
                        mem_commitLimit / 1048576, mem_commitByte / 1048567, percent_used_space,  
                        (mem_commitLimit - mem_commitByte) / 1048576, (mem_commitLimit - mem_commitByte) / mem_commitLimit * 100);
        
+               return_code=STATE_OK;
                if(check_critical_value==TRUE && percent_used_space >= critical_value)
                        return_code=STATE_CRITICAL;
                else if (check_warning_value==TRUE && percent_used_space >= warning_value)
                        return_code=STATE_WARNING;      
-               else
-                       return_code=STATE_OK;   
 
                break;
 
@@ -265,13 +272,12 @@ int main(int argc, char **argv){
                                        return_code=STATE_OK;   
                        } 
                        else {                                       /* inverse thresholds */
+                               return_code=STATE_OK;
                                if(check_critical_value==TRUE && counter_value <= critical_value)
                                        return_code=STATE_CRITICAL;
                                else if (check_warning_value==TRUE && counter_value <= warning_value)
                                        return_code=STATE_WARNING;      
-                               else
-                                       return_code=STATE_OK;   
-                       }       
+                       }
                }
                break;
 
@@ -308,7 +314,7 @@ int main(int argc, char **argv){
 
        case CHECK_NONE:
        default:
-               usage (_(""));
+               usage (_("Please specify a variable to check"));
                break;
 
        }
@@ -532,7 +538,8 @@ Windows NT/2000/XP server.\n\n"));
 -v, --variable=STRING\n\
   Variable to check.  Valid variables are:\n"));
   printf (_("\
-   CLIENTVERSION = Get the NSClient version\n"));
+   CLIENTVERSION = Get the NSClient version\n\
+     If -l <version> is specified, will return warning if versions differ.\n"));
   printf (_("\
    CPULOAD = Average CPU load on last x minutes.\n\
      Request a -l parameter with the following syntax:\n\