This patch adds suppot to handle default values for unsigned int. --- dlm_controld/dlm_daemon.h | 1 + dlm_controld/main.c | 61 +++++++++++++++++++++------------------ 2 files changed, 34 insertions(+), 28 deletions(-)
diff --git a/dlm_controld/dlm_daemon.h b/dlm_controld/dlm_daemon.h index 979aab7a..ee21c256 100644 --- a/dlm_controld/dlm_daemon.h +++ b/dlm_controld/dlm_daemon.h @@ -134,6 +134,7 @@ struct dlm_option { int default_int; const char *default_str; + unsigned int default_uint; int cli_set; int cli_int; diff --git a/dlm_controld/main.c b/dlm_controld/main.c index 95107d09..8023f4b0 100644 --- a/dlm_controld/main.c +++ b/dlm_controld/main.c @@ -1678,6 +1678,8 @@ static void print_usage(void) printf(" [%d]\n", o->default_int); else if (o->req_arg == req_arg_bool) printf(" [%d]\n", o->default_int); + else if (o->req_arg == req_arg_uint) + printf(" [%u]\n", o->default_uint); else if (o->req_arg == no_arg && !o->default_int) printf(" [0]\n"); else @@ -1688,7 +1690,8 @@ static void print_usage(void) } static void set_opt_default(int ind, const char *name, char letter, int arg_type, - int default_int, const char *default_str, const char *desc) + int default_int, const char *default_str, + unsigned int default_uint, const char *desc) { dlm_options[ind].name = name; dlm_options[ind].letter = letter; @@ -1696,145 +1699,147 @@ static void set_opt_default(int ind, const char *name, char letter, int arg_type dlm_options[ind].desc = desc; dlm_options[ind].default_int = default_int; dlm_options[ind].default_str = default_str; + dlm_options[ind].default_uint = default_uint; dlm_options[ind].use_int = default_int; dlm_options[ind].use_str = (char *)default_str; + dlm_options[ind].use_uint = default_uint; } static void set_opt_defaults(void) { set_opt_default(daemon_debug_ind, "daemon_debug", 'D', no_arg, - 0, NULL, + 0, NULL, 0, "enable debugging to stderr and don't fork"); set_opt_default(foreground_ind, "foreground", '\0', no_arg, - 0, NULL, + 0, NULL, 0, "don't fork"); set_opt_default(log_debug_ind, "log_debug", 'K', no_arg, - 0, NULL, + 0, NULL, 0, "enable kernel dlm debugging messages"); set_opt_default(timewarn_ind, "timewarn", '\0', req_arg_int, - 0, NULL, + 0, NULL, 0, ""); /* do not advertise */ set_opt_default(protocol_ind, "protocol", 'r', req_arg_str, - -1, "detect", + -1, "detect", 0, "dlm kernel lowcomms protocol: tcp, sctp, detect"); set_opt_default(bind_all_ind, "bind_all", '\0', req_arg_int, - 0, NULL, + 0, NULL, 0, ""); /* do not advertise */ set_opt_default(mark_ind, "mark", '\0', req_arg_uint, - 0, NULL, + 0, NULL, 0, "set mark value for the DLM in-kernel listen socket"); set_opt_default(debug_logfile_ind, "debug_logfile", 'L', no_arg, - 0, NULL, + 0, NULL, 0, "write debugging to log file"); set_opt_default(enable_fscontrol_ind, "enable_fscontrol", '\0', req_arg_bool, - 0, NULL, + 0, NULL, 0, ""); /* do not advertise */ set_opt_default(enable_plock_ind, "enable_plock", 'p', req_arg_bool, - 1, NULL, + 1, NULL, 0, "enable/disable posix lock support for cluster fs"); set_opt_default(enable_waitplock_recovery_ind, "enable_waitplock_recovery", '\0', req_arg_bool, - 0, NULL, + 0, NULL, 0, "enable/disable posix lock to wait for dlm recovery after lock acquire"); set_opt_default(plock_debug_ind, "plock_debug", 'P', no_arg, - 0, NULL, + 0, NULL, 0, "enable plock debugging"); set_opt_default(plock_rate_limit_ind, "plock_rate_limit", 'l', req_arg_int, - 0, NULL, + 0, NULL, 0, "limit rate of plock operations (0 for none)"); set_opt_default(plock_ownership_ind, "plock_ownership", 'o', req_arg_bool, - 0, NULL, + 0, NULL, 0, "enable/disable plock ownership"); set_opt_default(drop_resources_time_ind, "drop_resources_time", 't', req_arg_int, - 10000, NULL, + 10000, NULL, 0, "plock ownership drop resources time (milliseconds)"); set_opt_default(drop_resources_count_ind, "drop_resources_count", 'c', req_arg_int, - 10, NULL, + 10, NULL, 0, "plock ownership drop resources count"); set_opt_default(drop_resources_age_ind, "drop_resources_age", 'a', req_arg_int, - 10000, NULL, + 10000, NULL, 0, "plock ownership drop resources age (milliseconds)"); set_opt_default(post_join_delay_ind, "post_join_delay", 'j', req_arg_int, - 30, NULL, + 30, NULL, 0, "seconds to delay fencing after cluster join"); set_opt_default(enable_fencing_ind, "enable_fencing", 'f', req_arg_bool, - 1, NULL, + 1, NULL, 0, "enable/disable fencing"); set_opt_default(enable_concurrent_fencing_ind, "enable_concurrent_fencing", '\0', req_arg_bool, - 0, NULL, + 0, NULL, 0, "enable/disable concurrent fencing"); set_opt_default(enable_startup_fencing_ind, "enable_startup_fencing", 's', req_arg_bool, - 1, NULL, + 1, NULL, 0, "enable/disable startup fencing"); set_opt_default(repeat_failed_fencing_ind, "repeat_failed_fencing", '\0', req_arg_bool, - 1, NULL, + 1, NULL, 0, "enable/disable retrying after fencing fails"); set_opt_default(enable_quorum_fencing_ind, "enable_quorum_fencing", 'q', req_arg_bool, - 1, NULL, + 1, NULL, 0, "enable/disable quorum requirement for fencing"); set_opt_default(enable_quorum_lockspace_ind, "enable_quorum_lockspace", '\0', req_arg_bool, - 1, NULL, + 1, NULL, 0, "enable/disable quorum requirement for lockspace operations"); set_opt_default(enable_helper_ind, "enable_helper", '\0', req_arg_bool, - 1, NULL, + 1, NULL, 0, "enable/disable helper process for running commands"); set_opt_default(help_ind, "help", 'h', no_arg, - -1, NULL, + -1, NULL, 0, "print this help, then exit"); set_opt_default(version_ind, "version", 'V', no_arg, - -1, NULL, + -1, NULL, 0, "Print program version information, then exit"); } -- 2.26.2