Annotation of embedaddon/ntp/ntpsnmpd/ntpsnmpd-opts.c, revision 1.1.1.1

1.1       misho       1: /*  
                      2:  *  EDIT THIS FILE WITH CAUTION  (ntpsnmpd-opts.c)
                      3:  *  
                      4:  *  It has been AutoGen-ed  December 24, 2011 at 06:34:36 PM by AutoGen 5.12
                      5:  *  From the definitions    ntpsnmpd-opts.def
                      6:  *  and the template file   options
                      7:  *
                      8:  * Generated from AutoOpts 35:0:10 templates.
                      9:  *
                     10:  *  AutoOpts is a copyrighted work.  This source file is not encumbered
                     11:  *  by AutoOpts licensing, but is provided under the licensing terms chosen
                     12:  *  by the ntpsnmpd author or copyright holder.  AutoOpts is
                     13:  *  licensed under the terms of the LGPL.  The redistributable library
                     14:  *  (``libopts'') is licensed under the terms of either the LGPL or, at the
                     15:  *  users discretion, the BSD license.  See the AutoOpts and/or libopts sources
                     16:  *  for details.
                     17:  *
                     18:  * This source file is copyrighted and licensed under the following terms:
                     19:  *
                     20:  *  see html/copyright.html
                     21:  *  
                     22:  */
                     23: 
                     24: #include <sys/types.h>
                     25: 
                     26: #include <limits.h>
                     27: #include <stdio.h>
                     28: #include <stdlib.h>
                     29: 
                     30: #define OPTION_CODE_COMPILE 1
                     31: #include "ntpsnmpd-opts.h"
                     32: 
                     33: #ifdef  __cplusplus
                     34: extern "C" {
                     35: #endif
                     36: extern FILE * option_usage_fp;
                     37: 
                     38: /* TRANSLATORS: choose the translation for option names wisely because you
                     39:                 cannot ever change your mind. */
                     40: static char const zCopyright[42] =
                     41: "ntpsnmpd 4.2.6p5\n\
                     42: see html/copyright.html\n";
                     43: static char const zLicenseDescrip[25] =
                     44: "see html/copyright.html\n";
                     45: 
                     46: extern tUsageProc optionUsage;
                     47: 
                     48: #ifndef NULL
                     49: #  define NULL 0
                     50: #endif
                     51: 
                     52: /*
                     53:  *  Nofork option description:
                     54:  */
                     55: static char const zNoforkText[] =
                     56:         "Do not fork";
                     57: static char const zNofork_NAME[]             = "NOFORK";
                     58: static char const zNofork_Name[]             = "nofork";
                     59: #define NOFORK_FLAGS       (OPTST_DISABLED)
                     60: 
                     61: /*
                     62:  *  Syslog option description:
                     63:  */
                     64: static char const zSyslogText[] =
                     65:         "Log to syslog()";
                     66: static char const zSyslog_NAME[]             = "SYSLOG";
                     67: static char const zSyslog_Name[]             = "syslog";
                     68: #define SYSLOG_FLAGS       (OPTST_DISABLED)
                     69: 
                     70: /*
                     71:  *  Agentxsocket option description:
                     72:  */
                     73: static char const zAgentxsocketText[] =
                     74:         "The socket address ntpsnmpd uses to connect to net-snmpd";
                     75: static char const zAgentxsocket_NAME[]       = "AGENTXSOCKET";
                     76: static char const zAgentxsocket_Name[]       = "agentxsocket";
                     77: static char const zAgentxsocketDefaultArg[]    = "unix:/var/agentx/master";
                     78: #define AGENTXSOCKET_FLAGS       (OPTST_DISABLED \
                     79:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                     80: 
                     81: /*
                     82:  *  Help/More_Help/Version option descriptions:
                     83:  */
                     84: static char const zHelpText[]          = "Display extended usage information and exit";
                     85: static char const zHelp_Name[]         = "help";
                     86: #ifdef HAVE_WORKING_FORK
                     87: #define OPTST_MORE_HELP_FLAGS   (OPTST_IMM | OPTST_NO_INIT)
                     88: static char const zMore_Help_Name[]    = "more-help";
                     89: static char const zMore_HelpText[]     = "Extended usage information passed thru pager";
                     90: #else
                     91: #define OPTST_MORE_HELP_FLAGS   (OPTST_OMITTED | OPTST_NO_INIT)
                     92: #define zMore_Help_Name   NULL
                     93: #define zMore_HelpText    NULL
                     94: #endif
                     95: #ifdef NO_OPTIONAL_OPT_ARGS
                     96: #  define OPTST_VERSION_FLAGS   OPTST_IMM | OPTST_NO_INIT
                     97: #else
                     98: #  define OPTST_VERSION_FLAGS   OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                     99:                                 OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT
                    100: #endif
                    101: 
                    102: static char const zVersionText[]       = "Output version information and exit";
                    103: static char const zVersion_Name[]      = "version";
                    104: static char const zSave_OptsText[]     = "Save the option state to a config file";
                    105: static char const zSave_Opts_Name[]    = "save-opts";
                    106: static char const zLoad_OptsText[]     = "Load options from a config file";
                    107: static char const zLoad_Opts_NAME[]    = "LOAD_OPTS";
                    108: static char const zNotLoad_Opts_Name[] = "no-load-opts";
                    109: static char const zNotLoad_Opts_Pfx[]  = "no";
                    110: #define zLoad_Opts_Name   (zNotLoad_Opts_Name + 3)
                    111: /*
                    112:  *  Declare option callback procedures
                    113:  */
                    114: #if defined(TEST_NTPSNMPD_OPTS)
                    115: /*
                    116:  *  Under test, omit argument processing, or call optionStackArg,
                    117:  *  if multiple copies are allowed.
                    118:  */
                    119: static tOptProc
                    120:     doUsageOpt;
                    121: 
                    122: #else /* NOT defined TEST_NTPSNMPD_OPTS */
                    123: /*
                    124:  *  When not under test, there are different procs to use
                    125:  */
                    126: extern tOptProc
                    127:     optionBooleanVal,    optionNestedVal,     optionNumericVal,
                    128:     optionPagedUsage,    optionPrintVersion,  optionResetOpt,
                    129:     optionStackArg,      optionTimeDate,      optionTimeVal,
                    130:     optionUnstackArg,    optionVersionStderr;
                    131: static tOptProc
                    132:     doUsageOpt;
                    133: #endif /* defined(TEST_NTPSNMPD_OPTS) */
                    134: #ifdef TEST_NTPSNMPD_OPTS
                    135: # define DOVERPROC optionVersionStderr
                    136: #else
                    137: # define DOVERPROC optionPrintVersion
                    138: #endif /* TEST_NTPSNMPD_OPTS */
                    139: 
                    140: /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                    141:  *
                    142:  *  Define the Ntpsnmpd Option Descriptions.
                    143:  */
                    144: static tOptDesc optDesc[OPTION_CT] = {
                    145:   {  /* entry idx, value */ 0, VALUE_OPT_NOFORK,
                    146:      /* equiv idx, value */ 0, VALUE_OPT_NOFORK,
                    147:      /* equivalenced to  */ NO_EQUIVALENT,
                    148:      /* min, max, act ct */ 0, 1, 0,
                    149:      /* opt state flags  */ NOFORK_FLAGS, 0,
                    150:      /* last opt argumnt */ { NULL },
                    151:      /* arg list/cookie  */ NULL,
                    152:      /* must/cannot opts */ NULL, NULL,
                    153:      /* option proc      */ NULL,
                    154:      /* desc, NAME, name */ zNoforkText, zNofork_NAME, zNofork_Name,
                    155:      /* disablement strs */ NULL, NULL },
                    156: 
                    157:   {  /* entry idx, value */ 1, VALUE_OPT_SYSLOG,
                    158:      /* equiv idx, value */ 1, VALUE_OPT_SYSLOG,
                    159:      /* equivalenced to  */ NO_EQUIVALENT,
                    160:      /* min, max, act ct */ 0, 1, 0,
                    161:      /* opt state flags  */ SYSLOG_FLAGS, 0,
                    162:      /* last opt argumnt */ { NULL },
                    163:      /* arg list/cookie  */ NULL,
                    164:      /* must/cannot opts */ NULL, NULL,
                    165:      /* option proc      */ NULL,
                    166:      /* desc, NAME, name */ zSyslogText, zSyslog_NAME, zSyslog_Name,
                    167:      /* disablement strs */ NULL, NULL },
                    168: 
                    169:   {  /* entry idx, value */ 2, VALUE_OPT_AGENTXSOCKET,
                    170:      /* equiv idx, value */ 2, VALUE_OPT_AGENTXSOCKET,
                    171:      /* equivalenced to  */ NO_EQUIVALENT,
                    172:      /* min, max, act ct */ 0, 1, 0,
                    173:      /* opt state flags  */ AGENTXSOCKET_FLAGS, 0,
                    174:      /* last opt argumnt */ { zAgentxsocketDefaultArg },
                    175:      /* arg list/cookie  */ NULL,
                    176:      /* must/cannot opts */ NULL, NULL,
                    177:      /* option proc      */ NULL,
                    178:      /* desc, NAME, name */ zAgentxsocketText, zAgentxsocket_NAME, zAgentxsocket_Name,
                    179:      /* disablement strs */ NULL, NULL },
                    180: 
                    181:   {  /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
                    182:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    183:      /* equivalenced to  */ NO_EQUIVALENT,
                    184:      /* min, max, act ct */ 0, 1, 0,
                    185:      /* opt state flags  */ OPTST_VERSION_FLAGS, 0,
                    186:      /* last opt argumnt */ { NULL },
                    187:      /* arg list/cookie  */ NULL,
                    188:      /* must/cannot opts */ NULL, NULL,
                    189:      /* option proc      */ DOVERPROC,
                    190:      /* desc, NAME, name */ zVersionText, NULL, zVersion_Name,
                    191:      /* disablement strs */ NULL, NULL },
                    192: 
                    193: 
                    194: 
                    195:   {  /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
                    196:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    197:      /* equivalenced to  */ NO_EQUIVALENT,
                    198:      /* min, max, act ct */ 0, 1, 0,
                    199:      /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
                    200:      /* last opt argumnt */ { NULL },
                    201:      /* arg list/cookie  */ NULL,
                    202:      /* must/cannot opts */ NULL, NULL,
                    203:      /* option proc      */ doUsageOpt,
                    204:      /* desc, NAME, name */ zHelpText, NULL, zHelp_Name,
                    205:      /* disablement strs */ NULL, NULL },
                    206: 
                    207:   {  /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
                    208:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    209:      /* equivalenced to  */ NO_EQUIVALENT,
                    210:      /* min, max, act ct */ 0, 1, 0,
                    211:      /* opt state flags  */ OPTST_MORE_HELP_FLAGS, 0,
                    212:      /* last opt argumnt */ { NULL },
                    213:      /* arg list/cookie  */ NULL,
                    214:      /* must/cannot opts */ NULL,  NULL,
                    215:      /* option proc      */ optionPagedUsage,
                    216:      /* desc, NAME, name */ zMore_HelpText, NULL, zMore_Help_Name,
                    217:      /* disablement strs */ NULL, NULL },
                    218: 
                    219:   {  /* entry idx, value */ INDEX_OPT_SAVE_OPTS, VALUE_OPT_SAVE_OPTS,
                    220:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    221:      /* equivalenced to  */ NO_EQUIVALENT,
                    222:      /* min, max, act ct */ 0, 1, 0,
                    223:      /* opt state flags  */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
                    224:                           | OPTST_ARG_OPTIONAL | OPTST_NO_INIT, 0,
                    225:      /* last opt argumnt */ { NULL },
                    226:      /* arg list/cookie  */ NULL,
                    227:      /* must/cannot opts */ NULL,  NULL,
                    228:      /* option proc      */ NULL,
                    229:      /* desc, NAME, name */ zSave_OptsText, NULL, zSave_Opts_Name,
                    230:      /* disablement strs */ NULL, NULL },
                    231: 
                    232:   {  /* entry idx, value */ INDEX_OPT_LOAD_OPTS, VALUE_OPT_LOAD_OPTS,
                    233:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    234:      /* equivalenced to  */ NO_EQUIVALENT,
                    235:      /* min, max, act ct */ 0, NOLIMIT, 0,
                    236:      /* opt state flags  */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
                    237:                          | OPTST_DISABLE_IMM, 0,
                    238:      /* last opt argumnt */ { NULL },
                    239:      /* arg list/cookie  */ NULL,
                    240:      /* must/cannot opts */ NULL, NULL,
                    241:      /* option proc      */ optionLoadOpt,
                    242:      /* desc, NAME, name */ zLoad_OptsText, zLoad_Opts_NAME, zLoad_Opts_Name,
                    243:      /* disablement strs */ zNotLoad_Opts_Name, zNotLoad_Opts_Pfx }
                    244: };
                    245: 
                    246: /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                    247:  *
                    248:  *  Define the Ntpsnmpd Option Environment
                    249:  */
                    250: static char const zPROGNAME[9] = "NTPSNMPD";
                    251: static char const zUsageTitle[103] =
                    252: "ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.6p5\n\
                    253: USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n";
                    254: static char const zRcName[7] = ".ntprc";
                    255: static char const * const apzHomeList[3] = {
                    256:     "$HOME",
                    257:     ".",
                    258:     NULL };
                    259: 
                    260: static char const zBugsAddr[34]    = "http://bugs.ntp.org, bugs@ntp.org";
                    261: #define zExplain NULL
                    262: #define zDetail         NULL
                    263: static char const zFullVersion[] = NTPSNMPD_FULL_VERSION;
                    264: /* extracted from optcode.tlib near line 515 */
                    265: 
                    266: #if defined(ENABLE_NLS)
                    267: # define OPTPROC_BASE OPTPROC_TRANSLATE
                    268:   static tOptionXlateProc translate_option_strings;
                    269: #else
                    270: # define OPTPROC_BASE OPTPROC_NONE
                    271: # define translate_option_strings NULL
                    272: #endif /* ENABLE_NLS */
                    273: 
                    274: 
                    275: #define ntpsnmpd_full_usage NULL
                    276: #define ntpsnmpd_short_usage NULL
                    277: #ifndef  PKGDATADIR
                    278: # define PKGDATADIR ""
                    279: #endif
                    280: 
                    281: #ifndef  WITH_PACKAGER
                    282: # define ntpsnmpd_packager_info NULL
                    283: #else
                    284: static char const ntpsnmpd_packager_info[] =
                    285:     "Packaged by " WITH_PACKAGER
                    286: 
                    287: # ifdef WITH_PACKAGER_VERSION
                    288:         " ("WITH_PACKAGER_VERSION")"
                    289: # endif
                    290: 
                    291: # ifdef WITH_PACKAGER_BUG_REPORTS
                    292:     "\nReport ntpsnmpd bugs to " WITH_PACKAGER_BUG_REPORTS
                    293: # endif
                    294:     "\n";
                    295: #endif
                    296: 
                    297: tOptions ntpsnmpdOptions = {
                    298:     OPTIONS_STRUCT_VERSION,
                    299:     0, NULL,                    /* original argc + argv    */
                    300:     ( OPTPROC_BASE
                    301:     + OPTPROC_ERRSTOP
                    302:     + OPTPROC_SHORTOPT
                    303:     + OPTPROC_LONGOPT
                    304:     + OPTPROC_NO_REQ_OPT
                    305:     + OPTPROC_ENVIRON
                    306:     + OPTPROC_NO_ARGS
                    307:     + OPTPROC_MISUSE ),
                    308:     0, NULL,                    /* current option index, current option */
                    309:     NULL,         NULL,         zPROGNAME,
                    310:     zRcName,      zCopyright,   zLicenseDescrip,
                    311:     zFullVersion, apzHomeList,  zUsageTitle,
                    312:     zExplain,     zDetail,      optDesc,
                    313:     zBugsAddr,                  /* address to send bugs to */
                    314:     NULL, NULL,                 /* extensions/saved state  */
                    315:     optionUsage, /* usage procedure */
                    316:     translate_option_strings,   /* translation procedure */
                    317:     /*
                    318:      *  Indexes to special options
                    319:      */
                    320:     { INDEX_OPT_MORE_HELP, /* more-help option index */
                    321:       INDEX_OPT_SAVE_OPTS, /* save option index */
                    322:       NO_EQUIVALENT, /* '-#' option index */
                    323:       NO_EQUIVALENT /* index of default opt */
                    324:     },
                    325:     8 /* full option count */, 3 /* user option count */,
                    326:     ntpsnmpd_full_usage, ntpsnmpd_short_usage,
                    327:     NULL, NULL,
                    328:     PKGDATADIR, ntpsnmpd_packager_info
                    329: };
                    330: 
                    331: /*
                    332:  *  Create the static procedure(s) declared above.
                    333:  */
                    334: static void
                    335: doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
                    336: {
                    337:     (void)pOptions;
                    338:     USAGE(NTPSNMPD_EXIT_SUCCESS);
                    339: }
                    340: /* extracted from optmain.tlib near line 128 */
                    341: 
                    342: #if defined(TEST_NTPSNMPD_OPTS) /* TEST MAIN PROCEDURE: */
                    343: 
                    344: extern void optionPutShell(tOptions*);
                    345: 
                    346: int
                    347: main(int argc, char ** argv)
                    348: {
                    349:     int res = NTPSNMPD_EXIT_SUCCESS;
                    350:     (void)optionProcess(&ntpsnmpdOptions, argc, argv);
                    351:     optionPutShell(&ntpsnmpdOptions);
                    352:     res = ferror(stdout);
                    353:     if (res != 0)
                    354:         fputs("output error writing to stdout\n", stderr);
                    355:     return res;
                    356: }
                    357: #endif  /* defined TEST_NTPSNMPD_OPTS */
                    358: /* extracted from optcode.tlib near line 666 */
                    359: 
                    360: #if ENABLE_NLS
                    361: #include <stdio.h>
                    362: #include <stdlib.h>
                    363: #include <string.h>
                    364: #include <unistd.h>
                    365: #include <autoopts/usage-txt.h>
                    366: 
                    367: static char* AO_gettext(char const* pz);
                    368: static void  coerce_it(void** s);
                    369: 
                    370: static char*
                    371: AO_gettext(char const* pz)
                    372: {
                    373:     char* pzRes;
                    374:     if (pz == NULL)
                    375:         return NULL;
                    376:     pzRes = _(pz);
                    377:     if (pzRes == pz)
                    378:         return pzRes;
                    379:     pzRes = strdup(pzRes);
                    380:     if (pzRes == NULL) {
                    381:         fputs(_("No memory for duping translated strings\n"), stderr);
                    382:         exit(NTPSNMPD_EXIT_FAILURE);
                    383:     }
                    384:     return pzRes;
                    385: }
                    386: 
                    387: static void coerce_it(void** s) { *s = AO_gettext(*s);
                    388: }
                    389: 
                    390: /*
                    391:  *  This invokes the translation code (e.g. gettext(3)).
                    392:  */
                    393: static void
                    394: translate_option_strings(void)
                    395: {
                    396:     tOptions * const pOpt = &ntpsnmpdOptions;
                    397: 
                    398:     /*
                    399:      *  Guard against re-translation.  It won't work.  The strings will have
                    400:      *  been changed by the first pass through this code.  One shot only.
                    401:      */
                    402:     if (option_usage_text.field_ct != 0) {
                    403:         /*
                    404:          *  Do the translations.  The first pointer follows the field count
                    405:          *  field.  The field count field is the size of a pointer.
                    406:          */
                    407:         tOptDesc * pOD = pOpt->pOptDesc;
                    408:         char **    ppz = (char**)(void*)&(option_usage_text);
                    409:         int        ix  = option_usage_text.field_ct;
                    410: 
                    411:         do {
                    412:             ppz++;
                    413:             *ppz = AO_gettext(*ppz);
                    414:         } while (--ix > 0);
                    415: 
                    416:         coerce_it((void*)&(pOpt->pzCopyright));
                    417:         coerce_it((void*)&(pOpt->pzCopyNotice));
                    418:         coerce_it((void*)&(pOpt->pzFullVersion));
                    419:         coerce_it((void*)&(pOpt->pzUsageTitle));
                    420:         coerce_it((void*)&(pOpt->pzExplain));
                    421:         coerce_it((void*)&(pOpt->pzDetail));
                    422:         coerce_it((void*)&(pOpt->pzPackager));
                    423:         option_usage_text.field_ct = 0;
                    424: 
                    425:         for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
                    426:             coerce_it((void*)&(pOD->pzText));
                    427:     }
                    428: 
                    429:     if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
                    430:         tOptDesc * pOD = pOpt->pOptDesc;
                    431:         int        ix;
                    432: 
                    433:         for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
                    434:             coerce_it((void*)&(pOD->pz_Name));
                    435:             coerce_it((void*)&(pOD->pz_DisableName));
                    436:             coerce_it((void*)&(pOD->pz_DisablePfx));
                    437:         }
                    438:         /* prevent re-translation */
                    439:         ntpsnmpdOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
                    440:     }
                    441: }
                    442: 
                    443: #endif /* ENABLE_NLS */
                    444: 
                    445: #ifdef  __cplusplus
                    446: }
                    447: #endif
                    448: /* ntpsnmpd-opts.c ends here */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>