From 9ff89b1a99926ebfeaeba7f415ae74f93eaef0a5 Mon Sep 17 00:00:00 2001 From: Ton Voon Date: Tue, 22 Jun 2010 11:47:54 +0100 Subject: Added np_set_args, to set arguments after np_extra_opts has been run diff --git a/lib/tests/test_utils.c b/lib/tests/test_utils.c index 4f761a6..deb592d 100644 --- a/lib/tests/test_utils.c +++ b/lib/tests/test_utils.c @@ -40,7 +40,7 @@ main (int argc, char **argv) char *temp_filename; FILE *temp_fp; - plan_tests(137); + plan_tests(141); ok( this_nagios_plugin==NULL, "nagios_plugin not initialised"); @@ -49,6 +49,15 @@ main (int argc, char **argv) ok( this_nagios_plugin!=NULL, "nagios_plugin now initialised"); ok( !strcmp(this_nagios_plugin->plugin_name, "check_test"), "plugin name initialised" ); + ok( this_nagios_plugin->argc==argc, "Argc set" ); + ok( this_nagios_plugin->argv==argv, "Argv set" ); + + np_set_args(0,0); + + ok( this_nagios_plugin->argc==0, "argc changed" ); + ok( this_nagios_plugin->argv==0, "argv changed" ); + + np_set_args(argc, argv); range = parse_range_string("6"); ok( range != NULL, "'6' is valid range"); diff --git a/lib/utils_base.c b/lib/utils_base.c index 4e8d2ef..6de92cb 100644 --- a/lib/utils_base.c +++ b/lib/utils_base.c @@ -48,11 +48,22 @@ void np_init( char *plugin_name, int argc, char **argv ) { } } +void np_set_args( int argc, char **argv ) { + if (this_nagios_plugin==NULL) + die(STATE_UNKNOWN, _("This requires np_init to be called")); + + this_nagios_plugin->argc = argc; + this_nagios_plugin->argv = argv; +} + + void np_cleanup() { if (this_nagios_plugin!=NULL) { if(this_nagios_plugin->state!=NULL) { - np_free(this_nagios_plugin->state->state_data->data); - np_free(this_nagios_plugin->state->state_data); + if(this_nagios_plugin->state->state_data) { + np_free(this_nagios_plugin->state->state_data->data); + np_free(this_nagios_plugin->state->state_data); + } np_free(this_nagios_plugin->state->name); np_free(this_nagios_plugin->state); } diff --git a/lib/utils_base.h b/lib/utils_base.h index 2fbdfbe..0cb371f 100644 --- a/lib/utils_base.h +++ b/lib/utils_base.h @@ -99,6 +99,7 @@ state_data *np_state_read(); void np_state_write_string(time_t, char *); void np_init(char *, int argc, char **argv); +void np_set_args(int argc, char **argv); void np_cleanup(); #endif /* _UTILS_BASE_ */ -- cgit v0.10-9-g596f