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