diff options
| -rw-r--r-- | .travis.yml | 2 | ||||
| -rw-r--r-- | THANKS.in | 1 | ||||
| -rw-r--r-- | lib/utils_base.c | 15 | ||||
| -rw-r--r-- | plugins/check_dig.c | 9 | ||||
| -rw-r--r-- | plugins/t/check_dns.t | 12 | ||||
| -rwxr-xr-x | tools/generate-change-log | 2 |
6 files changed, 32 insertions, 9 deletions
diff --git a/.travis.yml b/.travis.yml index cec78786..2275be3f 100644 --- a/.travis.yml +++ b/.travis.yml | |||
| @@ -4,6 +4,8 @@ before_install: | |||
| 4 | - sudo add-apt-repository -y ppa:waja/precise-backports | 4 | - sudo add-apt-repository -y ppa:waja/precise-backports |
| 5 | - sudo apt-get update -qq | 5 | - sudo apt-get update -qq |
| 6 | - sudo apt-get purge -qq gawk | 6 | - sudo apt-get purge -qq gawk |
| 7 | # ensure we have a test database in place for tests | ||
| 8 | - mysql -e "create database IF NOT EXISTS test;" -uroot | ||
| 7 | 9 | ||
| 8 | install: | 10 | install: |
| 9 | - sudo apt-get install -qq --no-install-recommends perl autotools-dev libdbi-dev libldap2-dev libpq-dev libmysqlclient-dev libfreeradius-client-dev libkrb5-dev libnet-snmp-perl procps | 11 | - sudo apt-get install -qq --no-install-recommends perl autotools-dev libdbi-dev libldap2-dev libpq-dev libmysqlclient-dev libfreeradius-client-dev libkrb5-dev libnet-snmp-perl procps |
| @@ -326,4 +326,5 @@ Mikael Falkvidd | |||
| 326 | Patric Wust | 326 | Patric Wust |
| 327 | Julius Kriukas | 327 | Julius Kriukas |
| 328 | Patrick McAndrew | 328 | Patrick McAndrew |
| 329 | Alexander Wittig | ||
| 329 | Jason Benguerel | 330 | Jason Benguerel |
diff --git a/lib/utils_base.c b/lib/utils_base.c index addf26bd..4fb6375d 100644 --- a/lib/utils_base.c +++ b/lib/utils_base.c | |||
| @@ -446,6 +446,7 @@ void np_enable_state(char *keyname, int expected_data_version) { | |||
| 446 | char *temp_filename = NULL; | 446 | char *temp_filename = NULL; |
| 447 | char *temp_keyname = NULL; | 447 | char *temp_keyname = NULL; |
| 448 | char *p=NULL; | 448 | char *p=NULL; |
| 449 | int ret; | ||
| 449 | 450 | ||
| 450 | if(this_monitoring_plugin==NULL) | 451 | if(this_monitoring_plugin==NULL) |
| 451 | die(STATE_UNKNOWN, _("This requires np_init to be called")); | 452 | die(STATE_UNKNOWN, _("This requires np_init to be called")); |
| @@ -476,9 +477,13 @@ void np_enable_state(char *keyname, int expected_data_version) { | |||
| 476 | this_state->state_data=NULL; | 477 | this_state->state_data=NULL; |
| 477 | 478 | ||
| 478 | /* Calculate filename */ | 479 | /* Calculate filename */ |
| 479 | asprintf(&temp_filename, "%s/%lu/%s/%s", | 480 | ret = xasprintf(&temp_filename, "%s/%lu/%s/%s", |
| 480 | _np_state_calculate_location_prefix(), (unsigned long)geteuid(), | 481 | _np_state_calculate_location_prefix(), (unsigned long)geteuid(), |
| 481 | this_monitoring_plugin->plugin_name, this_state->name); | 482 | this_monitoring_plugin->plugin_name, this_state->name); |
| 483 | if (ret < 0) | ||
| 484 | die(STATE_UNKNOWN, _("Cannot allocate memory: %s"), | ||
| 485 | strerror(errno)); | ||
| 486 | |||
| 482 | this_state->_filename=temp_filename; | 487 | this_state->_filename=temp_filename; |
| 483 | 488 | ||
| 484 | this_monitoring_plugin->state = this_state; | 489 | this_monitoring_plugin->state = this_state; |
| @@ -614,8 +619,8 @@ void np_state_write_string(time_t data_time, char *data_string) { | |||
| 614 | 619 | ||
| 615 | /* If file doesn't currently exist, create directories */ | 620 | /* If file doesn't currently exist, create directories */ |
| 616 | if(access(this_monitoring_plugin->state->_filename,F_OK)!=0) { | 621 | if(access(this_monitoring_plugin->state->_filename,F_OK)!=0) { |
| 617 | asprintf(&directories, "%s", this_monitoring_plugin->state->_filename); | 622 | result = xasprintf(&directories, "%s", this_monitoring_plugin->state->_filename); |
| 618 | if(directories==NULL) | 623 | if(result < 0) |
| 619 | die(STATE_UNKNOWN, _("Cannot allocate memory: %s"), | 624 | die(STATE_UNKNOWN, _("Cannot allocate memory: %s"), |
| 620 | strerror(errno)); | 625 | strerror(errno)); |
| 621 | 626 | ||
| @@ -633,8 +638,8 @@ void np_state_write_string(time_t data_time, char *data_string) { | |||
| 633 | np_free(directories); | 638 | np_free(directories); |
| 634 | } | 639 | } |
| 635 | 640 | ||
| 636 | asprintf(&temp_file,"%s.XXXXXX",this_monitoring_plugin->state->_filename); | 641 | result = xasprintf(&temp_file,"%s.XXXXXX",this_monitoring_plugin->state->_filename); |
| 637 | if(temp_file==NULL) | 642 | if(result < 0) |
| 638 | die(STATE_UNKNOWN, _("Cannot allocate memory: %s"), | 643 | die(STATE_UNKNOWN, _("Cannot allocate memory: %s"), |
| 639 | strerror(errno)); | 644 | strerror(errno)); |
| 640 | 645 | ||
diff --git a/plugins/check_dig.c b/plugins/check_dig.c index d9481f2d..d899b119 100644 --- a/plugins/check_dig.c +++ b/plugins/check_dig.c | |||
| @@ -94,8 +94,8 @@ main (int argc, char **argv) | |||
| 94 | timeout_interval_dig = timeout_interval / number_tries + number_tries; | 94 | timeout_interval_dig = timeout_interval / number_tries + number_tries; |
| 95 | 95 | ||
| 96 | /* get the command to run */ | 96 | /* get the command to run */ |
| 97 | xasprintf (&command_line, "%s @%s -p %d %s -t %s %s %s +tries=%d +time=%d", | 97 | xasprintf (&command_line, "%s %s %s -p %d @%s %s %s +tries=%d +time=%d", |
| 98 | PATH_TO_DIG, dns_server, server_port, query_address, record_type, dig_args, query_transport, number_tries, timeout_interval_dig); | 98 | PATH_TO_DIG, dig_args, query_transport, server_port, dns_server, query_address, record_type, number_tries, timeout_interval_dig); |
| 99 | 99 | ||
| 100 | alarm (timeout_interval); | 100 | alarm (timeout_interval); |
| 101 | gettimeofday (&tv, NULL); | 101 | gettimeofday (&tv, NULL); |
| @@ -296,7 +296,10 @@ process_arguments (int argc, char **argv) | |||
| 296 | dns_server = argv[c]; | 296 | dns_server = argv[c]; |
| 297 | } | 297 | } |
| 298 | else { | 298 | else { |
| 299 | dns_server = strdup ("127.0.0.1"); | 299 | if (strcmp(query_transport,"-6") == 0) |
| 300 | dns_server = strdup("::1"); | ||
| 301 | else | ||
| 302 | dns_server = strdup ("127.0.0.1"); | ||
| 300 | } | 303 | } |
| 301 | } | 304 | } |
| 302 | 305 | ||
diff --git a/plugins/t/check_dns.t b/plugins/t/check_dns.t index b8858807..035e7682 100644 --- a/plugins/t/check_dns.t +++ b/plugins/t/check_dns.t | |||
| @@ -10,7 +10,7 @@ use NPTest; | |||
| 10 | 10 | ||
| 11 | plan skip_all => "check_dns not compiled" unless (-x "check_dns"); | 11 | plan skip_all => "check_dns not compiled" unless (-x "check_dns"); |
| 12 | 12 | ||
| 13 | plan tests => 14; | 13 | plan tests => 16; |
| 14 | 14 | ||
| 15 | my $successOutput = '/DNS OK: [\.0-9]+ seconds? response time/'; | 15 | my $successOutput = '/DNS OK: [\.0-9]+ seconds? response time/'; |
| 16 | 16 | ||
| @@ -43,6 +43,12 @@ my $dns_server = getTestParameter( | |||
| 43 | "A non default (remote) DNS server", | 43 | "A non default (remote) DNS server", |
| 44 | ); | 44 | ); |
| 45 | 45 | ||
| 46 | my $host_nonresponsive = getTestParameter( | ||
| 47 | "NP_HOST_NONRESPONSIVE", | ||
| 48 | "The hostname of system not responsive to network requests", | ||
| 49 | "10.0.0.1", | ||
| 50 | ); | ||
| 51 | |||
| 46 | my $res; | 52 | my $res; |
| 47 | 53 | ||
| 48 | $res = NPTest->testCmd("./check_dns -H $hostname_valid -t 5"); | 54 | $res = NPTest->testCmd("./check_dns -H $hostname_valid -t 5"); |
| @@ -66,6 +72,10 @@ like ( $res->output, $successOutput, "Output OK" ); | |||
| 66 | $res = NPTest->testCmd("./check_dns -H $hostname_invalid -s $dns_server -t 1"); | 72 | $res = NPTest->testCmd("./check_dns -H $hostname_invalid -s $dns_server -t 1"); |
| 67 | cmp_ok( $res->return_code, '==', 2, "Invalid $hostname_invalid on $dns_server"); | 73 | cmp_ok( $res->return_code, '==', 2, "Invalid $hostname_invalid on $dns_server"); |
| 68 | 74 | ||
| 75 | $res = NPTest->testCmd("./check_dns -H $hostname_valid -a $hostname_valid_ip -s $host_nonresponsive -t 2"); | ||
| 76 | cmp_ok( $res->return_code, '==', 2, "Got no answer from unresponsive server"); | ||
| 77 | like ( $res->output, "/CRITICAL - /", "Output OK"); | ||
| 78 | |||
| 69 | $res = NPTest->testCmd("./check_dns -H $hostname_valid -a $hostname_valid_ip -t 5"); | 79 | $res = NPTest->testCmd("./check_dns -H $hostname_valid -a $hostname_valid_ip -t 5"); |
| 70 | cmp_ok( $res->return_code, '==', 0, "Got expected address"); | 80 | cmp_ok( $res->return_code, '==', 0, "Got expected address"); |
| 71 | 81 | ||
diff --git a/tools/generate-change-log b/tools/generate-change-log index 3a6b38e7..ad19ce96 100755 --- a/tools/generate-change-log +++ b/tools/generate-change-log | |||
| @@ -19,6 +19,7 @@ use Text::Wrap; | |||
| 19 | 19 | ||
| 20 | # The lines will have a length of no more than $columns - 1. | 20 | # The lines will have a length of no more than $columns - 1. |
| 21 | $Text::Wrap::columns = 81; | 21 | $Text::Wrap::columns = 81; |
| 22 | $Text::Wrap::huge = 'overflow'; | ||
| 22 | 23 | ||
| 23 | if (system('git rev-parse --git-dir >/dev/null 2>&1') != 0) { | 24 | if (system('git rev-parse --git-dir >/dev/null 2>&1') != 0) { |
| 24 | print "Not a Git repository, so I won't update the ChangeLog.\n"; | 25 | print "Not a Git repository, so I won't update the ChangeLog.\n"; |
| @@ -51,6 +52,7 @@ while ($git_log =~ /$regex/gm) { | |||
| 51 | $prev_date = $commit{date}; | 52 | $prev_date = $commit{date}; |
| 52 | $prev_name = $commit{name}; | 53 | $prev_name = $commit{name}; |
| 53 | $prev_email = $commit{email}; | 54 | $prev_email = $commit{email}; |
| 55 | $commit{message} =~ s/\s*Signed\-off\-by.*$//sgmx; | ||
| 54 | 56 | ||
| 55 | my @files = split(/\n/, $commit{files}); | 57 | my @files = split(/\n/, $commit{files}); |
| 56 | my @message = map { s/^ {4}//; $_ } split(/\n/, $commit{message}); | 58 | my @message = map { s/^ {4}//; $_ } split(/\n/, $commit{message}); |
