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

Reply via email to