Commit 292535fe authored by Frédéric Leroy's avatar Frédéric Leroy

refactor(conf2uedata.c): rewrite main() and add parse_config_file()

parent 804595d4
...@@ -8,21 +8,19 @@ ...@@ -8,21 +8,19 @@
char * make_filename(const char *output_dir, const char *filename, int ueid); char * make_filename(const char *output_dir, const char *filename, int ueid);
int get_config_from_file(const char *filename, config_t *config); int get_config_from_file(const char *filename, config_t *config);
int parse_config_file(const char *filename);
int main(int argc, char**argv) { int main(int argc, char**argv) {
int rc = EXIT_SUCCESS;
int option; int option;
const char* conf_file = NULL; const char* conf_file = NULL;
while ((option = getopt(argc, argv, options)) != -1) { while ((option = getopt(argc, argv, options)) != -1) {
switch (option) { switch (option) {
case 'c': case 'c':
parse_data = TRUE;
conf_file = optarg; conf_file = optarg;
break; break;
case 'o': case 'o':
output_dir = optarg; output_dir = optarg;
output = TRUE;
break; break;
case 'h': case 'h':
_display_usage(); _display_usage();
...@@ -33,89 +31,90 @@ int main(int argc, char**argv) { ...@@ -33,89 +31,90 @@ int main(int argc, char**argv) {
} }
} }
if (output == FALSE && parse_data == TRUE) { if (output_dir == NULL ) {
printf("No output option found\n"); printf("No output option found\n");
_display_usage(); _display_usage();
return EXIT_FAILURE; return EXIT_FAILURE;
} }
if (output == TRUE && parse_data == FALSE) { if ( conf_file == NULL ) {
printf("No Configuration file is given\n"); printf("No Configuration file is given\n");
_display_usage(); _display_usage();
return EXIT_FAILURE; return EXIT_FAILURE;
} }
if (parse_data == FALSE && print_data == FALSE) { if ( parse_config_file(conf_file) == EXIT_FAILURE ) {
printf("No options found\n"); exit(EXIT_FAILURE);
_display_usage(); }
return EXIT_FAILURE;
}
if (parse_data) { exit(EXIT_SUCCESS);
int ret;
int ue_nb = 0;
config_setting_t *root_setting = NULL;
config_setting_t *ue_setting = NULL;
config_setting_t *all_plmn_setting = NULL;
char user[10];
config_t cfg;
ret = get_config_from_file(conf_file, &cfg); }
if (ret == EXIT_FAILURE) {
exit(1); int parse_config_file(const char *filename) {
} int rc = EXIT_SUCCESS;
int ret;
int ue_nb = 0;
config_setting_t *root_setting = NULL;
config_setting_t *ue_setting = NULL;
config_setting_t *all_plmn_setting = NULL;
char user[10];
config_t cfg;
ret = get_config_from_file(filename, &cfg);
if (ret == EXIT_FAILURE) {
exit(1);
}
root_setting = config_root_setting(&cfg); root_setting = config_root_setting(&cfg);
ue_nb = config_setting_length(root_setting) - 1; ue_nb = config_setting_length(root_setting) - 1;
all_plmn_setting = config_setting_get_member(root_setting, PLMN); all_plmn_setting = config_setting_get_member(root_setting, PLMN);
if (all_plmn_setting == NULL) { if (all_plmn_setting == NULL) {
printf("NO PLMN SECTION...EXITING...\n"); printf("NO PLMN SECTION...EXITING...\n");
return (EXIT_FAILURE); return (EXIT_FAILURE);
}
rc = parse_plmns(all_plmn_setting);
if (rc == EXIT_FAILURE) {
return rc;
}
fill_network_record_list();
for (int i = 0; i < ue_nb; i++) {
sprintf(user, "%s%d", UE, i);
ue_setting = config_setting_get_member(root_setting, user);
if (ue_setting == NULL) {
printf("Check UE%d settings\n", i);
return EXIT_FAILURE;
} }
rc = parse_plmns(all_plmn_setting); rc = parse_ue_user_param(ue_setting, i);
if (rc == EXIT_FAILURE) { if (rc != EXIT_SUCCESS) {
return rc; printf("Problem in USER section for UE%d. EXITING...\n", i);
return EXIT_FAILURE;
} }
fill_network_record_list(); _display_ue_data(i);
for (int i = 0; i < ue_nb; i++) { rc = parse_ue_sim_param(ue_setting, i);
sprintf(user, "%s%d", UE, i); if (rc != EXIT_SUCCESS) {
printf("Problem in SIM section for UE%d. EXITING...\n", i);
ue_setting = config_setting_get_member(root_setting, user); return EXIT_FAILURE;
if (ue_setting == NULL) {
printf("Check UE%d settings\n", i);
return EXIT_FAILURE;
}
rc = parse_ue_user_param(ue_setting, i);
if (rc != EXIT_SUCCESS) {
printf("Problem in USER section for UE%d. EXITING...\n", i);
return EXIT_FAILURE;
}
_display_ue_data(i);
rc = parse_ue_sim_param(ue_setting, i);
if (rc != EXIT_SUCCESS) {
printf("Problem in SIM section for UE%d. EXITING...\n", i);
return EXIT_FAILURE;
}
rc = parse_ue_plmn_param(ue_setting, i);
if (rc != EXIT_SUCCESS) {
return EXIT_FAILURE;
}
gen_emm_data(i);
_display_emm_data(i);
gen_usim_data(i);
_display_usim_data(i);
} }
config_destroy(&cfg);
}
exit(EXIT_SUCCESS);
rc = parse_ue_plmn_param(ue_setting, i);
if (rc != EXIT_SUCCESS) {
return EXIT_FAILURE;
}
gen_emm_data(i);
_display_emm_data(i);
gen_usim_data(i);
_display_usim_data(i);
}
config_destroy(&cfg);
return(EXIT_SUCCESS);
} }
int get_config_from_file(const char *filename, config_t *config) { int get_config_from_file(const char *filename, config_t *config) {
......
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