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>