73 lines
1.6 KiB
C++
73 lines
1.6 KiB
C++
#include <cstdlib>
|
|
#include <cstdio>
|
|
#include <iostream>
|
|
|
|
#include "options.h"
|
|
|
|
static struct sic_conf args_info;
|
|
|
|
using std::cout;
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
int result = 0;
|
|
|
|
struct cmd_parser_params *params;
|
|
|
|
/* initialize the parameters structure */
|
|
params = cmd_parser_params_create();
|
|
|
|
/* call the command line parser */
|
|
if (cmd_parser(argc, argv, &args_info) != 0) {
|
|
result = 1;
|
|
goto stop;
|
|
}
|
|
|
|
/*
|
|
override command line options,
|
|
but do not initialize args_info, check for required options.
|
|
NOTICE: we must NOT skip the 0 assignment to initialize,
|
|
since its default value is 1 and override defaults to 0
|
|
while check_required is already set to its default value, 1
|
|
*/
|
|
params->initialize = 1;
|
|
params->override = 0;
|
|
|
|
/* call the config file parser */
|
|
if (cmd_parser_config_file
|
|
(args_info.conffile_arg, &args_info, params) != 0) {
|
|
result = 1;
|
|
goto stop;
|
|
}
|
|
|
|
|
|
//debugcode:
|
|
cout << "value of port: " << args_info.port_arg << std::endl;
|
|
cout << "value of daemonize: " <<
|
|
static_cast<bool>(args_info.daemonize_flag) <<
|
|
std::endl;
|
|
|
|
cout << "value of listen_given: "<<
|
|
args_info.listen_given << std::endl ;
|
|
for (unsigned int i = 0; i < args_info.listen_given; i++)
|
|
cout << "value of listen: " <<
|
|
args_info.listen_arg[i] <<std::endl;
|
|
|
|
if (args_info.saveconf_given) {
|
|
if (cmd_parser_file_save
|
|
(args_info.conffile_arg, &args_info) == EXIT_FAILURE)
|
|
result = 1;
|
|
else
|
|
cout << "saved configuration file "<<
|
|
args_info.conffile_arg <<
|
|
", \n" << std::endl;
|
|
}
|
|
|
|
stop:
|
|
/* deallocate structures */
|
|
cmd_parser_free(&args_info);
|
|
free(params);
|
|
|
|
return result;
|
|
}
|