2022-06-02 14:07 GMT+09:00, Hyunchul Lee <hyc.lee@xxxxxxxxx>: > Hi Namjae, > > 2022년 6월 2일 (목) 오전 10:14, Namjae Jeon <linkinjeon@xxxxxxxxxx>님이 작성: >> >> Add missing long option in adduser/addshare/control. >> >> Reported-by: David Howells <dhowells@xxxxxxxxxx> >> Signed-off-by: Namjae Jeon <linkinjeon@xxxxxxxxxx> >> --- >> addshare/addshare.c | 11 ++++++++++- >> adduser/adduser.c | 12 +++++++++++- >> control/control.c | 9 ++++++++- >> 3 files changed, 29 insertions(+), 3 deletions(-) >> >> diff --git a/addshare/addshare.c b/addshare/addshare.c >> index 4d25047..a8ba71a 100644 >> --- a/addshare/addshare.c >> +++ b/addshare/addshare.c >> @@ -54,6 +54,15 @@ static void usage(void) >> exit(EXIT_FAILURE); >> } >> >> +static const struct option opts[] = { >> + {"add-share", required_argument, NULL, 'a' }, >> + {"del-share", required_argument, NULL, 'd' }, >> + {"update-share", required_argument, NULL, 'u' }, >> + {"options", required_argument, NULL, 'o' }, >> + {"version", no_argument, NULL, 'V' }, >> + {"verbose", no_argument, NULL, 'v' }, >> +}; > > We have to add the last element, {NULL, 0, NULL, 0} to avoid > Segment Fault. otherwise Looks good to me. Good catch. fixed it on v2. Thanks! > >> + >> static void show_version(void) >> { >> printf("ksmbd-tools version : %s\n", KSMBD_TOOLS_VERSION); >> @@ -102,7 +111,7 @@ int main(int argc, char *argv[]) >> set_logger_app_name("ksmbd.addshare"); >> >> opterr = 0; >> - while ((c = getopt(argc, argv, "c:a:d:u:p:o:Vvh")) != EOF) >> + while ((c = getopt_long(argc, argv, "c:a:d:u:p:o:Vvh", opts, >> NULL)) != EOF) >> switch (c) { >> case 'a': >> arg_name = g_ascii_strdown(optarg, >> strlen(optarg)); >> diff --git a/adduser/adduser.c b/adduser/adduser.c >> index 88b12db..60a059d 100644 >> --- a/adduser/adduser.c >> +++ b/adduser/adduser.c >> @@ -50,6 +50,16 @@ static void usage(void) >> exit(EXIT_FAILURE); >> } >> >> +static const struct option opts[] = { >> + {"add-user", required_argument, NULL, 'a' }, >> + {"del-user", required_argument, NULL, 'd' }, >> + {"update-user", required_argument, NULL, 'u' }, >> + {"password", required_argument, NULL, 'p' }, >> + {"import-users", required_argument, NULL, 'i' }, >> + {"version", no_argument, NULL, 'V' }, >> + {"verbose", no_argument, NULL, 'v' }, >> +}; >> + >> static void show_version(void) >> { >> printf("ksmbd-tools version : %s\n", KSMBD_TOOLS_VERSION); >> @@ -102,7 +112,7 @@ int main(int argc, char *argv[]) >> set_logger_app_name("ksmbd.adduser"); >> >> opterr = 0; >> - while ((c = getopt(argc, argv, "c:i:a:d:u:p:Vvh")) != EOF) >> + while ((c = getopt_long(argc, argv, "c:i:a:d:u:p:Vvh", opts, >> NULL)) != EOF) >> switch (c) { >> case 'a': >> arg_account = g_strdup(optarg); >> diff --git a/control/control.c b/control/control.c >> index 780a48a..3dc8c7e 100644 >> --- a/control/control.c >> +++ b/control/control.c >> @@ -23,6 +23,13 @@ static void usage(void) >> exit(EXIT_FAILURE); >> } >> >> +static const struct option opts[] = { >> + {"shutdown", no_argument, NULL, 's' }, >> + {"debug", required_argument, NULL, 'd' }, >> + {"ksmbd-version", no_argument, NULL, 'c' }, >> + {"version", no_argument, NULL, 'V' }, >> +}; >> + >> static void show_version(void) >> { >> printf("ksmbd-tools version : %s\n", KSMBD_TOOLS_VERSION); >> @@ -101,7 +108,7 @@ int main(int argc, char *argv[]) >> } >> >> opterr = 0; >> - while ((c = getopt(argc, argv, "sd:cVh")) != EOF) >> + while ((c = getopt_long(argc, argv, "sd:cVh", opts, NULL)) != >> EOF) >> switch (c) { >> case 's': >> ret = ksmbd_control_shutdown(); >> -- >> 2.25.1 >> > > > -- > Thanks, > Hyunchul >