diff options
Diffstat (limited to 'ggsn/cmdline.h')
-rw-r--r-- | ggsn/cmdline.h | 343 |
1 files changed, 241 insertions, 102 deletions
diff --git a/ggsn/cmdline.h b/ggsn/cmdline.h index 23a6eee..1ce222e 100644 --- a/ggsn/cmdline.h +++ b/ggsn/cmdline.h @@ -1,6 +1,9 @@ -/* cmdline.h */ - -/* File autogenerated by gengetopt version 2.17 */ +/** @file cmdline.h + * @brief The header file for the command line option parser + * generated by GNU Gengetopt version 2.22.6 + * http://www.gnu.org/software/gengetopt. + * DO NOT modify this file, since it can be overwritten + * @author GNU Gengetopt by Lorenzo Bettini */ #ifndef CMDLINE_H #define CMDLINE_H @@ -10,116 +13,252 @@ #include "config.h" #endif +#include <stdio.h> /* for FILE */ + #ifdef __cplusplus extern "C" { -#endif /* __cplusplus */ +#endif /* __cplusplus */ #ifndef CMDLINE_PARSER_PACKAGE +/** @brief the program name (used for printing errors) */ #define CMDLINE_PARSER_PACKAGE PACKAGE #endif +#ifndef CMDLINE_PARSER_PACKAGE_NAME +/** @brief the complete program name (used for help and version) */ +#ifdef PACKAGE_NAME +#define CMDLINE_PARSER_PACKAGE_NAME PACKAGE_NAME +#else +#define CMDLINE_PARSER_PACKAGE_NAME PACKAGE +#endif +#endif + #ifndef CMDLINE_PARSER_VERSION +/** @brief the program version */ #define CMDLINE_PARSER_VERSION VERSION #endif - struct gengetopt_args_info { - const char *help_help; /* Print help and exit help description. */ - const char *version_help; /* Print version and exit help description. */ - int fg_flag; /* Run in foreground (default=off). */ - const char *fg_help; /* Run in foreground help description. */ - int debug_flag; /* Run in debug mode (default=off). */ - const char *debug_help; /* Run in debug mode help description. */ - char *conf_arg; /* Read configuration file (default='/etc/ggsn.conf'). */ - char *conf_orig; /* Read configuration file original value given at command line. */ - const char *conf_help; /* Read configuration file help description. */ - char *pidfile_arg; /* Filename of process id file (default='/var/run/ggsn.pid'). */ - char *pidfile_orig; /* Filename of process id file original value given at command line. */ - const char *pidfile_help; /* Filename of process id file help description. */ - char *statedir_arg; /* Directory of nonvolatile data (default='/var/lib/ggsn/'). */ - char *statedir_orig; /* Directory of nonvolatile data original value given at command line. */ - const char *statedir_help; /* Directory of nonvolatile data help description. */ - char *listen_arg; /* Local interface. */ - char *listen_orig; /* Local interface original value given at command line. */ - const char *listen_help; /* Local interface help description. */ - char *net_arg; /* Network (default='192.168.0.0/24'). */ - char *net_orig; /* Network original value given at command line. */ - const char *net_help; /* Network help description. */ - char *ipup_arg; /* Script to run after link-up. */ - char *ipup_orig; /* Script to run after link-up original value given at command line. */ - const char *ipup_help; /* Script to run after link-up help description. */ - char *ipdown_arg; /* Script to run after link-down. */ - char *ipdown_orig; /* Script to run after link-down original value given at command line. */ - const char *ipdown_help; /* Script to run after link-down help description. */ - char *dynip_arg; /* Dynamic IP address pool. */ - char *dynip_orig; /* Dynamic IP address pool original value given at command line. */ - const char *dynip_help; /* Dynamic IP address pool help description. */ - char *statip_arg; /* Static IP address pool. */ - char *statip_orig; /* Static IP address pool original value given at command line. */ - const char *statip_help; /* Static IP address pool help description. */ - char *pcodns1_arg; /* PCO DNS Server 1 (default='0.0.0.0'). */ - char *pcodns1_orig; /* PCO DNS Server 1 original value given at command line. */ - const char *pcodns1_help; /* PCO DNS Server 1 help description. */ - char *pcodns2_arg; /* PCO DNS Server 2 (default='0.0.0.0'). */ - char *pcodns2_orig; /* PCO DNS Server 2 original value given at command line. */ - const char *pcodns2_help; /* PCO DNS Server 2 help description. */ - int timelimit_arg; /* Exit after timelimit seconds (default='0'). */ - char *timelimit_orig; /* Exit after timelimit seconds original value given at command line. */ - const char *timelimit_help; /* Exit after timelimit seconds help description. */ - char *apn_arg; /* Access point name (default='internet'). */ - char *apn_orig; /* Access point name original value given at command line. */ - const char *apn_help; /* Access point name help description. */ - int qos_arg; /* Requested quality of service (default='0x0b921f'). */ - char *qos_orig; /* Requested quality of service original value given at command line. */ - const char *qos_help; /* Requested quality of service help description. */ - - int help_given; /* Whether help was given. */ - int version_given; /* Whether version was given. */ - int fg_given; /* Whether fg was given. */ - int debug_given; /* Whether debug was given. */ - int conf_given; /* Whether conf was given. */ - int pidfile_given; /* Whether pidfile was given. */ - int statedir_given; /* Whether statedir was given. */ - int listen_given; /* Whether listen was given. */ - int net_given; /* Whether net was given. */ - int ipup_given; /* Whether ipup was given. */ - int ipdown_given; /* Whether ipdown was given. */ - int dynip_given; /* Whether dynip was given. */ - int statip_given; /* Whether statip was given. */ - int pcodns1_given; /* Whether pcodns1 was given. */ - int pcodns2_given; /* Whether pcodns2 was given. */ - int timelimit_given; /* Whether timelimit was given. */ - int apn_given; /* Whether apn was given. */ - int qos_given; /* Whether qos was given. */ - - }; - - extern const char *gengetopt_args_info_purpose; - extern const char *gengetopt_args_info_usage; - extern const char *gengetopt_args_info_help[]; - - int cmdline_parser(int argc, char *const *argv, - struct gengetopt_args_info *args_info); - int cmdline_parser2(int argc, char *const *argv, - struct gengetopt_args_info *args_info, - int override, int initialize, int check_required); - int cmdline_parser_file_save(const char *filename, - struct gengetopt_args_info *args_info); - - void cmdline_parser_print_help(void); - void cmdline_parser_print_version(void); - - void cmdline_parser_init(struct gengetopt_args_info *args_info); - void cmdline_parser_free(struct gengetopt_args_info *args_info); - - int cmdline_parser_configfile(char *const filename, - struct gengetopt_args_info *args_info, - int override, int initialize, - int check_required); - - int cmdline_parser_required(struct gengetopt_args_info *args_info, - const char *prog_name); +/** @brief Where the command line options are stored */ +struct gengetopt_args_info +{ + const char *help_help; /**< @brief Print help and exit help description. */ + const char *version_help; /**< @brief Print version and exit help description. */ + int fg_flag; /**< @brief Run in foreground (default=off). */ + const char *fg_help; /**< @brief Run in foreground help description. */ + int debug_flag; /**< @brief Run in debug mode (default=off). */ + const char *debug_help; /**< @brief Run in debug mode help description. */ + char * conf_arg; /**< @brief Read configuration file (default='/etc/ggsn.conf'). */ + char * conf_orig; /**< @brief Read configuration file original value given at command line. */ + const char *conf_help; /**< @brief Read configuration file help description. */ + char * pidfile_arg; /**< @brief Filename of process id file (default='/var/run/ggsn.pid'). */ + char * pidfile_orig; /**< @brief Filename of process id file original value given at command line. */ + const char *pidfile_help; /**< @brief Filename of process id file help description. */ + char * statedir_arg; /**< @brief Directory of nonvolatile data (default='/var/lib/ggsn/'). */ + char * statedir_orig; /**< @brief Directory of nonvolatile data original value given at command line. */ + const char *statedir_help; /**< @brief Directory of nonvolatile data help description. */ + char * listen_arg; /**< @brief Local interface. */ + char * listen_orig; /**< @brief Local interface original value given at command line. */ + const char *listen_help; /**< @brief Local interface help description. */ + char * net_arg; /**< @brief Network (default='192.168.0.0/24'). */ + char * net_orig; /**< @brief Network original value given at command line. */ + const char *net_help; /**< @brief Network help description. */ + char * ipup_arg; /**< @brief Script to run after link-up. */ + char * ipup_orig; /**< @brief Script to run after link-up original value given at command line. */ + const char *ipup_help; /**< @brief Script to run after link-up help description. */ + char * ipdown_arg; /**< @brief Script to run after link-down. */ + char * ipdown_orig; /**< @brief Script to run after link-down original value given at command line. */ + const char *ipdown_help; /**< @brief Script to run after link-down help description. */ + char * dynip_arg; /**< @brief Dynamic IP address pool. */ + char * dynip_orig; /**< @brief Dynamic IP address pool original value given at command line. */ + const char *dynip_help; /**< @brief Dynamic IP address pool help description. */ + char * statip_arg; /**< @brief Static IP address pool. */ + char * statip_orig; /**< @brief Static IP address pool original value given at command line. */ + const char *statip_help; /**< @brief Static IP address pool help description. */ + char * pcodns1_arg; /**< @brief PCO DNS Server 1 (default='0.0.0.0'). */ + char * pcodns1_orig; /**< @brief PCO DNS Server 1 original value given at command line. */ + const char *pcodns1_help; /**< @brief PCO DNS Server 1 help description. */ + char * pcodns2_arg; /**< @brief PCO DNS Server 2 (default='0.0.0.0'). */ + char * pcodns2_orig; /**< @brief PCO DNS Server 2 original value given at command line. */ + const char *pcodns2_help; /**< @brief PCO DNS Server 2 help description. */ + int timelimit_arg; /**< @brief Exit after timelimit seconds (default='0'). */ + char * timelimit_orig; /**< @brief Exit after timelimit seconds original value given at command line. */ + const char *timelimit_help; /**< @brief Exit after timelimit seconds help description. */ + char * apn_arg; /**< @brief Access point name (default='internet'). */ + char * apn_orig; /**< @brief Access point name original value given at command line. */ + const char *apn_help; /**< @brief Access point name help description. */ + int qos_arg; /**< @brief Requested quality of service (default='0x0b921f'). */ + char * qos_orig; /**< @brief Requested quality of service original value given at command line. */ + const char *qos_help; /**< @brief Requested quality of service help description. */ + + unsigned int help_given ; /**< @brief Whether help was given. */ + unsigned int version_given ; /**< @brief Whether version was given. */ + unsigned int fg_given ; /**< @brief Whether fg was given. */ + unsigned int debug_given ; /**< @brief Whether debug was given. */ + unsigned int conf_given ; /**< @brief Whether conf was given. */ + unsigned int pidfile_given ; /**< @brief Whether pidfile was given. */ + unsigned int statedir_given ; /**< @brief Whether statedir was given. */ + unsigned int listen_given ; /**< @brief Whether listen was given. */ + unsigned int net_given ; /**< @brief Whether net was given. */ + unsigned int ipup_given ; /**< @brief Whether ipup was given. */ + unsigned int ipdown_given ; /**< @brief Whether ipdown was given. */ + unsigned int dynip_given ; /**< @brief Whether dynip was given. */ + unsigned int statip_given ; /**< @brief Whether statip was given. */ + unsigned int pcodns1_given ; /**< @brief Whether pcodns1 was given. */ + unsigned int pcodns2_given ; /**< @brief Whether pcodns2 was given. */ + unsigned int timelimit_given ; /**< @brief Whether timelimit was given. */ + unsigned int apn_given ; /**< @brief Whether apn was given. */ + unsigned int qos_given ; /**< @brief Whether qos was given. */ + +} ; + +/** @brief The additional parameters to pass to parser functions */ +struct cmdline_parser_params +{ + int override; /**< @brief whether to override possibly already present options (default 0) */ + int initialize; /**< @brief whether to initialize the option structure gengetopt_args_info (default 1) */ + int check_required; /**< @brief whether to check that all required options were provided (default 1) */ + int check_ambiguity; /**< @brief whether to check for options already specified in the option structure gengetopt_args_info (default 0) */ + int print_errors; /**< @brief whether getopt_long should print an error message for a bad option (default 1) */ +} ; + +/** @brief the purpose string of the program */ +extern const char *gengetopt_args_info_purpose; +/** @brief the usage string of the program */ +extern const char *gengetopt_args_info_usage; +/** @brief the description string of the program */ +extern const char *gengetopt_args_info_description; +/** @brief all the lines making the help output */ +extern const char *gengetopt_args_info_help[]; + +/** + * The command line parser + * @param argc the number of command line options + * @param argv the command line options + * @param args_info the structure where option information will be stored + * @return 0 if everything went fine, NON 0 if an error took place + */ +int cmdline_parser (int argc, char **argv, + struct gengetopt_args_info *args_info); + +/** + * The command line parser (version with additional parameters - deprecated) + * @param argc the number of command line options + * @param argv the command line options + * @param args_info the structure where option information will be stored + * @param override whether to override possibly already present options + * @param initialize whether to initialize the option structure my_args_info + * @param check_required whether to check that all required options were provided + * @return 0 if everything went fine, NON 0 if an error took place + * @deprecated use cmdline_parser_ext() instead + */ +int cmdline_parser2 (int argc, char **argv, + struct gengetopt_args_info *args_info, + int override, int initialize, int check_required); + +/** + * The command line parser (version with additional parameters) + * @param argc the number of command line options + * @param argv the command line options + * @param args_info the structure where option information will be stored + * @param params additional parameters for the parser + * @return 0 if everything went fine, NON 0 if an error took place + */ +int cmdline_parser_ext (int argc, char **argv, + struct gengetopt_args_info *args_info, + struct cmdline_parser_params *params); + +/** + * Save the contents of the option struct into an already open FILE stream. + * @param outfile the stream where to dump options + * @param args_info the option struct to dump + * @return 0 if everything went fine, NON 0 if an error took place + */ +int cmdline_parser_dump(FILE *outfile, + struct gengetopt_args_info *args_info); + +/** + * Save the contents of the option struct into a (text) file. + * This file can be read by the config file parser (if generated by gengetopt) + * @param filename the file where to save + * @param args_info the option struct to save + * @return 0 if everything went fine, NON 0 if an error took place + */ +int cmdline_parser_file_save(const char *filename, + struct gengetopt_args_info *args_info); + +/** + * Print the help + */ +void cmdline_parser_print_help(void); +/** + * Print the version + */ +void cmdline_parser_print_version(void); + +/** + * Initializes all the fields a cmdline_parser_params structure + * to their default values + * @param params the structure to initialize + */ +void cmdline_parser_params_init(struct cmdline_parser_params *params); + +/** + * Allocates dynamically a cmdline_parser_params structure and initializes + * all its fields to their default values + * @return the created and initialized cmdline_parser_params structure + */ +struct cmdline_parser_params *cmdline_parser_params_create(void); + +/** + * Initializes the passed gengetopt_args_info structure's fields + * (also set default values for options that have a default) + * @param args_info the structure to initialize + */ +void cmdline_parser_init (struct gengetopt_args_info *args_info); +/** + * Deallocates the string fields of the gengetopt_args_info structure + * (but does not deallocate the structure itself) + * @param args_info the structure to deallocate + */ +void cmdline_parser_free (struct gengetopt_args_info *args_info); + +/** + * The config file parser (deprecated version) + * @param filename the name of the config file + * @param args_info the structure where option information will be stored + * @param override whether to override possibly already present options + * @param initialize whether to initialize the option structure my_args_info + * @param check_required whether to check that all required options were provided + * @return 0 if everything went fine, NON 0 if an error took place + * @deprecated use cmdline_parser_config_file() instead + */ +int cmdline_parser_configfile (const char *filename, + struct gengetopt_args_info *args_info, + int override, int initialize, int check_required); + +/** + * The config file parser + * @param filename the name of the config file + * @param args_info the structure where option information will be stored + * @param params additional parameters for the parser + * @return 0 if everything went fine, NON 0 if an error took place + */ +int cmdline_parser_config_file (const char *filename, + struct gengetopt_args_info *args_info, + struct cmdline_parser_params *params); + +/** + * Checks that all the required options were specified + * @param args_info the structure to check + * @param prog_name the name of the program that will be used to print + * possible errors + * @return + */ +int cmdline_parser_required (struct gengetopt_args_info *args_info, + const char *prog_name); + #ifdef __cplusplus } -#endif /* __cplusplus */ -#endif /* CMDLINE_H */ +#endif /* __cplusplus */ +#endif /* CMDLINE_H */ |