Commit 30cbb111 authored by Mike Rapoport's avatar Mike Rapoport Committed by Andrei Vagin

criu/config: allow init_config properly handle -h/--help

When config parsing was split into a separate part the handling of
-h/--help option during init_config was broken. Fix it.
Signed-off-by: 's avatarMike Rapoport <rppt@linux.vnet.ibm.com>
Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
parent 0322077d
...@@ -184,16 +184,15 @@ static void init_configuration(int argc, char *argv[], int defaults_forbidden) ...@@ -184,16 +184,15 @@ static void init_configuration(int argc, char *argv[], int defaults_forbidden)
} }
} }
void init_config(int argc, char **argv, int *global_cfg_argc, int *user_cfg_argc) int init_config(int argc, char **argv, int *global_cfg_argc, int *user_cfg_argc,
bool *usage_error)
{ {
int help_or_configs; int help_or_configs;
bool usage_error;
help_or_configs = passed_help_or_defaults_forbidden(argc, argv); help_or_configs = passed_help_or_defaults_forbidden(argc, argv);
if (help_or_configs == 1) { if (help_or_configs == 1) {
usage_error = false; *usage_error = false;
printf("goto usage: %d\n", usage_error); return 1;
return;
} }
init_configuration(argc, argv, (help_or_configs == DEFAULT_CONFIGS_FORBIDDEN)); init_configuration(argc, argv, (help_or_configs == DEFAULT_CONFIGS_FORBIDDEN));
...@@ -201,4 +200,6 @@ void init_config(int argc, char **argv, int *global_cfg_argc, int *user_cfg_argc ...@@ -201,4 +200,6 @@ void init_config(int argc, char **argv, int *global_cfg_argc, int *user_cfg_argc
*global_cfg_argc = count_elements(global_conf); *global_cfg_argc = count_elements(global_conf);
if (user_conf != NULL) if (user_conf != NULL)
*user_cfg_argc = count_elements(user_conf); *user_cfg_argc = count_elements(user_conf);
return 0;
} }
...@@ -395,7 +395,10 @@ int main(int argc, char *argv[], char *envp[]) ...@@ -395,7 +395,10 @@ int main(int argc, char *argv[], char *envp[])
return cr_service_work(atoi(argv[2])); return cr_service_work(atoi(argv[2]));
} }
init_config(argc, argv, &global_cfg_argc, &user_cfg_argc); ret = init_config(argc, argv, &global_cfg_argc, &user_cfg_argc,
&usage_error);
if (ret)
goto usage;
while (1) { while (1) {
idx = -1; idx = -1;
......
...@@ -32,8 +32,9 @@ extern int cr_lazy_pages(bool daemon); ...@@ -32,8 +32,9 @@ extern int cr_lazy_pages(bool daemon);
extern int check_add_feature(char *arg); extern int check_add_feature(char *arg);
extern void pr_check_features(const char *offset, const char *sep, int width); extern void pr_check_features(const char *offset, const char *sep, int width);
extern void init_config(int argc, char **argv, extern int init_config(int argc, char **argv,
int *global_cfg_argc, int *user_cfg_argc); int *global_cfg_argc, int *user_cfg_argc,
bool *usage_error);
#define PPREP_HEAD_INACTIVE ((struct pprep_head *)-1) #define PPREP_HEAD_INACTIVE ((struct pprep_head *)-1)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment