This patch adds support for setting a unsigned integer value.
---
 dlm_controld/dlm_daemon.h | 4 ++++
 dlm_controld/main.c       | 3 +++
 2 files changed, 7 insertions(+)

diff --git a/dlm_controld/dlm_daemon.h b/dlm_controld/dlm_daemon.h
index 5b9a52da..9fe56df2 100644
--- a/dlm_controld/dlm_daemon.h
+++ b/dlm_controld/dlm_daemon.h
@@ -86,6 +86,7 @@ enum {
         req_arg_bool = 1,
         req_arg_int = 2,
         req_arg_str = 3,
+        req_arg_uint = 4,
 };
 
 enum {
@@ -125,6 +126,7 @@ struct dlm_option {
 
        int use_int;
        char *use_str;
+       unsigned int use_uint;
 
        int default_int;
        const char *default_str;
@@ -132,6 +134,7 @@ struct dlm_option {
        int cli_set;
        int cli_int;
        char *cli_str;
+       unsigned int cli_uint;
 
        int file_set;
        int file_int;
@@ -141,6 +144,7 @@ struct dlm_option {
 EXTERN struct dlm_option dlm_options[dlm_options_max];
 #define opt(x) dlm_options[x].use_int
 #define opts(x) dlm_options[x].use_str
+#define optu(x) dlm_options[x].use_uint
 
 
 /* DLM_LOCKSPACE_LEN: maximum lockspace name length, from linux/dlmconstants.h.
diff --git a/dlm_controld/main.c b/dlm_controld/main.c
index 8be6a4bc..b4f4ffb8 100644
--- a/dlm_controld/main.c
+++ b/dlm_controld/main.c
@@ -1972,6 +1972,9 @@ static void set_opt_cli(int argc, char **argv)
                } else if (o->req_arg == req_arg_bool) {
                        o->cli_int = atoi(arg_str) ? 1 : 0;
                        o->use_int = o->cli_int;
+               } else if (o->req_arg == req_arg_uint) {
+                       o->cli_uint = strtoul(arg_str, NULL, 0);
+                       o->use_uint = o->cli_uint;
                }
        }
 
-- 
2.26.2

Reply via email to