1 /* -*- buffer-read-only: t -*- vi: set ro:
3 * DO NOT EDIT THIS FILE (danetool-args.c)
5 * It has been AutoGen-ed
6 * From the definitions danetool-args.def
7 * and the template file options
9 * Generated from AutoOpts 41:1:16 templates.
11 * AutoOpts is a copyrighted work. This source file is not encumbered
12 * by AutoOpts licensing, but is provided under the licensing terms chosen
13 * by the danetool author or copyright holder. AutoOpts is
14 * licensed under the terms of the LGPL. The redistributable library
15 * (``libopts'') is licensed under the terms of either the LGPL or, at the
16 * users discretion, the BSD license. See the AutoOpts and/or libopts sources
19 * The danetool program is copyrighted and licensed
20 * under the following terms:
22 * Copyright (C) 2000-2016 Free Software Foundation, and others, all rights reserved.
23 * This is free software. It is licensed for use, modification and
24 * redistribution under the terms of the GNU General Public License,
25 * version 3 or later <http://gnu.org/licenses/gpl.html>
27 * danetool is free software: you can redistribute it and/or modify it
28 * under the terms of the GNU General Public License as published by the
29 * Free Software Foundation, either version 3 of the License, or
30 * (at your option) any later version.
32 * danetool is distributed in the hope that it will be useful, but
33 * WITHOUT ANY WARRANTY; without even the implied warranty of
34 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
35 * See the GNU General Public License for more details.
37 * You should have received a copy of the GNU General Public License along
38 * with this program. If not, see <http://www.gnu.org/licenses/>.
42 #define OPTION_CODE_COMPILE 1
43 #include "danetool-args.h"
44 #include <sys/types.h>
54 extern FILE * option_usage_fp;
55 #define zCopyright (danetool_opt_strs+0)
56 #define zLicenseDescrip (danetool_opt_strs+284)
64 * static const strings for danetool options
66 static char const danetool_opt_strs[2830] =
67 /* 0 */ "danetool 3.4.11\n"
68 "Copyright (C) 2000-2016 Free Software Foundation, and others, all rights reserved.\n"
69 "This is free software. It is licensed for use, modification and\n"
70 "redistribution under the terms of the GNU General Public License,\n"
71 "version 3 or later <http://gnu.org/licenses/gpl.html>\n\0"
72 /* 284 */ "danetool is free software: you can redistribute it and/or modify it under\n"
73 "the terms of the GNU General Public License as published by the Free\n"
74 "Software Foundation, either version 3 of the License, or (at your option)\n"
75 "any later version.\n\n"
76 "danetool is distributed in the hope that it will be useful, but WITHOUT ANY\n"
77 "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n"
78 "FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\n"
80 "You should have received a copy of the GNU General Public License along\n"
81 "with this program. If not, see <http://www.gnu.org/licenses/>.\n\0"
82 /* 889 */ "Enable debugging\0"
85 /* 918 */ "More verbose output\0"
88 /* 954 */ "Input file\0"
91 /* 979 */ "Output file\0"
94 /* 1007 */ "Loads a public key file\0"
95 /* 1031 */ "LOAD_PUBKEY\0"
96 /* 1043 */ "load-pubkey\0"
97 /* 1055 */ "Loads a certificate file\0"
98 /* 1080 */ "LOAD_CERTIFICATE\0"
99 /* 1097 */ "load-certificate\0"
100 /* 1114 */ "Sets a DLV file\0"
103 /* 1138 */ "Hash algorithm to use for signing\0"
106 /* 1182 */ "Check a host's DANE TLSA entry\0"
109 /* 1225 */ "Check only the end-entity's certificate\0"
110 /* 1265 */ "CHECK_EE\0"
111 /* 1274 */ "check-ee\0"
112 /* 1283 */ "Check only the CA's certificate\0"
113 /* 1315 */ "CHECK_CA\0"
114 /* 1324 */ "check-ca\0"
115 /* 1333 */ "Print the DANE RR data on a certificate or public key\0"
116 /* 1387 */ "TLSA_RR\0"
117 /* 1395 */ "tlsa-rr\0"
118 /* 1403 */ "Specify the hostname to be used in the DANE RR\0"
121 /* 1460 */ "The protocol set for DANE data (tcp, udp etc.)\0"
124 /* 1519 */ "Specify the port number for the DANE data\0"
127 /* 1571 */ "an alias for the 'starttls-proto' option\0"
128 /* 1612 */ "app-proto\0"
129 /* 1622 */ "The application protocol to be used to obtain the server's certificate\n"
130 "(https, ftp, smtp, imap, ldap, xmpp)\0"
131 /* 1730 */ "STARTTLS_PROTO\0"
132 /* 1745 */ "starttls-proto\0"
133 /* 1760 */ "Whether the provided certificate or public key is a Certificate\n"
137 /* 1840 */ "Use the hash of the X.509 certificate, rather than the public key\0"
140 /* 1916 */ "an alias for the 'domain' option\0"
142 /* 1955 */ "The provided certificate or public key is issued by the local domain\0"
143 /* 2024 */ "DOMAIN\0"
144 /* 2031 */ "no-domain\0"
146 /* 2044 */ "Use the local DNS server for DNSSEC resolving\0"
147 /* 2090 */ "LOCAL_DNS\0"
148 /* 2100 */ "no-local-dns\0"
149 /* 2113 */ "Do not verify any DNSSEC signature\0"
150 /* 2148 */ "INSECURE\0"
151 /* 2157 */ "insecure\0"
152 /* 2166 */ "Use DER format for input certificates and private keys\0"
154 /* 2227 */ "no-inder\0"
155 /* 2236 */ "an alias for the 'inder' option\0"
157 /* 2274 */ "Print the received DANE data in raw format\0"
158 /* 2317 */ "PRINT_RAW\0"
159 /* 2327 */ "no-print-raw\0"
160 /* 2340 */ "Suppress several informational messages\0"
163 /* 2392 */ "display extended usage information and exit\0"
165 /* 2441 */ "extended usage information passed thru pager\0"
166 /* 2486 */ "more-help\0"
167 /* 2496 */ "output version information and exit\0"
168 /* 2532 */ "version\0"
169 /* 2540 */ "DANETOOL\0"
170 /* 2549 */ "danetool - GnuTLS DANE tool\n"
171 "Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
172 /* 2635 */ "bugs@gnutls.org\0"
174 /* 2653 */ "Tool to generate and check DNS resource records for the DANE protocol.\n\0"
175 /* 2725 */ "danetool 3.4.11\0"
176 /* 2741 */ "danetool --[tlsa-rr|check] [options]\n"
177 "danetool --help for additional usage instructions.\n";
180 * debug option description:
182 /** Descriptive text for the debug option */
183 #define DEBUG_DESC (danetool_opt_strs+889)
184 /** Upper-cased name for the debug option */
185 #define DEBUG_NAME (danetool_opt_strs+906)
186 /** Name string for the debug option */
187 #define DEBUG_name (danetool_opt_strs+912)
188 /** Compiled in flag settings for the debug option */
189 #define DEBUG_FLAGS (OPTST_DISABLED \
190 | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
193 * verbose option description:
195 /** Descriptive text for the verbose option */
196 #define VERBOSE_DESC (danetool_opt_strs+918)
197 /** Upper-cased name for the verbose option */
198 #define VERBOSE_NAME (danetool_opt_strs+938)
199 /** Name string for the verbose option */
200 #define VERBOSE_name (danetool_opt_strs+946)
201 /** Compiled in flag settings for the verbose option */
202 #define VERBOSE_FLAGS (OPTST_DISABLED)
205 * infile option description:
207 /** Descriptive text for the infile option */
208 #define INFILE_DESC (danetool_opt_strs+954)
209 /** Upper-cased name for the infile option */
210 #define INFILE_NAME (danetool_opt_strs+965)
211 /** Name string for the infile option */
212 #define INFILE_name (danetool_opt_strs+972)
213 /** Compiled in flag settings for the infile option */
214 #define INFILE_FLAGS (OPTST_DISABLED \
215 | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
218 * outfile option description:
220 /** Descriptive text for the outfile option */
221 #define OUTFILE_DESC (danetool_opt_strs+979)
222 /** Upper-cased name for the outfile option */
223 #define OUTFILE_NAME (danetool_opt_strs+991)
224 /** Name string for the outfile option */
225 #define OUTFILE_name (danetool_opt_strs+999)
226 /** Compiled in flag settings for the outfile option */
227 #define OUTFILE_FLAGS (OPTST_DISABLED \
228 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
231 * load-pubkey option description:
233 /** Descriptive text for the load-pubkey option */
234 #define LOAD_PUBKEY_DESC (danetool_opt_strs+1007)
235 /** Upper-cased name for the load-pubkey option */
236 #define LOAD_PUBKEY_NAME (danetool_opt_strs+1031)
237 /** Name string for the load-pubkey option */
238 #define LOAD_PUBKEY_name (danetool_opt_strs+1043)
239 /** Compiled in flag settings for the load-pubkey option */
240 #define LOAD_PUBKEY_FLAGS (OPTST_DISABLED \
241 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
244 * load-certificate option description:
246 /** Descriptive text for the load-certificate option */
247 #define LOAD_CERTIFICATE_DESC (danetool_opt_strs+1055)
248 /** Upper-cased name for the load-certificate option */
249 #define LOAD_CERTIFICATE_NAME (danetool_opt_strs+1080)
250 /** Name string for the load-certificate option */
251 #define LOAD_CERTIFICATE_name (danetool_opt_strs+1097)
252 /** Compiled in flag settings for the load-certificate option */
253 #define LOAD_CERTIFICATE_FLAGS (OPTST_DISABLED \
254 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
257 * dlv option description:
259 /** Descriptive text for the dlv option */
260 #define DLV_DESC (danetool_opt_strs+1114)
261 /** Upper-cased name for the dlv option */
262 #define DLV_NAME (danetool_opt_strs+1130)
263 /** Name string for the dlv option */
264 #define DLV_name (danetool_opt_strs+1134)
265 /** Compiled in flag settings for the dlv option */
266 #define DLV_FLAGS (OPTST_DISABLED \
267 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
270 * hash option description:
272 /** Descriptive text for the hash option */
273 #define HASH_DESC (danetool_opt_strs+1138)
274 /** Upper-cased name for the hash option */
275 #define HASH_NAME (danetool_opt_strs+1172)
276 /** Name string for the hash option */
277 #define HASH_name (danetool_opt_strs+1177)
278 /** Compiled in flag settings for the hash option */
279 #define HASH_FLAGS (OPTST_DISABLED \
280 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
283 * check option description:
285 /** Descriptive text for the check option */
286 #define CHECK_DESC (danetool_opt_strs+1182)
287 /** Upper-cased name for the check option */
288 #define CHECK_NAME (danetool_opt_strs+1213)
289 /** Name string for the check option */
290 #define CHECK_name (danetool_opt_strs+1219)
291 /** Compiled in flag settings for the check option */
292 #define CHECK_FLAGS (OPTST_DISABLED \
293 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
296 * check-ee option description:
298 /** Descriptive text for the check-ee option */
299 #define CHECK_EE_DESC (danetool_opt_strs+1225)
300 /** Upper-cased name for the check-ee option */
301 #define CHECK_EE_NAME (danetool_opt_strs+1265)
302 /** Name string for the check-ee option */
303 #define CHECK_EE_name (danetool_opt_strs+1274)
304 /** Compiled in flag settings for the check-ee option */
305 #define CHECK_EE_FLAGS (OPTST_DISABLED)
308 * check-ca option description:
310 /** Descriptive text for the check-ca option */
311 #define CHECK_CA_DESC (danetool_opt_strs+1283)
312 /** Upper-cased name for the check-ca option */
313 #define CHECK_CA_NAME (danetool_opt_strs+1315)
314 /** Name string for the check-ca option */
315 #define CHECK_CA_name (danetool_opt_strs+1324)
316 /** Compiled in flag settings for the check-ca option */
317 #define CHECK_CA_FLAGS (OPTST_DISABLED)
320 * tlsa-rr option description with
321 * "Must also have options" and "Incompatible options":
323 /** Descriptive text for the tlsa-rr option */
324 #define TLSA_RR_DESC (danetool_opt_strs+1333)
325 /** Upper-cased name for the tlsa-rr option */
326 #define TLSA_RR_NAME (danetool_opt_strs+1387)
327 /** Name string for the tlsa-rr option */
328 #define TLSA_RR_name (danetool_opt_strs+1395)
329 /** Other options that are required by the tlsa-rr option */
330 static int const aTlsa_RrMustList[] = {
331 INDEX_OPT_HOST, NO_EQUIVALENT };
332 /** Compiled in flag settings for the tlsa-rr option */
333 #define TLSA_RR_FLAGS (OPTST_DISABLED)
336 * host option description:
338 /** Descriptive text for the host option */
339 #define HOST_DESC (danetool_opt_strs+1403)
340 /** Upper-cased name for the host option */
341 #define HOST_NAME (danetool_opt_strs+1450)
342 /** Name string for the host option */
343 #define HOST_name (danetool_opt_strs+1455)
344 /** Compiled in flag settings for the host option */
345 #define HOST_FLAGS (OPTST_DISABLED \
346 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
349 * proto option description:
351 /** Descriptive text for the proto option */
352 #define PROTO_DESC (danetool_opt_strs+1460)
353 /** Upper-cased name for the proto option */
354 #define PROTO_NAME (danetool_opt_strs+1507)
355 /** Name string for the proto option */
356 #define PROTO_name (danetool_opt_strs+1513)
357 /** Compiled in flag settings for the proto option */
358 #define PROTO_FLAGS (OPTST_DISABLED \
359 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
362 * port option description:
364 /** Descriptive text for the port option */
365 #define PORT_DESC (danetool_opt_strs+1519)
366 /** Upper-cased name for the port option */
367 #define PORT_NAME (danetool_opt_strs+1561)
368 /** Name string for the port option */
369 #define PORT_name (danetool_opt_strs+1566)
370 /** Compiled in flag settings for the port option */
371 #define PORT_FLAGS (OPTST_DISABLED \
372 | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
375 * app-proto option description:
377 /** Descriptive text for the app-proto option */
378 #define APP_PROTO_DESC (danetool_opt_strs+1571)
379 #define APP_PROTO_NAME NULL
380 /** Unmodified name string for the app-proto option */
381 #define APP_PROTO_name (danetool_opt_strs+1612)
382 /** Compiled in flag settings for the app-proto option */
383 #define APP_PROTO_FLAGS (STARTTLS_PROTO_FLAGS | OPTST_ALIAS)
386 * starttls-proto option description:
388 /** Descriptive text for the starttls-proto option */
389 #define STARTTLS_PROTO_DESC (danetool_opt_strs+1622)
390 /** Upper-cased name for the starttls-proto option */
391 #define STARTTLS_PROTO_NAME (danetool_opt_strs+1730)
392 /** Name string for the starttls-proto option */
393 #define STARTTLS_PROTO_name (danetool_opt_strs+1745)
394 /** Compiled in flag settings for the starttls-proto option */
395 #define STARTTLS_PROTO_FLAGS (OPTST_DISABLED \
396 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
399 * ca option description:
401 /** Descriptive text for the ca option */
402 #define CA_DESC (danetool_opt_strs+1760)
403 /** Upper-cased name for the ca option */
404 #define CA_NAME (danetool_opt_strs+1834)
405 /** Name string for the ca option */
406 #define CA_name (danetool_opt_strs+1837)
407 /** Compiled in flag settings for the ca option */
408 #define CA_FLAGS (OPTST_DISABLED)
411 * x509 option description:
413 /** Descriptive text for the x509 option */
414 #define X509_DESC (danetool_opt_strs+1840)
415 /** Upper-cased name for the x509 option */
416 #define X509_NAME (danetool_opt_strs+1906)
417 /** Name string for the x509 option */
418 #define X509_name (danetool_opt_strs+1911)
419 /** Compiled in flag settings for the x509 option */
420 #define X509_FLAGS (OPTST_DISABLED)
423 * local option description:
425 /** Descriptive text for the local option */
426 #define LOCAL_DESC (danetool_opt_strs+1916)
427 #define LOCAL_NAME NULL
428 /** Unmodified name string for the local option */
429 #define LOCAL_name (danetool_opt_strs+1949)
430 /** Compiled in flag settings for the local option */
431 #define LOCAL_FLAGS (DOMAIN_FLAGS | OPTST_ALIAS)
434 * domain option description:
436 /** Descriptive text for the domain option */
437 #define DOMAIN_DESC (danetool_opt_strs+1955)
438 /** Upper-cased name for the domain option */
439 #define DOMAIN_NAME (danetool_opt_strs+2024)
440 /** disablement name for the domain option */
441 #define NOT_DOMAIN_name (danetool_opt_strs+2031)
442 /** disablement prefix for the domain option */
443 #define NOT_DOMAIN_PFX (danetool_opt_strs+2041)
444 /** Name string for the domain option */
445 #define DOMAIN_name (NOT_DOMAIN_name + 3)
446 /** Compiled in flag settings for the domain option */
447 #define DOMAIN_FLAGS (OPTST_INITENABLED)
450 * local-dns option description:
452 /** Descriptive text for the local-dns option */
453 #define LOCAL_DNS_DESC (danetool_opt_strs+2044)
454 /** Upper-cased name for the local-dns option */
455 #define LOCAL_DNS_NAME (danetool_opt_strs+2090)
456 /** disablement name for the local-dns option */
457 #define NOT_LOCAL_DNS_name (danetool_opt_strs+2100)
458 /** disablement prefix for the local-dns option */
459 #define NOT_LOCAL_DNS_PFX (danetool_opt_strs+2041)
460 /** Name string for the local-dns option */
461 #define LOCAL_DNS_name (NOT_LOCAL_DNS_name + 3)
462 /** Compiled in flag settings for the local-dns option */
463 #define LOCAL_DNS_FLAGS (OPTST_DISABLED)
466 * insecure option description:
468 /** Descriptive text for the insecure option */
469 #define INSECURE_DESC (danetool_opt_strs+2113)
470 /** Upper-cased name for the insecure option */
471 #define INSECURE_NAME (danetool_opt_strs+2148)
472 /** Name string for the insecure option */
473 #define INSECURE_name (danetool_opt_strs+2157)
474 /** Compiled in flag settings for the insecure option */
475 #define INSECURE_FLAGS (OPTST_DISABLED)
478 * inder option description:
480 /** Descriptive text for the inder option */
481 #define INDER_DESC (danetool_opt_strs+2166)
482 /** Upper-cased name for the inder option */
483 #define INDER_NAME (danetool_opt_strs+2221)
484 /** disablement name for the inder option */
485 #define NOT_INDER_name (danetool_opt_strs+2227)
486 /** disablement prefix for the inder option */
487 #define NOT_INDER_PFX (danetool_opt_strs+2041)
488 /** Name string for the inder option */
489 #define INDER_name (NOT_INDER_name + 3)
490 /** Compiled in flag settings for the inder option */
491 #define INDER_FLAGS (OPTST_DISABLED)
494 * inraw option description:
496 /** Descriptive text for the inraw option */
497 #define INRAW_DESC (danetool_opt_strs+2236)
498 #define INRAW_NAME NULL
499 /** Unmodified name string for the inraw option */
500 #define INRAW_name (danetool_opt_strs+2268)
501 /** Compiled in flag settings for the inraw option */
502 #define INRAW_FLAGS (INDER_FLAGS | OPTST_ALIAS)
505 * print-raw option description:
507 /** Descriptive text for the print-raw option */
508 #define PRINT_RAW_DESC (danetool_opt_strs+2274)
509 /** Upper-cased name for the print-raw option */
510 #define PRINT_RAW_NAME (danetool_opt_strs+2317)
511 /** disablement name for the print-raw option */
512 #define NOT_PRINT_RAW_name (danetool_opt_strs+2327)
513 /** disablement prefix for the print-raw option */
514 #define NOT_PRINT_RAW_PFX (danetool_opt_strs+2041)
515 /** Name string for the print-raw option */
516 #define PRINT_RAW_name (NOT_PRINT_RAW_name + 3)
517 /** Compiled in flag settings for the print-raw option */
518 #define PRINT_RAW_FLAGS (OPTST_DISABLED)
521 * quiet option description:
523 /** Descriptive text for the quiet option */
524 #define QUIET_DESC (danetool_opt_strs+2340)
525 /** Upper-cased name for the quiet option */
526 #define QUIET_NAME (danetool_opt_strs+2380)
527 /** Name string for the quiet option */
528 #define QUIET_name (danetool_opt_strs+2386)
529 /** Compiled in flag settings for the quiet option */
530 #define QUIET_FLAGS (OPTST_DISABLED)
533 * Help/More_Help/Version option descriptions:
535 #define HELP_DESC (danetool_opt_strs+2392)
536 #define HELP_name (danetool_opt_strs+2436)
537 #ifdef HAVE_WORKING_FORK
538 #define MORE_HELP_DESC (danetool_opt_strs+2441)
539 #define MORE_HELP_name (danetool_opt_strs+2486)
540 #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
542 #define MORE_HELP_DESC HELP_DESC
543 #define MORE_HELP_name HELP_name
544 #define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
546 #ifdef NO_OPTIONAL_OPT_ARGS
547 # define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
549 # define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
550 OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
552 #define VER_DESC (danetool_opt_strs+2496)
553 #define VER_name (danetool_opt_strs+2532)
555 * Declare option callback procedures
558 optionBooleanVal, optionNestedVal, optionNumericVal,
559 optionPagedUsage, optionPrintVersion, optionResetOpt,
560 optionStackArg, optionTimeDate, optionTimeVal,
561 optionUnstackArg, optionVendorOption;
563 doOptApp_Proto, doOptDebug, doOptInfile, doOptInraw,
564 doOptLocal, doUsageOpt;
565 #define VER_PROC optionPrintVersion
567 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
569 * Define the danetool Option Descriptions.
570 * This is an array of OPTION_CT entries, one for each
571 * option that the danetool program responds to.
573 static tOptDesc optDesc[OPTION_CT] = {
574 { /* entry idx, value */ 0, VALUE_OPT_DEBUG,
575 /* equiv idx, value */ 0, VALUE_OPT_DEBUG,
576 /* equivalenced to */ NO_EQUIVALENT,
577 /* min, max, act ct */ 0, 1, 0,
578 /* opt state flags */ DEBUG_FLAGS, 0,
579 /* last opt argumnt */ { NULL }, /* --debug */
580 /* arg list/cookie */ NULL,
581 /* must/cannot opts */ NULL, NULL,
582 /* option proc */ doOptDebug,
583 /* desc, NAME, name */ DEBUG_DESC, DEBUG_NAME, DEBUG_name,
584 /* disablement strs */ NULL, NULL },
586 { /* entry idx, value */ 1, VALUE_OPT_VERBOSE,
587 /* equiv idx, value */ 1, VALUE_OPT_VERBOSE,
588 /* equivalenced to */ NO_EQUIVALENT,
589 /* min, max, act ct */ 0, NOLIMIT, 0,
590 /* opt state flags */ VERBOSE_FLAGS, 0,
591 /* last opt argumnt */ { NULL }, /* --verbose */
592 /* arg list/cookie */ NULL,
593 /* must/cannot opts */ NULL, NULL,
594 /* option proc */ NULL,
595 /* desc, NAME, name */ VERBOSE_DESC, VERBOSE_NAME, VERBOSE_name,
596 /* disablement strs */ NULL, NULL },
598 { /* entry idx, value */ 2, VALUE_OPT_INFILE,
599 /* equiv idx, value */ 2, VALUE_OPT_INFILE,
600 /* equivalenced to */ NO_EQUIVALENT,
601 /* min, max, act ct */ 0, 1, 0,
602 /* opt state flags */ INFILE_FLAGS, 0,
603 /* last opt argumnt */ { NULL }, /* --infile */
604 /* arg list/cookie */ NULL,
605 /* must/cannot opts */ NULL, NULL,
606 /* option proc */ doOptInfile,
607 /* desc, NAME, name */ INFILE_DESC, INFILE_NAME, INFILE_name,
608 /* disablement strs */ NULL, NULL },
610 { /* entry idx, value */ 3, VALUE_OPT_OUTFILE,
611 /* equiv idx, value */ 3, VALUE_OPT_OUTFILE,
612 /* equivalenced to */ NO_EQUIVALENT,
613 /* min, max, act ct */ 0, 1, 0,
614 /* opt state flags */ OUTFILE_FLAGS, 0,
615 /* last opt argumnt */ { NULL }, /* --outfile */
616 /* arg list/cookie */ NULL,
617 /* must/cannot opts */ NULL, NULL,
618 /* option proc */ NULL,
619 /* desc, NAME, name */ OUTFILE_DESC, OUTFILE_NAME, OUTFILE_name,
620 /* disablement strs */ NULL, NULL },
622 { /* entry idx, value */ 4, VALUE_OPT_LOAD_PUBKEY,
623 /* equiv idx, value */ 4, VALUE_OPT_LOAD_PUBKEY,
624 /* equivalenced to */ NO_EQUIVALENT,
625 /* min, max, act ct */ 0, 1, 0,
626 /* opt state flags */ LOAD_PUBKEY_FLAGS, 0,
627 /* last opt argumnt */ { NULL }, /* --load-pubkey */
628 /* arg list/cookie */ NULL,
629 /* must/cannot opts */ NULL, NULL,
630 /* option proc */ NULL,
631 /* desc, NAME, name */ LOAD_PUBKEY_DESC, LOAD_PUBKEY_NAME, LOAD_PUBKEY_name,
632 /* disablement strs */ NULL, NULL },
634 { /* entry idx, value */ 5, VALUE_OPT_LOAD_CERTIFICATE,
635 /* equiv idx, value */ 5, VALUE_OPT_LOAD_CERTIFICATE,
636 /* equivalenced to */ NO_EQUIVALENT,
637 /* min, max, act ct */ 0, 1, 0,
638 /* opt state flags */ LOAD_CERTIFICATE_FLAGS, 0,
639 /* last opt argumnt */ { NULL }, /* --load-certificate */
640 /* arg list/cookie */ NULL,
641 /* must/cannot opts */ NULL, NULL,
642 /* option proc */ NULL,
643 /* desc, NAME, name */ LOAD_CERTIFICATE_DESC, LOAD_CERTIFICATE_NAME, LOAD_CERTIFICATE_name,
644 /* disablement strs */ NULL, NULL },
646 { /* entry idx, value */ 6, VALUE_OPT_DLV,
647 /* equiv idx, value */ 6, VALUE_OPT_DLV,
648 /* equivalenced to */ NO_EQUIVALENT,
649 /* min, max, act ct */ 0, 1, 0,
650 /* opt state flags */ DLV_FLAGS, 0,
651 /* last opt argumnt */ { NULL }, /* --dlv */
652 /* arg list/cookie */ NULL,
653 /* must/cannot opts */ NULL, NULL,
654 /* option proc */ NULL,
655 /* desc, NAME, name */ DLV_DESC, DLV_NAME, DLV_name,
656 /* disablement strs */ NULL, NULL },
658 { /* entry idx, value */ 7, VALUE_OPT_HASH,
659 /* equiv idx, value */ 7, VALUE_OPT_HASH,
660 /* equivalenced to */ NO_EQUIVALENT,
661 /* min, max, act ct */ 0, 1, 0,
662 /* opt state flags */ HASH_FLAGS, 0,
663 /* last opt argumnt */ { NULL }, /* --hash */
664 /* arg list/cookie */ NULL,
665 /* must/cannot opts */ NULL, NULL,
666 /* option proc */ NULL,
667 /* desc, NAME, name */ HASH_DESC, HASH_NAME, HASH_name,
668 /* disablement strs */ NULL, NULL },
670 { /* entry idx, value */ 8, VALUE_OPT_CHECK,
671 /* equiv idx, value */ 8, VALUE_OPT_CHECK,
672 /* equivalenced to */ NO_EQUIVALENT,
673 /* min, max, act ct */ 0, 1, 0,
674 /* opt state flags */ CHECK_FLAGS, 0,
675 /* last opt argumnt */ { NULL }, /* --check */
676 /* arg list/cookie */ NULL,
677 /* must/cannot opts */ NULL, NULL,
678 /* option proc */ NULL,
679 /* desc, NAME, name */ CHECK_DESC, CHECK_NAME, CHECK_name,
680 /* disablement strs */ NULL, NULL },
682 { /* entry idx, value */ 9, VALUE_OPT_CHECK_EE,
683 /* equiv idx, value */ 9, VALUE_OPT_CHECK_EE,
684 /* equivalenced to */ NO_EQUIVALENT,
685 /* min, max, act ct */ 0, 1, 0,
686 /* opt state flags */ CHECK_EE_FLAGS, 0,
687 /* last opt argumnt */ { NULL }, /* --check-ee */
688 /* arg list/cookie */ NULL,
689 /* must/cannot opts */ NULL, NULL,
690 /* option proc */ NULL,
691 /* desc, NAME, name */ CHECK_EE_DESC, CHECK_EE_NAME, CHECK_EE_name,
692 /* disablement strs */ NULL, NULL },
694 { /* entry idx, value */ 10, VALUE_OPT_CHECK_CA,
695 /* equiv idx, value */ 10, VALUE_OPT_CHECK_CA,
696 /* equivalenced to */ NO_EQUIVALENT,
697 /* min, max, act ct */ 0, 1, 0,
698 /* opt state flags */ CHECK_CA_FLAGS, 0,
699 /* last opt argumnt */ { NULL }, /* --check-ca */
700 /* arg list/cookie */ NULL,
701 /* must/cannot opts */ NULL, NULL,
702 /* option proc */ NULL,
703 /* desc, NAME, name */ CHECK_CA_DESC, CHECK_CA_NAME, CHECK_CA_name,
704 /* disablement strs */ NULL, NULL },
706 { /* entry idx, value */ 11, VALUE_OPT_TLSA_RR,
707 /* equiv idx, value */ 11, VALUE_OPT_TLSA_RR,
708 /* equivalenced to */ NO_EQUIVALENT,
709 /* min, max, act ct */ 0, 1, 0,
710 /* opt state flags */ TLSA_RR_FLAGS, 0,
711 /* last opt argumnt */ { NULL }, /* --tlsa-rr */
712 /* arg list/cookie */ NULL,
713 /* must/cannot opts */ aTlsa_RrMustList, NULL,
714 /* option proc */ NULL,
715 /* desc, NAME, name */ TLSA_RR_DESC, TLSA_RR_NAME, TLSA_RR_name,
716 /* disablement strs */ NULL, NULL },
718 { /* entry idx, value */ 12, VALUE_OPT_HOST,
719 /* equiv idx, value */ 12, VALUE_OPT_HOST,
720 /* equivalenced to */ NO_EQUIVALENT,
721 /* min, max, act ct */ 0, 1, 0,
722 /* opt state flags */ HOST_FLAGS, 0,
723 /* last opt argumnt */ { NULL }, /* --host */
724 /* arg list/cookie */ NULL,
725 /* must/cannot opts */ NULL, NULL,
726 /* option proc */ NULL,
727 /* desc, NAME, name */ HOST_DESC, HOST_NAME, HOST_name,
728 /* disablement strs */ NULL, NULL },
730 { /* entry idx, value */ 13, VALUE_OPT_PROTO,
731 /* equiv idx, value */ 13, VALUE_OPT_PROTO,
732 /* equivalenced to */ NO_EQUIVALENT,
733 /* min, max, act ct */ 0, 1, 0,
734 /* opt state flags */ PROTO_FLAGS, 0,
735 /* last opt argumnt */ { NULL }, /* --proto */
736 /* arg list/cookie */ NULL,
737 /* must/cannot opts */ NULL, NULL,
738 /* option proc */ NULL,
739 /* desc, NAME, name */ PROTO_DESC, PROTO_NAME, PROTO_name,
740 /* disablement strs */ NULL, NULL },
742 { /* entry idx, value */ 14, VALUE_OPT_PORT,
743 /* equiv idx, value */ 14, VALUE_OPT_PORT,
744 /* equivalenced to */ NO_EQUIVALENT,
745 /* min, max, act ct */ 0, 1, 0,
746 /* opt state flags */ PORT_FLAGS, 0,
747 /* last opt argumnt */ { NULL }, /* --port */
748 /* arg list/cookie */ NULL,
749 /* must/cannot opts */ NULL, NULL,
750 /* option proc */ optionNumericVal,
751 /* desc, NAME, name */ PORT_DESC, PORT_NAME, PORT_name,
752 /* disablement strs */ NULL, NULL },
754 { /* entry idx, value */ 15, VALUE_OPT_APP_PROTO,
755 /* equiv idx, value */ 15, VALUE_OPT_APP_PROTO,
756 /* equivalenced to */ NO_EQUIVALENT,
757 /* min, max, act ct */ 0, 1, 0,
758 /* opt state flags */ APP_PROTO_FLAGS, 0,
759 /* last opt argumnt */ { NULL }, /* --app-proto */
760 /* arg list/cookie */ NULL,
761 /* must/cannot opts */ NULL, NULL,
762 /* option proc */ doOptApp_Proto,
763 /* desc, NAME, name */ APP_PROTO_DESC, APP_PROTO_NAME, APP_PROTO_name,
764 /* disablement strs */ 0, 0 },
766 { /* entry idx, value */ 16, VALUE_OPT_STARTTLS_PROTO,
767 /* equiv idx, value */ 16, VALUE_OPT_STARTTLS_PROTO,
768 /* equivalenced to */ NO_EQUIVALENT,
769 /* min, max, act ct */ 0, 1, 0,
770 /* opt state flags */ STARTTLS_PROTO_FLAGS, 0,
771 /* last opt argumnt */ { NULL }, /* --starttls-proto */
772 /* arg list/cookie */ NULL,
773 /* must/cannot opts */ NULL, NULL,
774 /* option proc */ NULL,
775 /* desc, NAME, name */ STARTTLS_PROTO_DESC, STARTTLS_PROTO_NAME, STARTTLS_PROTO_name,
776 /* disablement strs */ NULL, NULL },
778 { /* entry idx, value */ 17, VALUE_OPT_CA,
779 /* equiv idx, value */ 17, VALUE_OPT_CA,
780 /* equivalenced to */ NO_EQUIVALENT,
781 /* min, max, act ct */ 0, 1, 0,
782 /* opt state flags */ CA_FLAGS, 0,
783 /* last opt argumnt */ { NULL }, /* --ca */
784 /* arg list/cookie */ NULL,
785 /* must/cannot opts */ NULL, NULL,
786 /* option proc */ NULL,
787 /* desc, NAME, name */ CA_DESC, CA_NAME, CA_name,
788 /* disablement strs */ NULL, NULL },
790 { /* entry idx, value */ 18, VALUE_OPT_X509,
791 /* equiv idx, value */ 18, VALUE_OPT_X509,
792 /* equivalenced to */ NO_EQUIVALENT,
793 /* min, max, act ct */ 0, 1, 0,
794 /* opt state flags */ X509_FLAGS, 0,
795 /* last opt argumnt */ { NULL }, /* --x509 */
796 /* arg list/cookie */ NULL,
797 /* must/cannot opts */ NULL, NULL,
798 /* option proc */ NULL,
799 /* desc, NAME, name */ X509_DESC, X509_NAME, X509_name,
800 /* disablement strs */ NULL, NULL },
802 { /* entry idx, value */ 19, VALUE_OPT_LOCAL,
803 /* equiv idx, value */ 19, VALUE_OPT_LOCAL,
804 /* equivalenced to */ NO_EQUIVALENT,
805 /* min, max, act ct */ 0, 1, 0,
806 /* opt state flags */ LOCAL_FLAGS, 0,
807 /* last opt argumnt */ { NULL }, /* --local */
808 /* arg list/cookie */ NULL,
809 /* must/cannot opts */ NULL, NULL,
810 /* option proc */ doOptLocal,
811 /* desc, NAME, name */ LOCAL_DESC, LOCAL_NAME, LOCAL_name,
812 /* disablement strs */ 0, 0 },
814 { /* entry idx, value */ 20, VALUE_OPT_DOMAIN,
815 /* equiv idx, value */ 20, VALUE_OPT_DOMAIN,
816 /* equivalenced to */ NO_EQUIVALENT,
817 /* min, max, act ct */ 0, 1, 0,
818 /* opt state flags */ DOMAIN_FLAGS, 0,
819 /* last opt argumnt */ { NULL }, /* --domain */
820 /* arg list/cookie */ NULL,
821 /* must/cannot opts */ NULL, NULL,
822 /* option proc */ NULL,
823 /* desc, NAME, name */ DOMAIN_DESC, DOMAIN_NAME, DOMAIN_name,
824 /* disablement strs */ NOT_DOMAIN_name, NOT_DOMAIN_PFX },
826 { /* entry idx, value */ 21, VALUE_OPT_LOCAL_DNS,
827 /* equiv idx, value */ 21, VALUE_OPT_LOCAL_DNS,
828 /* equivalenced to */ NO_EQUIVALENT,
829 /* min, max, act ct */ 0, 1, 0,
830 /* opt state flags */ LOCAL_DNS_FLAGS, 0,
831 /* last opt argumnt */ { NULL }, /* --local-dns */
832 /* arg list/cookie */ NULL,
833 /* must/cannot opts */ NULL, NULL,
834 /* option proc */ NULL,
835 /* desc, NAME, name */ LOCAL_DNS_DESC, LOCAL_DNS_NAME, LOCAL_DNS_name,
836 /* disablement strs */ NOT_LOCAL_DNS_name, NOT_LOCAL_DNS_PFX },
838 { /* entry idx, value */ 22, VALUE_OPT_INSECURE,
839 /* equiv idx, value */ 22, VALUE_OPT_INSECURE,
840 /* equivalenced to */ NO_EQUIVALENT,
841 /* min, max, act ct */ 0, 1, 0,
842 /* opt state flags */ INSECURE_FLAGS, 0,
843 /* last opt argumnt */ { NULL }, /* --insecure */
844 /* arg list/cookie */ NULL,
845 /* must/cannot opts */ NULL, NULL,
846 /* option proc */ NULL,
847 /* desc, NAME, name */ INSECURE_DESC, INSECURE_NAME, INSECURE_name,
848 /* disablement strs */ NULL, NULL },
850 { /* entry idx, value */ 23, VALUE_OPT_INDER,
851 /* equiv idx, value */ 23, VALUE_OPT_INDER,
852 /* equivalenced to */ NO_EQUIVALENT,
853 /* min, max, act ct */ 0, 1, 0,
854 /* opt state flags */ INDER_FLAGS, 0,
855 /* last opt argumnt */ { NULL }, /* --inder */
856 /* arg list/cookie */ NULL,
857 /* must/cannot opts */ NULL, NULL,
858 /* option proc */ NULL,
859 /* desc, NAME, name */ INDER_DESC, INDER_NAME, INDER_name,
860 /* disablement strs */ NOT_INDER_name, NOT_INDER_PFX },
862 { /* entry idx, value */ 24, VALUE_OPT_INRAW,
863 /* equiv idx, value */ 24, VALUE_OPT_INRAW,
864 /* equivalenced to */ NO_EQUIVALENT,
865 /* min, max, act ct */ 0, 1, 0,
866 /* opt state flags */ INRAW_FLAGS, 0,
867 /* last opt argumnt */ { NULL }, /* --inraw */
868 /* arg list/cookie */ NULL,
869 /* must/cannot opts */ NULL, NULL,
870 /* option proc */ doOptInraw,
871 /* desc, NAME, name */ INRAW_DESC, INRAW_NAME, INRAW_name,
872 /* disablement strs */ 0, 0 },
874 { /* entry idx, value */ 25, VALUE_OPT_PRINT_RAW,
875 /* equiv idx, value */ 25, VALUE_OPT_PRINT_RAW,
876 /* equivalenced to */ NO_EQUIVALENT,
877 /* min, max, act ct */ 0, 1, 0,
878 /* opt state flags */ PRINT_RAW_FLAGS, 0,
879 /* last opt argumnt */ { NULL }, /* --print-raw */
880 /* arg list/cookie */ NULL,
881 /* must/cannot opts */ NULL, NULL,
882 /* option proc */ NULL,
883 /* desc, NAME, name */ PRINT_RAW_DESC, PRINT_RAW_NAME, PRINT_RAW_name,
884 /* disablement strs */ NOT_PRINT_RAW_name, NOT_PRINT_RAW_PFX },
886 { /* entry idx, value */ 26, VALUE_OPT_QUIET,
887 /* equiv idx, value */ 26, VALUE_OPT_QUIET,
888 /* equivalenced to */ NO_EQUIVALENT,
889 /* min, max, act ct */ 0, 1, 0,
890 /* opt state flags */ QUIET_FLAGS, 0,
891 /* last opt argumnt */ { NULL }, /* --quiet */
892 /* arg list/cookie */ NULL,
893 /* must/cannot opts */ NULL, NULL,
894 /* option proc */ NULL,
895 /* desc, NAME, name */ QUIET_DESC, QUIET_NAME, QUIET_name,
896 /* disablement strs */ NULL, NULL },
898 { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
899 /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
900 /* equivalenced to */ NO_EQUIVALENT,
901 /* min, max, act ct */ 0, 1, 0,
902 /* opt state flags */ VER_FLAGS, AOUSE_VERSION,
903 /* last opt argumnt */ { NULL },
904 /* arg list/cookie */ NULL,
905 /* must/cannot opts */ NULL, NULL,
906 /* option proc */ VER_PROC,
907 /* desc, NAME, name */ VER_DESC, NULL, VER_name,
908 /* disablement strs */ NULL, NULL },
912 { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
913 /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
914 /* equivalenced to */ NO_EQUIVALENT,
915 /* min, max, act ct */ 0, 1, 0,
916 /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
917 /* last opt argumnt */ { NULL },
918 /* arg list/cookie */ NULL,
919 /* must/cannot opts */ NULL, NULL,
920 /* option proc */ doUsageOpt,
921 /* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
922 /* disablement strs */ NULL, NULL },
924 { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
925 /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
926 /* equivalenced to */ NO_EQUIVALENT,
927 /* min, max, act ct */ 0, 1, 0,
928 /* opt state flags */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
929 /* last opt argumnt */ { NULL },
930 /* arg list/cookie */ NULL,
931 /* must/cannot opts */ NULL, NULL,
932 /* option proc */ optionPagedUsage,
933 /* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
934 /* disablement strs */ NULL, NULL }
938 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
939 /** Reference to the upper cased version of danetool. */
940 #define zPROGNAME (danetool_opt_strs+2540)
941 /** Reference to the title line for danetool usage. */
942 #define zUsageTitle (danetool_opt_strs+2549)
943 /** There is no danetool configuration file. */
945 /** There are no directories to search for danetool config files. */
946 #define apzHomeList NULL
947 /** The danetool program bug email address. */
948 #define zBugsAddr (danetool_opt_strs+2635)
949 /** Clarification/explanation of what danetool does. */
950 #define zExplain (danetool_opt_strs+2651)
951 /** Extra detail explaining what danetool does. */
952 #define zDetail (danetool_opt_strs+2653)
953 /** The full version string for danetool. */
954 #define zFullVersion (danetool_opt_strs+2725)
955 /* extracted from optcode.tlib near line 364 */
957 #if defined(ENABLE_NLS)
958 # define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
959 static tOptionXlateProc translate_option_strings;
961 # define OPTPROC_BASE OPTPROC_NONE
962 # define translate_option_strings NULL
963 #endif /* ENABLE_NLS */
965 #define danetool_full_usage (NULL)
966 #define danetool_short_usage (danetool_opt_strs+2741)
968 #endif /* not defined __doxygen__ */
971 * Create the static procedure(s) declared above.
974 * The callout function that invokes the optionUsage function.
976 * @param[in] opts the AutoOpts option description structure
977 * @param[in] od the descriptor for the "help" (usage) option.
981 doUsageOpt(tOptions * opts, tOptDesc * od)
984 ex_code = DANETOOL_EXIT_SUCCESS;
985 optionUsage(&danetoolOptions, ex_code);
987 exit(DANETOOL_EXIT_FAILURE);
992 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
994 * Code to handle the debug option.
995 * Specifies the debug level.
996 * @param[in] pOptions the danetool options data structure
997 * @param[in,out] pOptDesc the option descriptor for this option.
1000 doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
1002 static struct {long rmin, rmax;} const rng[1] = {
1006 if (pOptions <= OPTPROC_EMIT_LIMIT)
1008 optionNumericVal(pOptions, pOptDesc);
1010 for (ix = 0; ix < 1; ix++) {
1011 if (pOptDesc->optArg.argInt < rng[ix].rmin)
1012 continue; /* ranges need not be ordered. */
1013 if (pOptDesc->optArg.argInt == rng[ix].rmin)
1015 if (rng[ix].rmax == LONG_MIN)
1017 if (pOptDesc->optArg.argInt <= rng[ix].rmax)
1021 option_usage_fp = stderr;
1024 optionShowRange(pOptions, pOptDesc, VOIDP(rng), 1);
1027 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1029 * Code to handle the infile option.
1031 * @param[in] pOptions the danetool options data structure
1032 * @param[in,out] pOptDesc the option descriptor for this option.
1035 doOptInfile(tOptions* pOptions, tOptDesc* pOptDesc)
1037 static teOptFileType const type =
1038 FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN;
1039 static tuFileMode mode;
1041 # define O_CLOEXEC 0
1043 mode.file_flags = O_CLOEXEC;
1046 * This function handles special invalid values for "pOptions"
1048 optionFileCheck(pOptions, pOptDesc, type, mode);
1051 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1053 * Code to handle the app-proto option.
1055 * @param[in] pOptions the danetool options data structure
1056 * @param[in,out] pOptDesc the option descriptor for this option.
1059 doOptApp_Proto(tOptions* pOptions, tOptDesc* pOptDesc)
1061 int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_STARTTLS_PROTO);
1062 if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0))
1063 USAGE(DANETOOL_EXIT_USAGE_ERROR);
1067 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1069 * Code to handle the local option.
1071 * @param[in] pOptions the danetool options data structure
1072 * @param[in,out] pOptDesc the option descriptor for this option.
1075 doOptLocal(tOptions* pOptions, tOptDesc* pOptDesc)
1077 int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_DOMAIN);
1078 if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0))
1079 USAGE(DANETOOL_EXIT_USAGE_ERROR);
1083 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1085 * Code to handle the inraw option.
1087 * @param[in] pOptions the danetool options data structure
1088 * @param[in,out] pOptDesc the option descriptor for this option.
1091 doOptInraw(tOptions* pOptions, tOptDesc* pOptDesc)
1093 int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_INDER);
1094 if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0))
1095 USAGE(DANETOOL_EXIT_USAGE_ERROR);
1098 /* extracted from optmain.tlib near line 1250 */
1101 * The directory containing the data associated with danetool.
1104 # define PKGDATADIR ""
1108 * Information about the person or institution that packaged danetool
1109 * for the current distribution.
1111 #ifndef WITH_PACKAGER
1112 # define danetool_packager_info NULL
1114 /** Packager information for danetool. */
1115 static char const danetool_packager_info[] =
1116 "Packaged by " WITH_PACKAGER
1118 # ifdef WITH_PACKAGER_VERSION
1119 " ("WITH_PACKAGER_VERSION")"
1122 # ifdef WITH_PACKAGER_BUG_REPORTS
1123 "\nReport danetool bugs to " WITH_PACKAGER_BUG_REPORTS
1129 #endif /* __doxygen__ */
1131 * The option definitions for danetool. The one structure that
1134 tOptions danetoolOptions = {
1135 OPTIONS_STRUCT_VERSION,
1136 0, NULL, /* original argc + argv */
1141 + OPTPROC_NO_REQ_OPT
1146 0, NULL, /* current option index, current option */
1147 NULL, NULL, zPROGNAME,
1148 zRcName, zCopyright, zLicenseDescrip,
1149 zFullVersion, apzHomeList, zUsageTitle,
1150 zExplain, zDetail, optDesc,
1151 zBugsAddr, /* address to send bugs to */
1152 NULL, NULL, /* extensions/saved state */
1153 optionUsage, /* usage procedure */
1154 translate_option_strings, /* translation procedure */
1156 * Indexes to special options
1158 { INDEX_OPT_MORE_HELP, /* more-help option index */
1159 NO_EQUIVALENT, /* save option index */
1160 NO_EQUIVALENT, /* '-#' option index */
1161 NO_EQUIVALENT /* index of default opt */
1163 30 /* full option count */, 27 /* user option count */,
1164 danetool_full_usage, danetool_short_usage,
1166 PKGDATADIR, danetool_packager_info
1171 * This code is designed to translate translatable option text for the
1172 * danetool program. These translations happen upon entry
1173 * to optionProcess().
1179 #ifdef HAVE_DCGETTEXT
1180 # include <gettext.h>
1182 #include <autoopts/usage-txt.h>
1184 static char * AO_gettext(char const * pz);
1185 static void coerce_it(void ** s);
1188 * AutoGen specific wrapper function for gettext. It relies on the macro _()
1189 * to convert from English to the target language, then strdup-duplicates the
1190 * result string. It tries the "libopts" domain first, then whatever has been
1191 * set via the \a textdomain(3) call.
1193 * @param[in] pz the input text used as a lookup key.
1194 * @returns the translated text (if there is one),
1195 * or the original text (if not).
1198 AO_gettext(char const * pz)
1203 #ifdef HAVE_DCGETTEXT
1205 * While processing the option_xlateable_txt data, try to use the
1206 * "libopts" domain. Once we switch to the option descriptor data,
1207 * do *not* use that domain.
1209 if (option_xlateable_txt.field_ct != 0) {
1210 res = dgettext("libopts", pz);
1212 res = (char *)VOIDP(_(pz));
1214 res = (char *)VOIDP(_(pz));
1216 res = (char *)VOIDP(_(pz));
1222 fputs(_("No memory for duping translated strings\n"), stderr);
1223 exit(DANETOOL_EXIT_FAILURE);
1229 * All the pointers we use are marked "* const", but they are stored in
1230 * writable memory. Coerce the mutability and set the pointer.
1232 static void coerce_it(void ** s) { *s = AO_gettext(*s);
1236 * Translate all the translatable strings in the danetoolOptions
1237 * structure defined above. This is done only once.
1240 translate_option_strings(void)
1242 tOptions * const opts = &danetoolOptions;
1245 * Guard against re-translation. It won't work. The strings will have
1246 * been changed by the first pass through this code. One shot only.
1248 if (option_xlateable_txt.field_ct != 0) {
1250 * Do the translations. The first pointer follows the field count
1251 * field. The field count field is the size of a pointer.
1253 char ** ppz = (char**)VOIDP(&(option_xlateable_txt));
1254 int ix = option_xlateable_txt.field_ct;
1257 ppz++; /* skip over field_ct */
1258 *ppz = AO_gettext(*ppz);
1260 /* prevent re-translation and disable "libopts" domain lookup */
1261 option_xlateable_txt.field_ct = 0;
1263 coerce_it(VOIDP(&(opts->pzCopyright)));
1264 coerce_it(VOIDP(&(opts->pzCopyNotice)));
1265 coerce_it(VOIDP(&(opts->pzFullVersion)));
1266 coerce_it(VOIDP(&(opts->pzUsageTitle)));
1267 coerce_it(VOIDP(&(opts->pzExplain)));
1268 coerce_it(VOIDP(&(opts->pzDetail)));
1270 tOptDesc * od = opts->pOptDesc;
1271 for (ix = opts->optCt; ix > 0; ix--, od++)
1272 coerce_it(VOIDP(&(od->pzText)));
1276 #endif /* ENABLE_NLS */
1278 #ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
1279 /** I18N function strictly for xgettext. Do not compile. */
1280 static void bogus_function(void) {
1283 The following dummy function was crated solely so that xgettext can
1284 extract the correct strings. These strings are actually referenced
1285 by a field name in the danetoolOptions structure noted in the
1286 comments below. The literal text is defined in danetool_opt_strs.
1288 NOTE: the strings below are segmented with respect to the source string
1289 danetool_opt_strs. The strings above are handed off for translation
1290 at run time a paragraph at a time. Consequently, they are presented here
1291 for translation a paragraph at a time.
1293 ALSO: often the description for an option will reference another option
1294 by name. These are set off with apostrophe quotes (I hope). Do not
1295 translate option names.
1297 /* referenced via danetoolOptions.pzCopyright */
1298 puts(_("danetool 3.4.11\n\
1299 Copyright (C) 2000-2016 Free Software Foundation, and others, all rights reserved.\n\
1300 This is free software. It is licensed for use, modification and\n\
1301 redistribution under the terms of the GNU General Public License,\n\
1302 version 3 or later <http://gnu.org/licenses/gpl.html>\n"));
1304 /* referenced via danetoolOptions.pzCopyNotice */
1305 puts(_("danetool is free software: you can redistribute it and/or modify it under\n\
1306 the terms of the GNU General Public License as published by the Free\n\
1307 Software Foundation, either version 3 of the License, or (at your option)\n\
1308 any later version.\n\n"));
1309 puts(_("danetool is distributed in the hope that it will be useful, but WITHOUT ANY\n\
1310 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n\
1311 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\n\
1313 puts(_("You should have received a copy of the GNU General Public License along\n\
1314 with this program. If not, see <http://www.gnu.org/licenses/>.\n"));
1316 /* referenced via danetoolOptions.pOptDesc->pzText */
1317 puts(_("Enable debugging"));
1319 /* referenced via danetoolOptions.pOptDesc->pzText */
1320 puts(_("More verbose output"));
1322 /* referenced via danetoolOptions.pOptDesc->pzText */
1323 puts(_("Input file"));
1325 /* referenced via danetoolOptions.pOptDesc->pzText */
1326 puts(_("Output file"));
1328 /* referenced via danetoolOptions.pOptDesc->pzText */
1329 puts(_("Loads a public key file"));
1331 /* referenced via danetoolOptions.pOptDesc->pzText */
1332 puts(_("Loads a certificate file"));
1334 /* referenced via danetoolOptions.pOptDesc->pzText */
1335 puts(_("Sets a DLV file"));
1337 /* referenced via danetoolOptions.pOptDesc->pzText */
1338 puts(_("Hash algorithm to use for signing"));
1340 /* referenced via danetoolOptions.pOptDesc->pzText */
1341 puts(_("Check a host's DANE TLSA entry"));
1343 /* referenced via danetoolOptions.pOptDesc->pzText */
1344 puts(_("Check only the end-entity's certificate"));
1346 /* referenced via danetoolOptions.pOptDesc->pzText */
1347 puts(_("Check only the CA's certificate"));
1349 /* referenced via danetoolOptions.pOptDesc->pzText */
1350 puts(_("Print the DANE RR data on a certificate or public key"));
1352 /* referenced via danetoolOptions.pOptDesc->pzText */
1353 puts(_("Specify the hostname to be used in the DANE RR"));
1355 /* referenced via danetoolOptions.pOptDesc->pzText */
1356 puts(_("The protocol set for DANE data (tcp, udp etc.)"));
1358 /* referenced via danetoolOptions.pOptDesc->pzText */
1359 puts(_("Specify the port number for the DANE data"));
1361 /* referenced via danetoolOptions.pOptDesc->pzText */
1362 puts(_("an alias for the 'starttls-proto' option"));
1364 /* referenced via danetoolOptions.pOptDesc->pzText */
1365 puts(_("The application protocol to be used to obtain the server's certificate\n\
1366 (https, ftp, smtp, imap, ldap, xmpp)"));
1368 /* referenced via danetoolOptions.pOptDesc->pzText */
1369 puts(_("Whether the provided certificate or public key is a Certificate\n\
1372 /* referenced via danetoolOptions.pOptDesc->pzText */
1373 puts(_("Use the hash of the X.509 certificate, rather than the public key"));
1375 /* referenced via danetoolOptions.pOptDesc->pzText */
1376 puts(_("an alias for the 'domain' option"));
1378 /* referenced via danetoolOptions.pOptDesc->pzText */
1379 puts(_("The provided certificate or public key is issued by the local domain"));
1381 /* referenced via danetoolOptions.pOptDesc->pzText */
1382 puts(_("Use the local DNS server for DNSSEC resolving"));
1384 /* referenced via danetoolOptions.pOptDesc->pzText */
1385 puts(_("Do not verify any DNSSEC signature"));
1387 /* referenced via danetoolOptions.pOptDesc->pzText */
1388 puts(_("Use DER format for input certificates and private keys"));
1390 /* referenced via danetoolOptions.pOptDesc->pzText */
1391 puts(_("an alias for the 'inder' option"));
1393 /* referenced via danetoolOptions.pOptDesc->pzText */
1394 puts(_("Print the received DANE data in raw format"));
1396 /* referenced via danetoolOptions.pOptDesc->pzText */
1397 puts(_("Suppress several informational messages"));
1399 /* referenced via danetoolOptions.pOptDesc->pzText */
1400 puts(_("display extended usage information and exit"));
1402 /* referenced via danetoolOptions.pOptDesc->pzText */
1403 puts(_("extended usage information passed thru pager"));
1405 /* referenced via danetoolOptions.pOptDesc->pzText */
1406 puts(_("output version information and exit"));
1408 /* referenced via danetoolOptions.pzUsageTitle */
1409 puts(_("danetool - GnuTLS DANE tool\n\
1410 Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
1412 /* referenced via danetoolOptions.pzExplain */
1415 /* referenced via danetoolOptions.pzDetail */
1416 puts(_("Tool to generate and check DNS resource records for the DANE protocol.\n"));
1418 /* referenced via danetoolOptions.pzFullVersion */
1419 puts(_("danetool 3.4.11"));
1421 /* referenced via danetoolOptions.pzFullUsage */
1422 puts(_("<<<NOT-FOUND>>>"));
1424 /* referenced via danetoolOptions.pzShortUsage */
1425 puts(_("danetool --[tlsa-rr|check] [options]\n\
1426 danetool --help for additional usage instructions.\n"));
1427 /* LIBOPTS-MESSAGES: */
1428 #line 67 "../autoopts.c"
1429 puts(_("allocation of %d bytes failed\n"));
1430 #line 93 "../autoopts.c"
1431 puts(_("allocation of %d bytes failed\n"));
1432 #line 53 "../init.c"
1433 puts(_("AutoOpts function called without option descriptor\n"));
1434 #line 86 "../init.c"
1435 puts(_("\tThis exceeds the compiled library version: "));
1436 #line 84 "../init.c"
1437 puts(_("Automated Options Processing Error!\n"
1438 "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
1439 #line 80 "../autoopts.c"
1440 puts(_("realloc of %d bytes at 0x%p failed\n"));
1441 #line 88 "../init.c"
1442 puts(_("\tThis is less than the minimum library version: "));
1443 #line 121 "../version.c"
1444 puts(_("Automated Options version %s\n"
1445 "\tCopyright (C) 1999-2014 by Bruce Korb - all rights reserved\n"));
1446 #line 87 "../makeshell.c"
1447 puts(_("(AutoOpts bug): %s.\n"));
1448 #line 90 "../reset.c"
1449 puts(_("optionResetOpt() called, but reset-option not configured"));
1450 #line 292 "../usage.c"
1451 puts(_("could not locate the 'help' option"));
1452 #line 336 "../autoopts.c"
1453 puts(_("optionProcess() was called with invalid data"));
1454 #line 748 "../usage.c"
1455 puts(_("invalid argument type specified"));
1456 #line 598 "../find.c"
1457 puts(_("defaulted to option with optional arg"));
1458 #line 76 "../alias.c"
1459 puts(_("aliasing option is out of range."));
1460 #line 235 "../enum.c"
1461 puts(_("%s error: the keyword '%s' is ambiguous for %s\n"));
1462 #line 108 "../find.c"
1463 puts(_(" The following options match:\n"));
1464 #line 293 "../find.c"
1465 puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
1466 #line 161 "../check.c"
1467 puts(_("%s: Command line arguments required\n"));
1468 #line 43 "../alias.c"
1469 puts(_("%d %s%s options allowed\n"));
1470 #line 94 "../makeshell.c"
1471 puts(_("%s error %d (%s) calling %s for '%s'\n"));
1472 #line 306 "../makeshell.c"
1473 puts(_("interprocess pipe"));
1474 #line 168 "../version.c"
1475 puts(_("error: version option argument '%c' invalid. Use:\n"
1476 "\t'v' - version only\n"
1477 "\t'c' - version and copyright\n"
1478 "\t'n' - version and full copyright notice\n"));
1479 #line 58 "../check.c"
1480 puts(_("%s error: the '%s' and '%s' options conflict\n"));
1481 #line 217 "../find.c"
1482 puts(_("%s: The '%s' option has been disabled."));
1483 #line 430 "../find.c"
1484 puts(_("%s: The '%s' option has been disabled."));
1485 #line 38 "../alias.c"
1486 puts(_("-equivalence"));
1487 #line 469 "../find.c"
1488 puts(_("%s: illegal option -- %c\n"));
1489 #line 110 "../reset.c"
1490 puts(_("%s: illegal option -- %c\n"));
1491 #line 271 "../find.c"
1492 puts(_("%s: illegal option -- %s\n"));
1493 #line 755 "../find.c"
1494 puts(_("%s: illegal option -- %s\n"));
1495 #line 118 "../reset.c"
1496 puts(_("%s: illegal option -- %s\n"));
1497 #line 335 "../find.c"
1498 puts(_("%s: unknown vendor extension option -- %s\n"));
1499 #line 160 "../enum.c"
1500 puts(_(" or an integer from %d through %d\n"));
1501 #line 170 "../enum.c"
1502 puts(_(" or an integer from %d through %d\n"));
1503 #line 747 "../usage.c"
1504 puts(_("%s error: invalid option descriptor for %s\n"));
1505 #line 1081 "../usage.c"
1506 puts(_("%s error: invalid option descriptor for %s\n"));
1507 #line 385 "../find.c"
1508 puts(_("%s: invalid option name: %s\n"));
1509 #line 527 "../find.c"
1510 puts(_("%s: The '%s' option requires an argument.\n"));
1511 #line 156 "../autoopts.c"
1512 puts(_("(AutoOpts bug): Equivalenced option '%s' was equivalenced to both\n"
1513 "\t'%s' and '%s'."));
1514 #line 94 "../check.c"
1515 puts(_("%s error: The %s option is required\n"));
1516 #line 632 "../find.c"
1517 puts(_("%s: The '%s' option cannot have an argument.\n"));
1518 #line 151 "../check.c"
1519 puts(_("%s: Command line arguments are not allowed.\n"));
1520 #line 535 "../save.c"
1521 puts(_("error %d (%s) creating %s\n"));
1522 #line 235 "../enum.c"
1523 puts(_("%s error: '%s' does not match any %s keywords.\n"));
1524 #line 93 "../reset.c"
1525 puts(_("%s error: The '%s' option requires an argument.\n"));
1526 #line 186 "../save.c"
1527 puts(_("error %d (%s) stat-ing %s\n"));
1528 #line 238 "../save.c"
1529 puts(_("error %d (%s) stat-ing %s\n"));
1530 #line 143 "../restore.c"
1531 puts(_("%s error: no saved option state\n"));
1532 #line 231 "../autoopts.c"
1533 puts(_("'%s' is not a command line option.\n"));
1534 #line 113 "../time.c"
1535 puts(_("%s error: '%s' is not a recognizable date/time.\n"));
1536 #line 131 "../save.c"
1537 puts(_("'%s' not defined\n"));
1538 #line 50 "../time.c"
1539 puts(_("%s error: '%s' is not a recognizable time duration.\n"));
1540 #line 92 "../check.c"
1541 puts(_("%s error: The %s option must appear %d times.\n"));
1542 #line 165 "../numeric.c"
1543 puts(_("%s error: '%s' is not a recognizable number.\n"));
1544 #line 201 "../enum.c"
1545 puts(_("%s error: %s exceeds %s keyword count\n"));
1546 #line 330 "../usage.c"
1547 puts(_("Try '%s %s' for more information.\n"));
1548 #line 45 "../alias.c"
1549 puts(_("one %s%s option allowed\n"));
1550 #line 208 "../makeshell.c"
1551 puts(_("standard output"));
1552 #line 943 "../makeshell.c"
1553 puts(_("standard output"));
1554 #line 274 "../usage.c"
1555 puts(_("standard output"));
1556 #line 415 "../usage.c"
1557 puts(_("standard output"));
1558 #line 625 "../usage.c"
1559 puts(_("standard output"));
1560 #line 175 "../version.c"
1561 puts(_("standard output"));
1562 #line 274 "../usage.c"
1563 puts(_("standard error"));
1564 #line 415 "../usage.c"
1565 puts(_("standard error"));
1566 #line 625 "../usage.c"
1567 puts(_("standard error"));
1568 #line 175 "../version.c"
1569 puts(_("standard error"));
1570 #line 208 "../makeshell.c"
1572 #line 943 "../makeshell.c"
1574 #line 273 "../usage.c"
1576 #line 414 "../usage.c"
1578 #line 624 "../usage.c"
1580 #line 174 "../version.c"
1582 #line 60 "../numeric.c"
1583 puts(_("%s error: %s option value %ld is out of range.\n"));
1584 #line 44 "../check.c"
1585 puts(_("%s error: %s option requires the %s option\n"));
1586 #line 130 "../save.c"
1587 puts(_("%s warning: cannot save options - %s not regular file\n"));
1588 #line 185 "../save.c"
1589 puts(_("%s warning: cannot save options - %s not regular file\n"));
1590 #line 237 "../save.c"
1591 puts(_("%s warning: cannot save options - %s not regular file\n"));
1592 #line 256 "../save.c"
1593 puts(_("%s warning: cannot save options - %s not regular file\n"));
1594 #line 534 "../save.c"
1595 puts(_("%s warning: cannot save options - %s not regular file\n"));
1596 /* END-LIBOPTS-MESSAGES */
1599 #line 873 "../usage.c"
1600 puts(_("\t\t\t\t- an alternate for '%s'\n"));
1601 #line 1148 "../usage.c"
1602 puts(_("Version, usage and configuration options:"));
1603 #line 924 "../usage.c"
1604 puts(_("\t\t\t\t- default option for unnamed options\n"));
1605 #line 837 "../usage.c"
1606 puts(_("\t\t\t\t- disabled as '--%s'\n"));
1607 #line 1117 "../usage.c"
1608 puts(_(" --- %-14s %s\n"));
1609 #line 1115 "../usage.c"
1610 puts(_("This option has been disabled"));
1611 #line 864 "../usage.c"
1612 puts(_("\t\t\t\t- enabled by default\n"));
1613 #line 40 "../alias.c"
1614 puts(_("%s error: only "));
1615 #line 1194 "../usage.c"
1616 puts(_(" - examining environment variables named %s_*\n"));
1617 #line 168 "../file.c"
1618 puts(_("\t\t\t\t- file must not pre-exist\n"));
1619 #line 172 "../file.c"
1620 puts(_("\t\t\t\t- file must pre-exist\n"));
1621 #line 380 "../usage.c"
1622 puts(_("Options are specified by doubled hyphens and their name or by a single\n"
1623 "hyphen and the flag character.\n"));
1624 #line 921 "../makeshell.c"
1626 "= = = = = = = =\n\n"
1627 "This incarnation of genshell will produce\n"
1628 "a shell script to parse the options for %s:\n\n"));
1629 #line 167 "../enum.c"
1630 puts(_(" or an integer mask with any of the lower %d bits set\n"));
1631 #line 897 "../usage.c"
1632 puts(_("\t\t\t\t- is a set membership option\n"));
1633 #line 918 "../usage.c"
1634 puts(_("\t\t\t\t- must appear between %d and %d times\n"));
1635 #line 382 "../usage.c"
1636 puts(_("Options are specified by single or double hyphens and their name.\n"));
1637 #line 904 "../usage.c"
1638 puts(_("\t\t\t\t- may appear multiple times\n"));
1639 #line 891 "../usage.c"
1640 puts(_("\t\t\t\t- may not be preset\n"));
1641 #line 1309 "../usage.c"
1642 puts(_(" Arg Option-Name Description\n"));
1643 #line 1245 "../usage.c"
1644 puts(_(" Flg Arg Option-Name Description\n"));
1645 #line 1303 "../usage.c"
1646 puts(_(" Flg Arg Option-Name Description\n"));
1647 #line 1304 "../usage.c"
1649 #line 1310 "../usage.c"
1651 #line 387 "../usage.c"
1652 puts(_("The '-#<number>' option may omit the hash char\n"));
1653 #line 383 "../usage.c"
1654 puts(_("All arguments are named options.\n"));
1655 #line 971 "../usage.c"
1656 puts(_(" - reading file %s"));
1657 #line 409 "../usage.c"
1659 "Please send bug reports to: <%s>\n"));
1660 #line 100 "../version.c"
1662 "Please send bug reports to: <%s>\n"));
1663 #line 129 "../version.c"
1665 "Please send bug reports to: <%s>\n"));
1666 #line 903 "../usage.c"
1667 puts(_("\t\t\t\t- may NOT appear - preset only\n"));
1668 #line 944 "../usage.c"
1670 "The following option preset mechanisms are supported:\n"));
1671 #line 1192 "../usage.c"
1673 "The following option preset mechanisms are supported:\n"));
1674 #line 682 "../usage.c"
1675 puts(_("prohibits these options:\n"));
1676 #line 677 "../usage.c"
1677 puts(_("prohibits the option '%s'\n"));
1678 #line 81 "../numeric.c"
1679 puts(_("%s%ld to %ld"));
1680 #line 79 "../numeric.c"
1681 puts(_("%sgreater than or equal to %ld"));
1682 #line 75 "../numeric.c"
1683 puts(_("%s%ld exactly"));
1684 #line 68 "../numeric.c"
1685 puts(_("%sit must lie in one of the ranges:\n"));
1686 #line 68 "../numeric.c"
1687 puts(_("%sit must be in the range:\n"));
1688 #line 88 "../numeric.c"
1690 #line 66 "../numeric.c"
1691 puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
1692 #line 77 "../numeric.c"
1693 puts(_("%sless than or equal to %ld"));
1694 #line 390 "../usage.c"
1695 puts(_("Operands and options may be intermixed. They will be reordered.\n"));
1696 #line 652 "../usage.c"
1697 puts(_("requires the option '%s'\n"));
1698 #line 655 "../usage.c"
1699 puts(_("requires these options:\n"));
1700 #line 1321 "../usage.c"
1701 puts(_(" Arg Option-Name Req? Description\n"));
1702 #line 1315 "../usage.c"
1703 puts(_(" Flg Arg Option-Name Req? Description\n"));
1704 #line 168 "../enum.c"
1705 puts(_("or you may use a numeric representation. Preceding these with a '!'\n"
1706 "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
1707 "will set them all. Multiple entries may be passed as an option\n"
1708 "argument list.\n"));
1709 #line 910 "../usage.c"
1710 puts(_("\t\t\t\t- may appear up to %d times\n"));
1711 #line 77 "../enum.c"
1712 puts(_("The valid \"%s\" option keywords are:\n"));
1713 #line 1152 "../usage.c"
1714 puts(_("The next option supports vendor supported extra options:"));
1715 #line 773 "../usage.c"
1716 puts(_("These additional options are:"));
1717 /* END-USAGE-TEXT */
1719 #endif /* uncompilable code */
1723 /* danetool-args.c ends here */