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

1.1       misho       1: /*  
                      2:  *  EDIT THIS FILE WITH CAUTION  (ntpd-opts.c)
                      3:  *  
                      4:  *  It has been AutoGen-ed  December 24, 2011 at 06:34:01 PM by AutoGen 5.12
                      5:  *  From the definitions    ntpd-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 ntpd 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 "ntpd-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[38] =
                     41: "ntpd 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: /*
                     49:  *  global included definitions
                     50:  */
                     51: #ifdef __windows
                     52:   extern int atoi(const char *);
                     53: #else
                     54: # include <stdlib.h>
                     55: #endif
                     56: 
                     57: #ifndef NULL
                     58: #  define NULL 0
                     59: #endif
                     60: 
                     61: /*
                     62:  *  Ipv4 option description with
                     63:  *  "Must also have options" and "Incompatible options":
                     64:  */
                     65: static char const zIpv4Text[] =
                     66:         "Force IPv4 DNS name resolution";
                     67: static char const zIpv4_NAME[]               = "IPV4";
                     68: static char const zIpv4_Name[]               = "ipv4";
                     69: static const int
                     70:     aIpv4CantList[] = {
                     71:     INDEX_OPT_IPV6, NO_EQUIVALENT };
                     72: #define IPV4_FLAGS       (OPTST_DISABLED)
                     73: 
                     74: /*
                     75:  *  Ipv6 option description with
                     76:  *  "Must also have options" and "Incompatible options":
                     77:  */
                     78: static char const zIpv6Text[] =
                     79:         "Force IPv6 DNS name resolution";
                     80: static char const zIpv6_NAME[]               = "IPV6";
                     81: static char const zIpv6_Name[]               = "ipv6";
                     82: static const int
                     83:     aIpv6CantList[] = {
                     84:     INDEX_OPT_IPV4, NO_EQUIVALENT };
                     85: #define IPV6_FLAGS       (OPTST_DISABLED)
                     86: 
                     87: /*
                     88:  *  Authreq option description with
                     89:  *  "Must also have options" and "Incompatible options":
                     90:  */
                     91: static char const zAuthreqText[] =
                     92:         "Require crypto authentication";
                     93: static char const zAuthreq_NAME[]            = "AUTHREQ";
                     94: static char const zAuthreq_Name[]            = "authreq";
                     95: static const int
                     96:     aAuthreqCantList[] = {
                     97:     INDEX_OPT_AUTHNOREQ, NO_EQUIVALENT };
                     98: #define AUTHREQ_FLAGS       (OPTST_DISABLED)
                     99: 
                    100: /*
                    101:  *  Authnoreq option description with
                    102:  *  "Must also have options" and "Incompatible options":
                    103:  */
                    104: static char const zAuthnoreqText[] =
                    105:         "Do not require crypto authentication";
                    106: static char const zAuthnoreq_NAME[]          = "AUTHNOREQ";
                    107: static char const zAuthnoreq_Name[]          = "authnoreq";
                    108: static const int
                    109:     aAuthnoreqCantList[] = {
                    110:     INDEX_OPT_AUTHREQ, NO_EQUIVALENT };
                    111: #define AUTHNOREQ_FLAGS       (OPTST_DISABLED)
                    112: 
                    113: /*
                    114:  *  Bcastsync option description:
                    115:  */
                    116: static char const zBcastsyncText[] =
                    117:         "Allow us to sync to broadcast servers";
                    118: static char const zBcastsync_NAME[]          = "BCASTSYNC";
                    119: static char const zBcastsync_Name[]          = "bcastsync";
                    120: #define BCASTSYNC_FLAGS       (OPTST_DISABLED)
                    121: 
                    122: /*
                    123:  *  Configfile option description:
                    124:  */
                    125: static char const zConfigfileText[] =
                    126:         "configuration file name";
                    127: static char const zConfigfile_NAME[]         = "CONFIGFILE";
                    128: static char const zConfigfile_Name[]         = "configfile";
                    129: #define CONFIGFILE_FLAGS       (OPTST_DISABLED \
                    130:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    131: 
                    132: /*
                    133:  *  Debug_Level option description:
                    134:  */
                    135: #ifdef DEBUG
                    136: static char const zDebug_LevelText[] =
                    137:         "Increase output debug message level";
                    138: static char const zDebug_Level_NAME[]        = "DEBUG_LEVEL";
                    139: static char const zDebug_Level_Name[]        = "debug-level";
                    140: #define DEBUG_LEVEL_FLAGS       (OPTST_DISABLED)
                    141: 
                    142: #else   /* disable Debug_Level */
                    143: #define DEBUG_LEVEL_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    144: #define zDebug_Level_NAME      NULL
                    145: static char const zDebug_Level_Name[] = "debug-level";
                    146: static char const zDebug_LevelText[]  = "this package was built using 'configure --disable--debug'";
                    147: #endif  /* DEBUG */
                    148: 
                    149: /*
                    150:  *  Set_Debug_Level option description:
                    151:  */
                    152: #ifdef DEBUG
                    153: static char const zSet_Debug_LevelText[] =
                    154:         "Set the output debug message level";
                    155: static char const zSet_Debug_Level_NAME[]    = "SET_DEBUG_LEVEL";
                    156: static char const zSet_Debug_Level_Name[]    = "set-debug-level";
                    157: #define SET_DEBUG_LEVEL_FLAGS       (OPTST_DISABLED \
                    158:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    159: 
                    160: #else   /* disable Set_Debug_Level */
                    161: #define SET_DEBUG_LEVEL_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    162: #define zSet_Debug_Level_NAME      NULL
                    163: static char const zSet_Debug_Level_Name[] = "set-debug-level";
                    164: static char const zSet_Debug_LevelText[]  = "this package was built using 'configure --disable--debug'";
                    165: #endif  /* DEBUG */
                    166: 
                    167: /*
                    168:  *  Driftfile option description:
                    169:  */
                    170: static char const zDriftfileText[] =
                    171:         "frequency drift file name";
                    172: static char const zDriftfile_NAME[]          = "DRIFTFILE";
                    173: static char const zDriftfile_Name[]          = "driftfile";
                    174: #define DRIFTFILE_FLAGS       (OPTST_DISABLED \
                    175:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    176: 
                    177: /*
                    178:  *  Panicgate option description:
                    179:  */
                    180: static char const zPanicgateText[] =
                    181:         "Allow the first adjustment to be Big";
                    182: static char const zPanicgate_NAME[]          = "PANICGATE";
                    183: static char const zPanicgate_Name[]          = "panicgate";
                    184: #define PANICGATE_FLAGS       (OPTST_DISABLED)
                    185: 
                    186: /*
                    187:  *  Jaildir option description:
                    188:  */
                    189: #ifdef HAVE_DROPROOT
                    190: static char const zJaildirText[] =
                    191:         "Jail directory";
                    192: static char const zJaildir_NAME[]            = "JAILDIR";
                    193: static char const zJaildir_Name[]            = "jaildir";
                    194: #define JAILDIR_FLAGS       (OPTST_DISABLED \
                    195:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    196: 
                    197: #else   /* disable Jaildir */
                    198: #define JAILDIR_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    199: #define zJaildir_NAME      NULL
                    200: static char const zJaildir_Name[] = "jaildir";
                    201: static char const zJaildirText[]  = "built without --enable-clockctl or --enable-linuxcaps";
                    202: #endif  /* HAVE_DROPROOT */
                    203: 
                    204: /*
                    205:  *  Interface option description:
                    206:  */
                    207: static char const zInterfaceText[] =
                    208:         "Listen on an interface name or address";
                    209: static char const zInterface_NAME[]          = "INTERFACE";
                    210: static char const zInterface_Name[]          = "interface";
                    211: #define INTERFACE_FLAGS       (OPTST_DISABLED | OPTST_STACKED \
                    212:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    213: 
                    214: /*
                    215:  *  Keyfile option description:
                    216:  */
                    217: static char const zKeyfileText[] =
                    218:         "path to symmetric keys";
                    219: static char const zKeyfile_NAME[]            = "KEYFILE";
                    220: static char const zKeyfile_Name[]            = "keyfile";
                    221: #define KEYFILE_FLAGS       (OPTST_DISABLED \
                    222:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    223: 
                    224: /*
                    225:  *  Logfile option description:
                    226:  */
                    227: static char const zLogfileText[] =
                    228:         "path to the log file";
                    229: static char const zLogfile_NAME[]            = "LOGFILE";
                    230: static char const zLogfile_Name[]            = "logfile";
                    231: #define LOGFILE_FLAGS       (OPTST_DISABLED \
                    232:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    233: 
                    234: /*
                    235:  *  Novirtualips option description:
                    236:  */
                    237: static char const zNovirtualipsText[] =
                    238:         "Do not listen to virtual interfaces";
                    239: static char const zNovirtualips_NAME[]       = "NOVIRTUALIPS";
                    240: static char const zNovirtualips_Name[]       = "novirtualips";
                    241: #define NOVIRTUALIPS_FLAGS       (OPTST_DISABLED)
                    242: 
                    243: /*
                    244:  *  Modifymmtimer option description:
                    245:  */
                    246: #ifdef SYS_WINNT
                    247: static char const zModifymmtimerText[] =
                    248:         "Modify Multimedia Timer (Windows only)";
                    249: static char const zModifymmtimer_NAME[]      = "MODIFYMMTIMER";
                    250: static char const zModifymmtimer_Name[]      = "modifymmtimer";
                    251: #define MODIFYMMTIMER_FLAGS       (OPTST_DISABLED)
                    252: 
                    253: #else   /* disable Modifymmtimer */
                    254: #define MODIFYMMTIMER_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    255: #define zModifymmtimer_NAME      NULL
                    256: #define zModifymmtimerText       NULL
                    257: #define zModifymmtimer_Name      NULL
                    258: #endif  /* SYS_WINNT */
                    259: 
                    260: /*
                    261:  *  Nofork option description:
                    262:  */
                    263: static char const zNoforkText[] =
                    264:         "Do not fork";
                    265: static char const zNofork_NAME[]             = "NOFORK";
                    266: static char const zNofork_Name[]             = "nofork";
                    267: #define NOFORK_FLAGS       (OPTST_DISABLED)
                    268: 
                    269: /*
                    270:  *  Nice option description:
                    271:  */
                    272: static char const zNiceText[] =
                    273:         "Run at high priority";
                    274: static char const zNice_NAME[]               = "NICE";
                    275: static char const zNice_Name[]               = "nice";
                    276: #define NICE_FLAGS       (OPTST_DISABLED)
                    277: 
                    278: /*
                    279:  *  Pidfile option description:
                    280:  */
                    281: static char const zPidfileText[] =
                    282:         "path to the PID file";
                    283: static char const zPidfile_NAME[]            = "PIDFILE";
                    284: static char const zPidfile_Name[]            = "pidfile";
                    285: #define PIDFILE_FLAGS       (OPTST_DISABLED \
                    286:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    287: 
                    288: /*
                    289:  *  Priority option description:
                    290:  */
                    291: static char const zPriorityText[] =
                    292:         "Process priority";
                    293: static char const zPriority_NAME[]           = "PRIORITY";
                    294: static char const zPriority_Name[]           = "priority";
                    295: #define PRIORITY_FLAGS       (OPTST_DISABLED \
                    296:         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
                    297: 
                    298: /*
                    299:  *  Quit option description:
                    300:  */
                    301: static char const zQuitText[] =
                    302:         "Set the time and quit";
                    303: static char const zQuit_NAME[]               = "QUIT";
                    304: static char const zQuit_Name[]               = "quit";
                    305: #define QUIT_FLAGS       (OPTST_DISABLED)
                    306: 
                    307: /*
                    308:  *  Propagationdelay option description:
                    309:  */
                    310: static char const zPropagationdelayText[] =
                    311:         "Broadcast/propagation delay";
                    312: static char const zPropagationdelay_NAME[]   = "PROPAGATIONDELAY";
                    313: static char const zPropagationdelay_Name[]   = "propagationdelay";
                    314: #define PROPAGATIONDELAY_FLAGS       (OPTST_DISABLED \
                    315:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    316: 
                    317: /*
                    318:  *  Saveconfigquit option description:
                    319:  */
                    320: #ifdef SAVECONFIG
                    321: static char const zSaveconfigquitText[] =
                    322:         "Save parsed configuration and quit";
                    323: static char const zSaveconfigquit_NAME[]     = "SAVECONFIGQUIT";
                    324: static char const zSaveconfigquit_Name[]     = "saveconfigquit";
                    325: #define SAVECONFIGQUIT_FLAGS       (OPTST_DISABLED \
                    326:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    327: 
                    328: #else   /* disable Saveconfigquit */
                    329: #define SAVECONFIGQUIT_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    330: #define zSaveconfigquit_NAME      NULL
                    331: #define zSaveconfigquitText       NULL
                    332: #define zSaveconfigquit_Name      NULL
                    333: #endif  /* SAVECONFIG */
                    334: 
                    335: /*
                    336:  *  Statsdir option description:
                    337:  */
                    338: static char const zStatsdirText[] =
                    339:         "Statistics file location";
                    340: static char const zStatsdir_NAME[]           = "STATSDIR";
                    341: static char const zStatsdir_Name[]           = "statsdir";
                    342: #define STATSDIR_FLAGS       (OPTST_DISABLED \
                    343:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    344: 
                    345: /*
                    346:  *  Trustedkey option description:
                    347:  */
                    348: static char const zTrustedkeyText[] =
                    349:         "Trusted key number";
                    350: static char const zTrustedkey_NAME[]         = "TRUSTEDKEY";
                    351: static char const zTrustedkey_Name[]         = "trustedkey";
                    352: #define TRUSTEDKEY_FLAGS       (OPTST_DISABLED | OPTST_STACKED \
                    353:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    354: 
                    355: /*
                    356:  *  User option description:
                    357:  */
                    358: #ifdef HAVE_DROPROOT
                    359: static char const zUserText[] =
                    360:         "Run as userid (or userid:groupid)";
                    361: static char const zUser_NAME[]               = "USER";
                    362: static char const zUser_Name[]               = "user";
                    363: #define USER_FLAGS       (OPTST_DISABLED \
                    364:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    365: 
                    366: #else   /* disable User */
                    367: #define USER_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    368: #define zUser_NAME      NULL
                    369: static char const zUser_Name[] = "user";
                    370: static char const zUserText[]  = "built without --enable-clockctl or --enable-linuxcaps";
                    371: #endif  /* HAVE_DROPROOT */
                    372: 
                    373: /*
                    374:  *  Updateinterval option description:
                    375:  */
                    376: static char const zUpdateintervalText[] =
                    377:         "interval in seconds between scans for new or dropped interfaces";
                    378: static char const zUpdateinterval_NAME[]     = "UPDATEINTERVAL";
                    379: static char const zUpdateinterval_Name[]     = "updateinterval";
                    380: #define UPDATEINTERVAL_FLAGS       (OPTST_DISABLED \
                    381:         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
                    382: 
                    383: /*
                    384:  *  Var option description:
                    385:  */
                    386: static char const zVarText[] =
                    387:         "make ARG an ntp variable (RW)";
                    388: static char const zVar_NAME[]                = "VAR";
                    389: static char const zVar_Name[]                = "var";
                    390: #define VAR_FLAGS       (OPTST_DISABLED | OPTST_STACKED \
                    391:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    392: 
                    393: /*
                    394:  *  Dvar option description:
                    395:  */
                    396: static char const zDvarText[] =
                    397:         "make ARG an ntp variable (RW|DEF)";
                    398: static char const zDvar_NAME[]               = "DVAR";
                    399: static char const zDvar_Name[]               = "dvar";
                    400: #define DVAR_FLAGS       (OPTST_DISABLED | OPTST_STACKED \
                    401:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    402: 
                    403: /*
                    404:  *  Slew option description:
                    405:  */
                    406: static char const zSlewText[] =
                    407:         "Slew up to 600 seconds";
                    408: static char const zSlew_NAME[]               = "SLEW";
                    409: static char const zSlew_Name[]               = "slew";
                    410: #define SLEW_FLAGS       (OPTST_DISABLED)
                    411: 
                    412: /*
                    413:  *  Usepcc option description:
                    414:  */
                    415: #ifdef SYS_WINNT
                    416: static char const zUsepccText[] =
                    417:         "Use CPU cycle counter (Windows only)";
                    418: static char const zUsepcc_NAME[]             = "USEPCC";
                    419: static char const zUsepcc_Name[]             = "usepcc";
                    420: #define USEPCC_FLAGS       (OPTST_DISABLED)
                    421: 
                    422: #else   /* disable Usepcc */
                    423: #define USEPCC_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    424: #define zUsepcc_NAME      NULL
                    425: #define zUsepccText       NULL
                    426: #define zUsepcc_Name      NULL
                    427: #endif  /* SYS_WINNT */
                    428: 
                    429: /*
                    430:  *  Pccfreq option description:
                    431:  */
                    432: #ifdef SYS_WINNT
                    433: static char const zPccfreqText[] =
                    434:         "Force CPU cycle counter use (Windows only)";
                    435: static char const zPccfreq_NAME[]            = "PCCFREQ";
                    436: static char const zPccfreq_Name[]            = "pccfreq";
                    437: #define PCCFREQ_FLAGS       (OPTST_DISABLED \
                    438:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    439: 
                    440: #else   /* disable Pccfreq */
                    441: #define PCCFREQ_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    442: #define zPccfreq_NAME      NULL
                    443: #define zPccfreqText       NULL
                    444: #define zPccfreq_Name      NULL
                    445: #endif  /* SYS_WINNT */
                    446: 
                    447: /*
                    448:  *  Help/More_Help/Version option descriptions:
                    449:  */
                    450: static char const zHelpText[]          = "Display extended usage information and exit";
                    451: static char const zHelp_Name[]         = "help";
                    452: #ifdef HAVE_WORKING_FORK
                    453: #define OPTST_MORE_HELP_FLAGS   (OPTST_IMM | OPTST_NO_INIT)
                    454: static char const zMore_Help_Name[]    = "more-help";
                    455: static char const zMore_HelpText[]     = "Extended usage information passed thru pager";
                    456: #else
                    457: #define OPTST_MORE_HELP_FLAGS   (OPTST_OMITTED | OPTST_NO_INIT)
                    458: #define zMore_Help_Name   NULL
                    459: #define zMore_HelpText    NULL
                    460: #endif
                    461: #ifdef NO_OPTIONAL_OPT_ARGS
                    462: #  define OPTST_VERSION_FLAGS   OPTST_IMM | OPTST_NO_INIT
                    463: #else
                    464: #  define OPTST_VERSION_FLAGS   OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                    465:                                 OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT
                    466: #endif
                    467: 
                    468: static char const zVersionText[]       = "Output version information and exit";
                    469: static char const zVersion_Name[]      = "version";
                    470: /*
                    471:  *  Declare option callback procedures
                    472:  */
                    473: #ifdef DEBUG
                    474:   static tOptProc doOptSet_Debug_Level;
                    475: #else /* not DEBUG */
                    476: # define doOptSet_Debug_Level NULL
                    477: #endif /* def/not DEBUG */
                    478: #if defined(TEST_NTPD_OPTS)
                    479: /*
                    480:  *  Under test, omit argument processing, or call optionStackArg,
                    481:  *  if multiple copies are allowed.
                    482:  */
                    483: static tOptProc
                    484:     doUsageOpt;
                    485: 
                    486: /*
                    487:  *  #define map the "normal" callout procs to the test ones...
                    488:  */
                    489: #define SET_DEBUG_LEVEL_OPT_PROC optionStackArg
                    490: 
                    491: 
                    492: #else /* NOT defined TEST_NTPD_OPTS */
                    493: /*
                    494:  *  When not under test, there are different procs to use
                    495:  */
                    496: extern tOptProc
                    497:     optionBooleanVal,    optionNestedVal,     optionNumericVal,
                    498:     optionPagedUsage,    optionPrintVersion,  optionResetOpt,
                    499:     optionStackArg,      optionTimeDate,      optionTimeVal,
                    500:     optionUnstackArg,    optionVersionStderr;
                    501: static tOptProc
                    502:     doUsageOpt;
                    503: 
                    504: /*
                    505:  *  #define map the "normal" callout procs
                    506:  */
                    507: #define SET_DEBUG_LEVEL_OPT_PROC doOptSet_Debug_Level
                    508: 
                    509: #define SET_DEBUG_LEVEL_OPT_PROC doOptSet_Debug_Level
                    510: #endif /* defined(TEST_NTPD_OPTS) */
                    511: #ifdef TEST_NTPD_OPTS
                    512: # define DOVERPROC optionVersionStderr
                    513: #else
                    514: # define DOVERPROC optionPrintVersion
                    515: #endif /* TEST_NTPD_OPTS */
                    516: 
                    517: /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                    518:  *
                    519:  *  Define the Ntpd Option Descriptions.
                    520:  */
                    521: static tOptDesc optDesc[OPTION_CT] = {
                    522:   {  /* entry idx, value */ 0, VALUE_OPT_IPV4,
                    523:      /* equiv idx, value */ 0, VALUE_OPT_IPV4,
                    524:      /* equivalenced to  */ NO_EQUIVALENT,
                    525:      /* min, max, act ct */ 0, 1, 0,
                    526:      /* opt state flags  */ IPV4_FLAGS, 0,
                    527:      /* last opt argumnt */ { NULL },
                    528:      /* arg list/cookie  */ NULL,
                    529:      /* must/cannot opts */ NULL, aIpv4CantList,
                    530:      /* option proc      */ NULL,
                    531:      /* desc, NAME, name */ zIpv4Text, zIpv4_NAME, zIpv4_Name,
                    532:      /* disablement strs */ NULL, NULL },
                    533: 
                    534:   {  /* entry idx, value */ 1, VALUE_OPT_IPV6,
                    535:      /* equiv idx, value */ 1, VALUE_OPT_IPV6,
                    536:      /* equivalenced to  */ NO_EQUIVALENT,
                    537:      /* min, max, act ct */ 0, 1, 0,
                    538:      /* opt state flags  */ IPV6_FLAGS, 0,
                    539:      /* last opt argumnt */ { NULL },
                    540:      /* arg list/cookie  */ NULL,
                    541:      /* must/cannot opts */ NULL, aIpv6CantList,
                    542:      /* option proc      */ NULL,
                    543:      /* desc, NAME, name */ zIpv6Text, zIpv6_NAME, zIpv6_Name,
                    544:      /* disablement strs */ NULL, NULL },
                    545: 
                    546:   {  /* entry idx, value */ 2, VALUE_OPT_AUTHREQ,
                    547:      /* equiv idx, value */ 2, VALUE_OPT_AUTHREQ,
                    548:      /* equivalenced to  */ NO_EQUIVALENT,
                    549:      /* min, max, act ct */ 0, 1, 0,
                    550:      /* opt state flags  */ AUTHREQ_FLAGS, 0,
                    551:      /* last opt argumnt */ { NULL },
                    552:      /* arg list/cookie  */ NULL,
                    553:      /* must/cannot opts */ NULL, aAuthreqCantList,
                    554:      /* option proc      */ NULL,
                    555:      /* desc, NAME, name */ zAuthreqText, zAuthreq_NAME, zAuthreq_Name,
                    556:      /* disablement strs */ NULL, NULL },
                    557: 
                    558:   {  /* entry idx, value */ 3, VALUE_OPT_AUTHNOREQ,
                    559:      /* equiv idx, value */ 3, VALUE_OPT_AUTHNOREQ,
                    560:      /* equivalenced to  */ NO_EQUIVALENT,
                    561:      /* min, max, act ct */ 0, 1, 0,
                    562:      /* opt state flags  */ AUTHNOREQ_FLAGS, 0,
                    563:      /* last opt argumnt */ { NULL },
                    564:      /* arg list/cookie  */ NULL,
                    565:      /* must/cannot opts */ NULL, aAuthnoreqCantList,
                    566:      /* option proc      */ NULL,
                    567:      /* desc, NAME, name */ zAuthnoreqText, zAuthnoreq_NAME, zAuthnoreq_Name,
                    568:      /* disablement strs */ NULL, NULL },
                    569: 
                    570:   {  /* entry idx, value */ 4, VALUE_OPT_BCASTSYNC,
                    571:      /* equiv idx, value */ 4, VALUE_OPT_BCASTSYNC,
                    572:      /* equivalenced to  */ NO_EQUIVALENT,
                    573:      /* min, max, act ct */ 0, 1, 0,
                    574:      /* opt state flags  */ BCASTSYNC_FLAGS, 0,
                    575:      /* last opt argumnt */ { NULL },
                    576:      /* arg list/cookie  */ NULL,
                    577:      /* must/cannot opts */ NULL, NULL,
                    578:      /* option proc      */ NULL,
                    579:      /* desc, NAME, name */ zBcastsyncText, zBcastsync_NAME, zBcastsync_Name,
                    580:      /* disablement strs */ NULL, NULL },
                    581: 
                    582:   {  /* entry idx, value */ 5, VALUE_OPT_CONFIGFILE,
                    583:      /* equiv idx, value */ 5, VALUE_OPT_CONFIGFILE,
                    584:      /* equivalenced to  */ NO_EQUIVALENT,
                    585:      /* min, max, act ct */ 0, 1, 0,
                    586:      /* opt state flags  */ CONFIGFILE_FLAGS, 0,
                    587:      /* last opt argumnt */ { NULL },
                    588:      /* arg list/cookie  */ NULL,
                    589:      /* must/cannot opts */ NULL, NULL,
                    590:      /* option proc      */ NULL,
                    591:      /* desc, NAME, name */ zConfigfileText, zConfigfile_NAME, zConfigfile_Name,
                    592:      /* disablement strs */ NULL, NULL },
                    593: 
                    594:   {  /* entry idx, value */ 6, VALUE_OPT_DEBUG_LEVEL,
                    595:      /* equiv idx, value */ 6, VALUE_OPT_DEBUG_LEVEL,
                    596:      /* equivalenced to  */ NO_EQUIVALENT,
                    597:      /* min, max, act ct */ 0, NOLIMIT, 0,
                    598:      /* opt state flags  */ DEBUG_LEVEL_FLAGS, 0,
                    599:      /* last opt argumnt */ { NULL },
                    600:      /* arg list/cookie  */ NULL,
                    601:      /* must/cannot opts */ NULL, NULL,
                    602:      /* option proc      */ NULL,
                    603:      /* desc, NAME, name */ zDebug_LevelText, zDebug_Level_NAME, zDebug_Level_Name,
                    604:      /* disablement strs */ NULL, NULL },
                    605: 
                    606:   {  /* entry idx, value */ 7, VALUE_OPT_SET_DEBUG_LEVEL,
                    607:      /* equiv idx, value */ 7, VALUE_OPT_SET_DEBUG_LEVEL,
                    608:      /* equivalenced to  */ NO_EQUIVALENT,
                    609:      /* min, max, act ct */ 0, NOLIMIT, 0,
                    610:      /* opt state flags  */ SET_DEBUG_LEVEL_FLAGS, 0,
                    611:      /* last opt argumnt */ { NULL },
                    612:      /* arg list/cookie  */ NULL,
                    613:      /* must/cannot opts */ NULL, NULL,
                    614:      /* option proc      */ SET_DEBUG_LEVEL_OPT_PROC,
                    615:      /* desc, NAME, name */ zSet_Debug_LevelText, zSet_Debug_Level_NAME, zSet_Debug_Level_Name,
                    616:      /* disablement strs */ NULL, NULL },
                    617: 
                    618:   {  /* entry idx, value */ 8, VALUE_OPT_DRIFTFILE,
                    619:      /* equiv idx, value */ 8, VALUE_OPT_DRIFTFILE,
                    620:      /* equivalenced to  */ NO_EQUIVALENT,
                    621:      /* min, max, act ct */ 0, 1, 0,
                    622:      /* opt state flags  */ DRIFTFILE_FLAGS, 0,
                    623:      /* last opt argumnt */ { NULL },
                    624:      /* arg list/cookie  */ NULL,
                    625:      /* must/cannot opts */ NULL, NULL,
                    626:      /* option proc      */ NULL,
                    627:      /* desc, NAME, name */ zDriftfileText, zDriftfile_NAME, zDriftfile_Name,
                    628:      /* disablement strs */ NULL, NULL },
                    629: 
                    630:   {  /* entry idx, value */ 9, VALUE_OPT_PANICGATE,
                    631:      /* equiv idx, value */ 9, VALUE_OPT_PANICGATE,
                    632:      /* equivalenced to  */ NO_EQUIVALENT,
                    633:      /* min, max, act ct */ 0, NOLIMIT, 0,
                    634:      /* opt state flags  */ PANICGATE_FLAGS, 0,
                    635:      /* last opt argumnt */ { NULL },
                    636:      /* arg list/cookie  */ NULL,
                    637:      /* must/cannot opts */ NULL, NULL,
                    638:      /* option proc      */ NULL,
                    639:      /* desc, NAME, name */ zPanicgateText, zPanicgate_NAME, zPanicgate_Name,
                    640:      /* disablement strs */ NULL, NULL },
                    641: 
                    642:   {  /* entry idx, value */ 10, VALUE_OPT_JAILDIR,
                    643:      /* equiv idx, value */ 10, VALUE_OPT_JAILDIR,
                    644:      /* equivalenced to  */ NO_EQUIVALENT,
                    645:      /* min, max, act ct */ 0, 1, 0,
                    646:      /* opt state flags  */ JAILDIR_FLAGS, 0,
                    647:      /* last opt argumnt */ { NULL },
                    648:      /* arg list/cookie  */ NULL,
                    649:      /* must/cannot opts */ NULL, NULL,
                    650:      /* option proc      */ NULL,
                    651:      /* desc, NAME, name */ zJaildirText, zJaildir_NAME, zJaildir_Name,
                    652:      /* disablement strs */ NULL, NULL },
                    653: 
                    654:   {  /* entry idx, value */ 11, VALUE_OPT_INTERFACE,
                    655:      /* equiv idx, value */ 11, VALUE_OPT_INTERFACE,
                    656:      /* equivalenced to  */ NO_EQUIVALENT,
                    657:      /* min, max, act ct */ 0, NOLIMIT, 0,
                    658:      /* opt state flags  */ INTERFACE_FLAGS, 0,
                    659:      /* last opt argumnt */ { NULL },
                    660:      /* arg list/cookie  */ NULL,
                    661:      /* must/cannot opts */ NULL, NULL,
                    662:      /* option proc      */ optionStackArg,
                    663:      /* desc, NAME, name */ zInterfaceText, zInterface_NAME, zInterface_Name,
                    664:      /* disablement strs */ NULL, NULL },
                    665: 
                    666:   {  /* entry idx, value */ 12, VALUE_OPT_KEYFILE,
                    667:      /* equiv idx, value */ 12, VALUE_OPT_KEYFILE,
                    668:      /* equivalenced to  */ NO_EQUIVALENT,
                    669:      /* min, max, act ct */ 0, 1, 0,
                    670:      /* opt state flags  */ KEYFILE_FLAGS, 0,
                    671:      /* last opt argumnt */ { NULL },
                    672:      /* arg list/cookie  */ NULL,
                    673:      /* must/cannot opts */ NULL, NULL,
                    674:      /* option proc      */ NULL,
                    675:      /* desc, NAME, name */ zKeyfileText, zKeyfile_NAME, zKeyfile_Name,
                    676:      /* disablement strs */ NULL, NULL },
                    677: 
                    678:   {  /* entry idx, value */ 13, VALUE_OPT_LOGFILE,
                    679:      /* equiv idx, value */ 13, VALUE_OPT_LOGFILE,
                    680:      /* equivalenced to  */ NO_EQUIVALENT,
                    681:      /* min, max, act ct */ 0, 1, 0,
                    682:      /* opt state flags  */ LOGFILE_FLAGS, 0,
                    683:      /* last opt argumnt */ { NULL },
                    684:      /* arg list/cookie  */ NULL,
                    685:      /* must/cannot opts */ NULL, NULL,
                    686:      /* option proc      */ NULL,
                    687:      /* desc, NAME, name */ zLogfileText, zLogfile_NAME, zLogfile_Name,
                    688:      /* disablement strs */ NULL, NULL },
                    689: 
                    690:   {  /* entry idx, value */ 14, VALUE_OPT_NOVIRTUALIPS,
                    691:      /* equiv idx, value */ 14, VALUE_OPT_NOVIRTUALIPS,
                    692:      /* equivalenced to  */ NO_EQUIVALENT,
                    693:      /* min, max, act ct */ 0, 1, 0,
                    694:      /* opt state flags  */ NOVIRTUALIPS_FLAGS, 0,
                    695:      /* last opt argumnt */ { NULL },
                    696:      /* arg list/cookie  */ NULL,
                    697:      /* must/cannot opts */ NULL, NULL,
                    698:      /* option proc      */ NULL,
                    699:      /* desc, NAME, name */ zNovirtualipsText, zNovirtualips_NAME, zNovirtualips_Name,
                    700:      /* disablement strs */ NULL, NULL },
                    701: 
                    702:   {  /* entry idx, value */ 15, VALUE_OPT_MODIFYMMTIMER,
                    703:      /* equiv idx, value */ 15, VALUE_OPT_MODIFYMMTIMER,
                    704:      /* equivalenced to  */ NO_EQUIVALENT,
                    705:      /* min, max, act ct */ 0, 1, 0,
                    706:      /* opt state flags  */ MODIFYMMTIMER_FLAGS, 0,
                    707:      /* last opt argumnt */ { NULL },
                    708:      /* arg list/cookie  */ NULL,
                    709:      /* must/cannot opts */ NULL, NULL,
                    710:      /* option proc      */ NULL,
                    711:      /* desc, NAME, name */ zModifymmtimerText, zModifymmtimer_NAME, zModifymmtimer_Name,
                    712:      /* disablement strs */ NULL, NULL },
                    713: 
                    714:   {  /* entry idx, value */ 16, VALUE_OPT_NOFORK,
                    715:      /* equiv idx, value */ 16, VALUE_OPT_NOFORK,
                    716:      /* equivalenced to  */ NO_EQUIVALENT,
                    717:      /* min, max, act ct */ 0, 1, 0,
                    718:      /* opt state flags  */ NOFORK_FLAGS, 0,
                    719:      /* last opt argumnt */ { NULL },
                    720:      /* arg list/cookie  */ NULL,
                    721:      /* must/cannot opts */ NULL, NULL,
                    722:      /* option proc      */ NULL,
                    723:      /* desc, NAME, name */ zNoforkText, zNofork_NAME, zNofork_Name,
                    724:      /* disablement strs */ NULL, NULL },
                    725: 
                    726:   {  /* entry idx, value */ 17, VALUE_OPT_NICE,
                    727:      /* equiv idx, value */ 17, VALUE_OPT_NICE,
                    728:      /* equivalenced to  */ NO_EQUIVALENT,
                    729:      /* min, max, act ct */ 0, 1, 0,
                    730:      /* opt state flags  */ NICE_FLAGS, 0,
                    731:      /* last opt argumnt */ { NULL },
                    732:      /* arg list/cookie  */ NULL,
                    733:      /* must/cannot opts */ NULL, NULL,
                    734:      /* option proc      */ NULL,
                    735:      /* desc, NAME, name */ zNiceText, zNice_NAME, zNice_Name,
                    736:      /* disablement strs */ NULL, NULL },
                    737: 
                    738:   {  /* entry idx, value */ 18, VALUE_OPT_PIDFILE,
                    739:      /* equiv idx, value */ 18, VALUE_OPT_PIDFILE,
                    740:      /* equivalenced to  */ NO_EQUIVALENT,
                    741:      /* min, max, act ct */ 0, 1, 0,
                    742:      /* opt state flags  */ PIDFILE_FLAGS, 0,
                    743:      /* last opt argumnt */ { NULL },
                    744:      /* arg list/cookie  */ NULL,
                    745:      /* must/cannot opts */ NULL, NULL,
                    746:      /* option proc      */ NULL,
                    747:      /* desc, NAME, name */ zPidfileText, zPidfile_NAME, zPidfile_Name,
                    748:      /* disablement strs */ NULL, NULL },
                    749: 
                    750:   {  /* entry idx, value */ 19, VALUE_OPT_PRIORITY,
                    751:      /* equiv idx, value */ 19, VALUE_OPT_PRIORITY,
                    752:      /* equivalenced to  */ NO_EQUIVALENT,
                    753:      /* min, max, act ct */ 0, 1, 0,
                    754:      /* opt state flags  */ PRIORITY_FLAGS, 0,
                    755:      /* last opt argumnt */ { NULL },
                    756:      /* arg list/cookie  */ NULL,
                    757:      /* must/cannot opts */ NULL, NULL,
                    758:      /* option proc      */ optionNumericVal,
                    759:      /* desc, NAME, name */ zPriorityText, zPriority_NAME, zPriority_Name,
                    760:      /* disablement strs */ NULL, NULL },
                    761: 
                    762:   {  /* entry idx, value */ 20, VALUE_OPT_QUIT,
                    763:      /* equiv idx, value */ 20, VALUE_OPT_QUIT,
                    764:      /* equivalenced to  */ NO_EQUIVALENT,
                    765:      /* min, max, act ct */ 0, 1, 0,
                    766:      /* opt state flags  */ QUIT_FLAGS, 0,
                    767:      /* last opt argumnt */ { NULL },
                    768:      /* arg list/cookie  */ NULL,
                    769:      /* must/cannot opts */ NULL, NULL,
                    770:      /* option proc      */ NULL,
                    771:      /* desc, NAME, name */ zQuitText, zQuit_NAME, zQuit_Name,
                    772:      /* disablement strs */ NULL, NULL },
                    773: 
                    774:   {  /* entry idx, value */ 21, VALUE_OPT_PROPAGATIONDELAY,
                    775:      /* equiv idx, value */ 21, VALUE_OPT_PROPAGATIONDELAY,
                    776:      /* equivalenced to  */ NO_EQUIVALENT,
                    777:      /* min, max, act ct */ 0, 1, 0,
                    778:      /* opt state flags  */ PROPAGATIONDELAY_FLAGS, 0,
                    779:      /* last opt argumnt */ { NULL },
                    780:      /* arg list/cookie  */ NULL,
                    781:      /* must/cannot opts */ NULL, NULL,
                    782:      /* option proc      */ NULL,
                    783:      /* desc, NAME, name */ zPropagationdelayText, zPropagationdelay_NAME, zPropagationdelay_Name,
                    784:      /* disablement strs */ NULL, NULL },
                    785: 
                    786:   {  /* entry idx, value */ 22, VALUE_OPT_SAVECONFIGQUIT,
                    787:      /* equiv idx, value */ 22, VALUE_OPT_SAVECONFIGQUIT,
                    788:      /* equivalenced to  */ NO_EQUIVALENT,
                    789:      /* min, max, act ct */ 0, 1, 0,
                    790:      /* opt state flags  */ SAVECONFIGQUIT_FLAGS, 0,
                    791:      /* last opt argumnt */ { NULL },
                    792:      /* arg list/cookie  */ NULL,
                    793:      /* must/cannot opts */ NULL, NULL,
                    794:      /* option proc      */ NULL,
                    795:      /* desc, NAME, name */ zSaveconfigquitText, zSaveconfigquit_NAME, zSaveconfigquit_Name,
                    796:      /* disablement strs */ NULL, NULL },
                    797: 
                    798:   {  /* entry idx, value */ 23, VALUE_OPT_STATSDIR,
                    799:      /* equiv idx, value */ 23, VALUE_OPT_STATSDIR,
                    800:      /* equivalenced to  */ NO_EQUIVALENT,
                    801:      /* min, max, act ct */ 0, 1, 0,
                    802:      /* opt state flags  */ STATSDIR_FLAGS, 0,
                    803:      /* last opt argumnt */ { NULL },
                    804:      /* arg list/cookie  */ NULL,
                    805:      /* must/cannot opts */ NULL, NULL,
                    806:      /* option proc      */ NULL,
                    807:      /* desc, NAME, name */ zStatsdirText, zStatsdir_NAME, zStatsdir_Name,
                    808:      /* disablement strs */ NULL, NULL },
                    809: 
                    810:   {  /* entry idx, value */ 24, VALUE_OPT_TRUSTEDKEY,
                    811:      /* equiv idx, value */ 24, VALUE_OPT_TRUSTEDKEY,
                    812:      /* equivalenced to  */ NO_EQUIVALENT,
                    813:      /* min, max, act ct */ 0, NOLIMIT, 0,
                    814:      /* opt state flags  */ TRUSTEDKEY_FLAGS, 0,
                    815:      /* last opt argumnt */ { NULL },
                    816:      /* arg list/cookie  */ NULL,
                    817:      /* must/cannot opts */ NULL, NULL,
                    818:      /* option proc      */ optionStackArg,
                    819:      /* desc, NAME, name */ zTrustedkeyText, zTrustedkey_NAME, zTrustedkey_Name,
                    820:      /* disablement strs */ NULL, NULL },
                    821: 
                    822:   {  /* entry idx, value */ 25, VALUE_OPT_USER,
                    823:      /* equiv idx, value */ 25, VALUE_OPT_USER,
                    824:      /* equivalenced to  */ NO_EQUIVALENT,
                    825:      /* min, max, act ct */ 0, 1, 0,
                    826:      /* opt state flags  */ USER_FLAGS, 0,
                    827:      /* last opt argumnt */ { NULL },
                    828:      /* arg list/cookie  */ NULL,
                    829:      /* must/cannot opts */ NULL, NULL,
                    830:      /* option proc      */ NULL,
                    831:      /* desc, NAME, name */ zUserText, zUser_NAME, zUser_Name,
                    832:      /* disablement strs */ NULL, NULL },
                    833: 
                    834:   {  /* entry idx, value */ 26, VALUE_OPT_UPDATEINTERVAL,
                    835:      /* equiv idx, value */ 26, VALUE_OPT_UPDATEINTERVAL,
                    836:      /* equivalenced to  */ NO_EQUIVALENT,
                    837:      /* min, max, act ct */ 0, 1, 0,
                    838:      /* opt state flags  */ UPDATEINTERVAL_FLAGS, 0,
                    839:      /* last opt argumnt */ { NULL },
                    840:      /* arg list/cookie  */ NULL,
                    841:      /* must/cannot opts */ NULL, NULL,
                    842:      /* option proc      */ optionNumericVal,
                    843:      /* desc, NAME, name */ zUpdateintervalText, zUpdateinterval_NAME, zUpdateinterval_Name,
                    844:      /* disablement strs */ NULL, NULL },
                    845: 
                    846:   {  /* entry idx, value */ 27, VALUE_OPT_VAR,
                    847:      /* equiv idx, value */ 27, VALUE_OPT_VAR,
                    848:      /* equivalenced to  */ NO_EQUIVALENT,
                    849:      /* min, max, act ct */ 0, NOLIMIT, 0,
                    850:      /* opt state flags  */ VAR_FLAGS, 0,
                    851:      /* last opt argumnt */ { NULL },
                    852:      /* arg list/cookie  */ NULL,
                    853:      /* must/cannot opts */ NULL, NULL,
                    854:      /* option proc      */ optionStackArg,
                    855:      /* desc, NAME, name */ zVarText, zVar_NAME, zVar_Name,
                    856:      /* disablement strs */ NULL, NULL },
                    857: 
                    858:   {  /* entry idx, value */ 28, VALUE_OPT_DVAR,
                    859:      /* equiv idx, value */ 28, VALUE_OPT_DVAR,
                    860:      /* equivalenced to  */ NO_EQUIVALENT,
                    861:      /* min, max, act ct */ 0, NOLIMIT, 0,
                    862:      /* opt state flags  */ DVAR_FLAGS, 0,
                    863:      /* last opt argumnt */ { NULL },
                    864:      /* arg list/cookie  */ NULL,
                    865:      /* must/cannot opts */ NULL, NULL,
                    866:      /* option proc      */ optionStackArg,
                    867:      /* desc, NAME, name */ zDvarText, zDvar_NAME, zDvar_Name,
                    868:      /* disablement strs */ NULL, NULL },
                    869: 
                    870:   {  /* entry idx, value */ 29, VALUE_OPT_SLEW,
                    871:      /* equiv idx, value */ 29, VALUE_OPT_SLEW,
                    872:      /* equivalenced to  */ NO_EQUIVALENT,
                    873:      /* min, max, act ct */ 0, 1, 0,
                    874:      /* opt state flags  */ SLEW_FLAGS, 0,
                    875:      /* last opt argumnt */ { NULL },
                    876:      /* arg list/cookie  */ NULL,
                    877:      /* must/cannot opts */ NULL, NULL,
                    878:      /* option proc      */ NULL,
                    879:      /* desc, NAME, name */ zSlewText, zSlew_NAME, zSlew_Name,
                    880:      /* disablement strs */ NULL, NULL },
                    881: 
                    882:   {  /* entry idx, value */ 30, VALUE_OPT_USEPCC,
                    883:      /* equiv idx, value */ 30, VALUE_OPT_USEPCC,
                    884:      /* equivalenced to  */ NO_EQUIVALENT,
                    885:      /* min, max, act ct */ 0, 1, 0,
                    886:      /* opt state flags  */ USEPCC_FLAGS, 0,
                    887:      /* last opt argumnt */ { NULL },
                    888:      /* arg list/cookie  */ NULL,
                    889:      /* must/cannot opts */ NULL, NULL,
                    890:      /* option proc      */ NULL,
                    891:      /* desc, NAME, name */ zUsepccText, zUsepcc_NAME, zUsepcc_Name,
                    892:      /* disablement strs */ NULL, NULL },
                    893: 
                    894:   {  /* entry idx, value */ 31, VALUE_OPT_PCCFREQ,
                    895:      /* equiv idx, value */ 31, VALUE_OPT_PCCFREQ,
                    896:      /* equivalenced to  */ NO_EQUIVALENT,
                    897:      /* min, max, act ct */ 0, 1, 0,
                    898:      /* opt state flags  */ PCCFREQ_FLAGS, 0,
                    899:      /* last opt argumnt */ { NULL },
                    900:      /* arg list/cookie  */ NULL,
                    901:      /* must/cannot opts */ NULL, NULL,
                    902:      /* option proc      */ NULL,
                    903:      /* desc, NAME, name */ zPccfreqText, zPccfreq_NAME, zPccfreq_Name,
                    904:      /* disablement strs */ NULL, NULL },
                    905: 
                    906:   {  /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
                    907:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    908:      /* equivalenced to  */ NO_EQUIVALENT,
                    909:      /* min, max, act ct */ 0, 1, 0,
                    910:      /* opt state flags  */ OPTST_VERSION_FLAGS, 0,
                    911:      /* last opt argumnt */ { NULL },
                    912:      /* arg list/cookie  */ NULL,
                    913:      /* must/cannot opts */ NULL, NULL,
                    914:      /* option proc      */ DOVERPROC,
                    915:      /* desc, NAME, name */ zVersionText, NULL, zVersion_Name,
                    916:      /* disablement strs */ NULL, NULL },
                    917: 
                    918: 
                    919: 
                    920:   {  /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
                    921:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    922:      /* equivalenced to  */ NO_EQUIVALENT,
                    923:      /* min, max, act ct */ 0, 1, 0,
                    924:      /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
                    925:      /* last opt argumnt */ { NULL },
                    926:      /* arg list/cookie  */ NULL,
                    927:      /* must/cannot opts */ NULL, NULL,
                    928:      /* option proc      */ doUsageOpt,
                    929:      /* desc, NAME, name */ zHelpText, NULL, zHelp_Name,
                    930:      /* disablement strs */ NULL, NULL },
                    931: 
                    932:   {  /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
                    933:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    934:      /* equivalenced to  */ NO_EQUIVALENT,
                    935:      /* min, max, act ct */ 0, 1, 0,
                    936:      /* opt state flags  */ OPTST_MORE_HELP_FLAGS, 0,
                    937:      /* last opt argumnt */ { NULL },
                    938:      /* arg list/cookie  */ NULL,
                    939:      /* must/cannot opts */ NULL,  NULL,
                    940:      /* option proc      */ optionPagedUsage,
                    941:      /* desc, NAME, name */ zMore_HelpText, NULL, zMore_Help_Name,
                    942:      /* disablement strs */ NULL, NULL }
                    943: };
                    944: 
                    945: /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                    946:  *
                    947:  *  Define the Ntpd Option Environment
                    948:  */
                    949: static char const zPROGNAME[5] = "NTPD";
                    950: static char const zUsageTitle[99] =
                    951: "ntpd - NTP daemon program - Ver. 4.2.6p5\n\
                    952: USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n";
                    953: #define zRcName     NULL
                    954: #define apzHomeList NULL
                    955: 
                    956: static char const zBugsAddr[34]    = "http://bugs.ntp.org, bugs@ntp.org";
                    957: #define zExplain NULL
                    958: static char const zDetail[7] = "\n\n";
                    959: static char const zFullVersion[] = NTPD_FULL_VERSION;
                    960: /* extracted from optcode.tlib near line 515 */
                    961: 
                    962: #if defined(ENABLE_NLS)
                    963: # define OPTPROC_BASE OPTPROC_TRANSLATE
                    964:   static tOptionXlateProc translate_option_strings;
                    965: #else
                    966: # define OPTPROC_BASE OPTPROC_NONE
                    967: # define translate_option_strings NULL
                    968: #endif /* ENABLE_NLS */
                    969: 
                    970: 
                    971: #define ntpd_full_usage NULL
                    972: #define ntpd_short_usage NULL
                    973: #ifndef  PKGDATADIR
                    974: # define PKGDATADIR ""
                    975: #endif
                    976: 
                    977: #ifndef  WITH_PACKAGER
                    978: # define ntpd_packager_info NULL
                    979: #else
                    980: static char const ntpd_packager_info[] =
                    981:     "Packaged by " WITH_PACKAGER
                    982: 
                    983: # ifdef WITH_PACKAGER_VERSION
                    984:         " ("WITH_PACKAGER_VERSION")"
                    985: # endif
                    986: 
                    987: # ifdef WITH_PACKAGER_BUG_REPORTS
                    988:     "\nReport ntpd bugs to " WITH_PACKAGER_BUG_REPORTS
                    989: # endif
                    990:     "\n";
                    991: #endif
                    992: 
                    993: tOptions ntpdOptions = {
                    994:     OPTIONS_STRUCT_VERSION,
                    995:     0, NULL,                    /* original argc + argv    */
                    996:     ( OPTPROC_BASE
                    997:     + OPTPROC_ERRSTOP
                    998:     + OPTPROC_SHORTOPT
                    999:     + OPTPROC_LONGOPT
                   1000:     + OPTPROC_NO_REQ_OPT
                   1001:     + OPTPROC_ENVIRON
                   1002:     + OPTPROC_NO_ARGS
                   1003:     + OPTPROC_MISUSE ),
                   1004:     0, NULL,                    /* current option index, current option */
                   1005:     NULL,         NULL,         zPROGNAME,
                   1006:     zRcName,      zCopyright,   zLicenseDescrip,
                   1007:     zFullVersion, apzHomeList,  zUsageTitle,
                   1008:     zExplain,     zDetail,      optDesc,
                   1009:     zBugsAddr,                  /* address to send bugs to */
                   1010:     NULL, NULL,                 /* extensions/saved state  */
                   1011:     optionUsage, /* usage procedure */
                   1012:     translate_option_strings,   /* translation procedure */
                   1013:     /*
                   1014:      *  Indexes to special options
                   1015:      */
                   1016:     { INDEX_OPT_MORE_HELP, /* more-help option index */
                   1017:       NO_EQUIVALENT, /* save option index */
                   1018:       NO_EQUIVALENT, /* '-#' option index */
                   1019:       NO_EQUIVALENT /* index of default opt */
                   1020:     },
                   1021:     35 /* full option count */, 32 /* user option count */,
                   1022:     ntpd_full_usage, ntpd_short_usage,
                   1023:     NULL, NULL,
                   1024:     PKGDATADIR, ntpd_packager_info
                   1025: };
                   1026: 
                   1027: /*
                   1028:  *  Create the static procedure(s) declared above.
                   1029:  */
                   1030: static void
                   1031: doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
                   1032: {
                   1033:     (void)pOptions;
                   1034:     USAGE(NTPD_EXIT_SUCCESS);
                   1035: }
                   1036: 
                   1037: #if ! defined(TEST_NTPD_OPTS)
                   1038: 
                   1039: /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                   1040:  *
                   1041:  *   For the set-debug-level option, when DEBUG is #define-d.
                   1042:  */
                   1043: #ifdef DEBUG
                   1044: static void
                   1045: doOptSet_Debug_Level(tOptions* pOptions, tOptDesc* pOptDesc)
                   1046: {
                   1047:     /* extracted from ntpdbase-opts.def, line 100 */
                   1048: DESC(DEBUG_LEVEL).optOccCt = atoi( pOptDesc->pzLastArg );
                   1049: }
                   1050: #endif /* defined DEBUG */
                   1051: #endif /* defined(TEST_NTPD_OPTS) */
                   1052: /* extracted from optmain.tlib near line 128 */
                   1053: 
                   1054: #if defined(TEST_NTPD_OPTS) /* TEST MAIN PROCEDURE: */
                   1055: 
                   1056: extern void optionPutShell(tOptions*);
                   1057: 
                   1058: int
                   1059: main(int argc, char ** argv)
                   1060: {
                   1061:     int res = NTPD_EXIT_SUCCESS;
                   1062:     (void)optionProcess(&ntpdOptions, argc, argv);
                   1063:     optionPutShell(&ntpdOptions);
                   1064:     res = ferror(stdout);
                   1065:     if (res != 0)
                   1066:         fputs("output error writing to stdout\n", stderr);
                   1067:     return res;
                   1068: }
                   1069: #endif  /* defined TEST_NTPD_OPTS */
                   1070: /* extracted from optcode.tlib near line 666 */
                   1071: 
                   1072: #if ENABLE_NLS
                   1073: #include <stdio.h>
                   1074: #include <stdlib.h>
                   1075: #include <string.h>
                   1076: #include <unistd.h>
                   1077: #include <autoopts/usage-txt.h>
                   1078: 
                   1079: static char* AO_gettext(char const* pz);
                   1080: static void  coerce_it(void** s);
                   1081: 
                   1082: static char*
                   1083: AO_gettext(char const* pz)
                   1084: {
                   1085:     char* pzRes;
                   1086:     if (pz == NULL)
                   1087:         return NULL;
                   1088:     pzRes = _(pz);
                   1089:     if (pzRes == pz)
                   1090:         return pzRes;
                   1091:     pzRes = strdup(pzRes);
                   1092:     if (pzRes == NULL) {
                   1093:         fputs(_("No memory for duping translated strings\n"), stderr);
                   1094:         exit(NTPD_EXIT_FAILURE);
                   1095:     }
                   1096:     return pzRes;
                   1097: }
                   1098: 
                   1099: static void coerce_it(void** s) { *s = AO_gettext(*s);
                   1100: }
                   1101: 
                   1102: /*
                   1103:  *  This invokes the translation code (e.g. gettext(3)).
                   1104:  */
                   1105: static void
                   1106: translate_option_strings(void)
                   1107: {
                   1108:     tOptions * const pOpt = &ntpdOptions;
                   1109: 
                   1110:     /*
                   1111:      *  Guard against re-translation.  It won't work.  The strings will have
                   1112:      *  been changed by the first pass through this code.  One shot only.
                   1113:      */
                   1114:     if (option_usage_text.field_ct != 0) {
                   1115:         /*
                   1116:          *  Do the translations.  The first pointer follows the field count
                   1117:          *  field.  The field count field is the size of a pointer.
                   1118:          */
                   1119:         tOptDesc * pOD = pOpt->pOptDesc;
                   1120:         char **    ppz = (char**)(void*)&(option_usage_text);
                   1121:         int        ix  = option_usage_text.field_ct;
                   1122: 
                   1123:         do {
                   1124:             ppz++;
                   1125:             *ppz = AO_gettext(*ppz);
                   1126:         } while (--ix > 0);
                   1127: 
                   1128:         coerce_it((void*)&(pOpt->pzCopyright));
                   1129:         coerce_it((void*)&(pOpt->pzCopyNotice));
                   1130:         coerce_it((void*)&(pOpt->pzFullVersion));
                   1131:         coerce_it((void*)&(pOpt->pzUsageTitle));
                   1132:         coerce_it((void*)&(pOpt->pzExplain));
                   1133:         coerce_it((void*)&(pOpt->pzDetail));
                   1134:         coerce_it((void*)&(pOpt->pzPackager));
                   1135:         option_usage_text.field_ct = 0;
                   1136: 
                   1137:         for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
                   1138:             coerce_it((void*)&(pOD->pzText));
                   1139:     }
                   1140: 
                   1141:     if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
                   1142:         tOptDesc * pOD = pOpt->pOptDesc;
                   1143:         int        ix;
                   1144: 
                   1145:         for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
                   1146:             coerce_it((void*)&(pOD->pz_Name));
                   1147:             coerce_it((void*)&(pOD->pz_DisableName));
                   1148:             coerce_it((void*)&(pOD->pz_DisablePfx));
                   1149:         }
                   1150:         /* prevent re-translation */
                   1151:         ntpdOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
                   1152:     }
                   1153: }
                   1154: 
                   1155: #endif /* ENABLE_NLS */
                   1156: 
                   1157: #ifdef  __cplusplus
                   1158: }
                   1159: #endif
                   1160: /* ntpd-opts.c ends here */

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