/* -*- buffer-read-only: t -*- vi: set ro: * * DO NOT EDIT THIS FILE (danetool-args.c) * * It has been AutoGen-ed * From the definitions danetool-args.def * and the template file options * * Generated from AutoOpts 41:1:16 templates. * * AutoOpts is a copyrighted work. This source file is not encumbered * by AutoOpts licensing, but is provided under the licensing terms chosen * by the danetool author or copyright holder. AutoOpts is * licensed under the terms of the LGPL. The redistributable library * (``libopts'') is licensed under the terms of either the LGPL or, at the * users discretion, the BSD license. See the AutoOpts and/or libopts sources * for details. * * The danetool program is copyrighted and licensed * under the following terms: * * Copyright (C) 2000-@YEAR@ Free Software Foundation, and others, all rights reserved. * This is free software. It is licensed for use, modification and * redistribution under the terms of the GNU General Public License, * version 3 or later * * danetool is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * danetool is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #ifndef __doxygen__ #define OPTION_CODE_COMPILE 1 #include "danetool-args.h" #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif extern FILE * option_usage_fp; #define zCopyright (danetool_opt_strs+0) #define zLicenseDescrip (danetool_opt_strs+289) #ifndef NULL # define NULL 0 #endif /** * static const strings for danetool options */ static char const danetool_opt_strs[2849] = /* 0 */ "danetool @VERSION@\n" "Copyright (C) 2000-@YEAR@ Free Software Foundation, and others, all rights reserved.\n" "This is free software. It is licensed for use, modification and\n" "redistribution under the terms of the GNU General Public License,\n" "version 3 or later \n\0" /* 289 */ "danetool is free software: you can redistribute it and/or modify it under\n" "the terms of the GNU General Public License as published by the Free\n" "Software Foundation, either version 3 of the License, or (at your option)\n" "any later version.\n\n" "danetool is distributed in the hope that it will be useful, but WITHOUT ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n" "FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\n" "details.\n\n" "You should have received a copy of the GNU General Public License along\n" "with this program. If not, see .\n\0" /* 894 */ "Enable debugging\0" /* 911 */ "DEBUG\0" /* 917 */ "debug\0" /* 923 */ "More verbose output\0" /* 943 */ "VERBOSE\0" /* 951 */ "verbose\0" /* 959 */ "Input file\0" /* 970 */ "INFILE\0" /* 977 */ "infile\0" /* 984 */ "Output file\0" /* 996 */ "OUTFILE\0" /* 1004 */ "outfile\0" /* 1012 */ "Loads a public key file\0" /* 1036 */ "LOAD_PUBKEY\0" /* 1048 */ "load-pubkey\0" /* 1060 */ "Loads a certificate file\0" /* 1085 */ "LOAD_CERTIFICATE\0" /* 1102 */ "load-certificate\0" /* 1119 */ "Sets a DLV file\0" /* 1135 */ "DLV\0" /* 1139 */ "dlv\0" /* 1143 */ "Hash algorithm to use for signing\0" /* 1177 */ "HASH\0" /* 1182 */ "hash\0" /* 1187 */ "Check a host's DANE TLSA entry\0" /* 1218 */ "CHECK\0" /* 1224 */ "check\0" /* 1230 */ "Check only the end-entity's certificate\0" /* 1270 */ "CHECK_EE\0" /* 1279 */ "check-ee\0" /* 1288 */ "Check only the CA's certificate\0" /* 1320 */ "CHECK_CA\0" /* 1329 */ "check-ca\0" /* 1338 */ "Print the DANE RR data on a certificate or public key\0" /* 1392 */ "TLSA_RR\0" /* 1400 */ "tlsa-rr\0" /* 1408 */ "Specify the hostname to be used in the DANE RR\0" /* 1455 */ "HOST\0" /* 1460 */ "host\0" /* 1465 */ "The protocol set for DANE data (tcp, udp etc.)\0" /* 1512 */ "PROTO\0" /* 1518 */ "proto\0" /* 1524 */ "The port or service to connect to, for DANE data\0" /* 1573 */ "PORT\0" /* 1578 */ "port\0" /* 1583 */ "an alias for the 'starttls-proto' option\0" /* 1624 */ "app-proto\0" /* 1634 */ "The application protocol to be used to obtain the server's certificate\n" "(https, ftp, smtp, imap, ldap, xmpp)\0" /* 1742 */ "STARTTLS_PROTO\0" /* 1757 */ "starttls-proto\0" /* 1772 */ "Whether the provided certificate or public key is a Certificate\n" "Authority\0" /* 1846 */ "CA\0" /* 1849 */ "ca\0" /* 1852 */ "Use the hash of the X.509 certificate, rather than the public key\0" /* 1918 */ "X509\0" /* 1923 */ "x509\0" /* 1928 */ "an alias for the 'domain' option\0" /* 1961 */ "local\0" /* 1967 */ "The provided certificate or public key is issued by the local domain\0" /* 2036 */ "DOMAIN\0" /* 2043 */ "no-domain\0" /* 2053 */ "no\0" /* 2056 */ "Use the local DNS server for DNSSEC resolving\0" /* 2102 */ "LOCAL_DNS\0" /* 2112 */ "no-local-dns\0" /* 2125 */ "Do not verify any DNSSEC signature\0" /* 2160 */ "INSECURE\0" /* 2169 */ "insecure\0" /* 2178 */ "Use DER format for input certificates and private keys\0" /* 2233 */ "INDER\0" /* 2239 */ "no-inder\0" /* 2248 */ "an alias for the 'inder' option\0" /* 2280 */ "inraw\0" /* 2286 */ "Print the received DANE data in raw format\0" /* 2329 */ "PRINT_RAW\0" /* 2339 */ "no-print-raw\0" /* 2352 */ "Suppress several informational messages\0" /* 2392 */ "QUIET\0" /* 2398 */ "quiet\0" /* 2404 */ "display extended usage information and exit\0" /* 2448 */ "help\0" /* 2453 */ "extended usage information passed thru pager\0" /* 2498 */ "more-help\0" /* 2508 */ "output version information and exit\0" /* 2544 */ "version\0" /* 2552 */ "DANETOOL\0" /* 2561 */ "danetool - GnuTLS DANE tool\n" "Usage: %s [ - [] | --[{=| }] ]...\n\0" /* 2647 */ "@PACKAGE_BUGREPORT@\0" /* 2667 */ "\n\0" /* 2669 */ "Tool to generate and check DNS resource records for the DANE protocol.\n\0" /* 2741 */ "danetool @VERSION@\0" /* 2760 */ "danetool --[tlsa-rr|check] [options]\n" "danetool --help for additional usage instructions.\n"; /** * debug option description: */ /** Descriptive text for the debug option */ #define DEBUG_DESC (danetool_opt_strs+894) /** Upper-cased name for the debug option */ #define DEBUG_NAME (danetool_opt_strs+911) /** Name string for the debug option */ #define DEBUG_name (danetool_opt_strs+917) /** Compiled in flag settings for the debug option */ #define DEBUG_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC)) /** * verbose option description: */ /** Descriptive text for the verbose option */ #define VERBOSE_DESC (danetool_opt_strs+923) /** Upper-cased name for the verbose option */ #define VERBOSE_NAME (danetool_opt_strs+943) /** Name string for the verbose option */ #define VERBOSE_name (danetool_opt_strs+951) /** Compiled in flag settings for the verbose option */ #define VERBOSE_FLAGS (OPTST_DISABLED) /** * infile option description: */ /** Descriptive text for the infile option */ #define INFILE_DESC (danetool_opt_strs+959) /** Upper-cased name for the infile option */ #define INFILE_NAME (danetool_opt_strs+970) /** Name string for the infile option */ #define INFILE_name (danetool_opt_strs+977) /** Compiled in flag settings for the infile option */ #define INFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /** * outfile option description: */ /** Descriptive text for the outfile option */ #define OUTFILE_DESC (danetool_opt_strs+984) /** Upper-cased name for the outfile option */ #define OUTFILE_NAME (danetool_opt_strs+996) /** Name string for the outfile option */ #define OUTFILE_name (danetool_opt_strs+1004) /** Compiled in flag settings for the outfile option */ #define OUTFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /** * load-pubkey option description: */ /** Descriptive text for the load-pubkey option */ #define LOAD_PUBKEY_DESC (danetool_opt_strs+1012) /** Upper-cased name for the load-pubkey option */ #define LOAD_PUBKEY_NAME (danetool_opt_strs+1036) /** Name string for the load-pubkey option */ #define LOAD_PUBKEY_name (danetool_opt_strs+1048) /** Compiled in flag settings for the load-pubkey option */ #define LOAD_PUBKEY_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /** * load-certificate option description: */ /** Descriptive text for the load-certificate option */ #define LOAD_CERTIFICATE_DESC (danetool_opt_strs+1060) /** Upper-cased name for the load-certificate option */ #define LOAD_CERTIFICATE_NAME (danetool_opt_strs+1085) /** Name string for the load-certificate option */ #define LOAD_CERTIFICATE_name (danetool_opt_strs+1102) /** Compiled in flag settings for the load-certificate option */ #define LOAD_CERTIFICATE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /** * dlv option description: */ /** Descriptive text for the dlv option */ #define DLV_DESC (danetool_opt_strs+1119) /** Upper-cased name for the dlv option */ #define DLV_NAME (danetool_opt_strs+1135) /** Name string for the dlv option */ #define DLV_name (danetool_opt_strs+1139) /** Compiled in flag settings for the dlv option */ #define DLV_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /** * hash option description: */ /** Descriptive text for the hash option */ #define HASH_DESC (danetool_opt_strs+1143) /** Upper-cased name for the hash option */ #define HASH_NAME (danetool_opt_strs+1177) /** Name string for the hash option */ #define HASH_name (danetool_opt_strs+1182) /** Compiled in flag settings for the hash option */ #define HASH_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /** * check option description: */ /** Descriptive text for the check option */ #define CHECK_DESC (danetool_opt_strs+1187) /** Upper-cased name for the check option */ #define CHECK_NAME (danetool_opt_strs+1218) /** Name string for the check option */ #define CHECK_name (danetool_opt_strs+1224) /** Compiled in flag settings for the check option */ #define CHECK_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /** * check-ee option description: */ /** Descriptive text for the check-ee option */ #define CHECK_EE_DESC (danetool_opt_strs+1230) /** Upper-cased name for the check-ee option */ #define CHECK_EE_NAME (danetool_opt_strs+1270) /** Name string for the check-ee option */ #define CHECK_EE_name (danetool_opt_strs+1279) /** Compiled in flag settings for the check-ee option */ #define CHECK_EE_FLAGS (OPTST_DISABLED) /** * check-ca option description: */ /** Descriptive text for the check-ca option */ #define CHECK_CA_DESC (danetool_opt_strs+1288) /** Upper-cased name for the check-ca option */ #define CHECK_CA_NAME (danetool_opt_strs+1320) /** Name string for the check-ca option */ #define CHECK_CA_name (danetool_opt_strs+1329) /** Compiled in flag settings for the check-ca option */ #define CHECK_CA_FLAGS (OPTST_DISABLED) /** * tlsa-rr option description with * "Must also have options" and "Incompatible options": */ /** Descriptive text for the tlsa-rr option */ #define TLSA_RR_DESC (danetool_opt_strs+1338) /** Upper-cased name for the tlsa-rr option */ #define TLSA_RR_NAME (danetool_opt_strs+1392) /** Name string for the tlsa-rr option */ #define TLSA_RR_name (danetool_opt_strs+1400) /** Other options that are required by the tlsa-rr option */ static int const aTlsa_RrMustList[] = { INDEX_OPT_HOST, NO_EQUIVALENT }; /** Compiled in flag settings for the tlsa-rr option */ #define TLSA_RR_FLAGS (OPTST_DISABLED) /** * host option description: */ /** Descriptive text for the host option */ #define HOST_DESC (danetool_opt_strs+1408) /** Upper-cased name for the host option */ #define HOST_NAME (danetool_opt_strs+1455) /** Name string for the host option */ #define HOST_name (danetool_opt_strs+1460) /** Compiled in flag settings for the host option */ #define HOST_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /** * proto option description: */ /** Descriptive text for the proto option */ #define PROTO_DESC (danetool_opt_strs+1465) /** Upper-cased name for the proto option */ #define PROTO_NAME (danetool_opt_strs+1512) /** Name string for the proto option */ #define PROTO_name (danetool_opt_strs+1518) /** Compiled in flag settings for the proto option */ #define PROTO_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /** * port option description: */ /** Descriptive text for the port option */ #define PORT_DESC (danetool_opt_strs+1524) /** Upper-cased name for the port option */ #define PORT_NAME (danetool_opt_strs+1573) /** Name string for the port option */ #define PORT_name (danetool_opt_strs+1578) /** Compiled in flag settings for the port option */ #define PORT_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /** * app-proto option description: */ /** Descriptive text for the app-proto option */ #define APP_PROTO_DESC (danetool_opt_strs+1583) #define APP_PROTO_NAME NULL /** Unmodified name string for the app-proto option */ #define APP_PROTO_name (danetool_opt_strs+1624) /** Compiled in flag settings for the app-proto option */ #define APP_PROTO_FLAGS (STARTTLS_PROTO_FLAGS | OPTST_ALIAS) /** * starttls-proto option description: */ /** Descriptive text for the starttls-proto option */ #define STARTTLS_PROTO_DESC (danetool_opt_strs+1634) /** Upper-cased name for the starttls-proto option */ #define STARTTLS_PROTO_NAME (danetool_opt_strs+1742) /** Name string for the starttls-proto option */ #define STARTTLS_PROTO_name (danetool_opt_strs+1757) /** Compiled in flag settings for the starttls-proto option */ #define STARTTLS_PROTO_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /** * ca option description: */ /** Descriptive text for the ca option */ #define CA_DESC (danetool_opt_strs+1772) /** Upper-cased name for the ca option */ #define CA_NAME (danetool_opt_strs+1846) /** Name string for the ca option */ #define CA_name (danetool_opt_strs+1849) /** Compiled in flag settings for the ca option */ #define CA_FLAGS (OPTST_DISABLED) /** * x509 option description: */ /** Descriptive text for the x509 option */ #define X509_DESC (danetool_opt_strs+1852) /** Upper-cased name for the x509 option */ #define X509_NAME (danetool_opt_strs+1918) /** Name string for the x509 option */ #define X509_name (danetool_opt_strs+1923) /** Compiled in flag settings for the x509 option */ #define X509_FLAGS (OPTST_DISABLED) /** * local option description: */ /** Descriptive text for the local option */ #define LOCAL_DESC (danetool_opt_strs+1928) #define LOCAL_NAME NULL /** Unmodified name string for the local option */ #define LOCAL_name (danetool_opt_strs+1961) /** Compiled in flag settings for the local option */ #define LOCAL_FLAGS (DOMAIN_FLAGS | OPTST_ALIAS) /** * domain option description: */ /** Descriptive text for the domain option */ #define DOMAIN_DESC (danetool_opt_strs+1967) /** Upper-cased name for the domain option */ #define DOMAIN_NAME (danetool_opt_strs+2036) /** disablement name for the domain option */ #define NOT_DOMAIN_name (danetool_opt_strs+2043) /** disablement prefix for the domain option */ #define NOT_DOMAIN_PFX (danetool_opt_strs+2053) /** Name string for the domain option */ #define DOMAIN_name (NOT_DOMAIN_name + 3) /** Compiled in flag settings for the domain option */ #define DOMAIN_FLAGS (OPTST_INITENABLED) /** * local-dns option description: */ /** Descriptive text for the local-dns option */ #define LOCAL_DNS_DESC (danetool_opt_strs+2056) /** Upper-cased name for the local-dns option */ #define LOCAL_DNS_NAME (danetool_opt_strs+2102) /** disablement name for the local-dns option */ #define NOT_LOCAL_DNS_name (danetool_opt_strs+2112) /** disablement prefix for the local-dns option */ #define NOT_LOCAL_DNS_PFX (danetool_opt_strs+2053) /** Name string for the local-dns option */ #define LOCAL_DNS_name (NOT_LOCAL_DNS_name + 3) /** Compiled in flag settings for the local-dns option */ #define LOCAL_DNS_FLAGS (OPTST_DISABLED) /** * insecure option description: */ /** Descriptive text for the insecure option */ #define INSECURE_DESC (danetool_opt_strs+2125) /** Upper-cased name for the insecure option */ #define INSECURE_NAME (danetool_opt_strs+2160) /** Name string for the insecure option */ #define INSECURE_name (danetool_opt_strs+2169) /** Compiled in flag settings for the insecure option */ #define INSECURE_FLAGS (OPTST_DISABLED) /** * inder option description: */ /** Descriptive text for the inder option */ #define INDER_DESC (danetool_opt_strs+2178) /** Upper-cased name for the inder option */ #define INDER_NAME (danetool_opt_strs+2233) /** disablement name for the inder option */ #define NOT_INDER_name (danetool_opt_strs+2239) /** disablement prefix for the inder option */ #define NOT_INDER_PFX (danetool_opt_strs+2053) /** Name string for the inder option */ #define INDER_name (NOT_INDER_name + 3) /** Compiled in flag settings for the inder option */ #define INDER_FLAGS (OPTST_DISABLED) /** * inraw option description: */ /** Descriptive text for the inraw option */ #define INRAW_DESC (danetool_opt_strs+2248) #define INRAW_NAME NULL /** Unmodified name string for the inraw option */ #define INRAW_name (danetool_opt_strs+2280) /** Compiled in flag settings for the inraw option */ #define INRAW_FLAGS (INDER_FLAGS | OPTST_ALIAS) /** * print-raw option description: */ /** Descriptive text for the print-raw option */ #define PRINT_RAW_DESC (danetool_opt_strs+2286) /** Upper-cased name for the print-raw option */ #define PRINT_RAW_NAME (danetool_opt_strs+2329) /** disablement name for the print-raw option */ #define NOT_PRINT_RAW_name (danetool_opt_strs+2339) /** disablement prefix for the print-raw option */ #define NOT_PRINT_RAW_PFX (danetool_opt_strs+2053) /** Name string for the print-raw option */ #define PRINT_RAW_name (NOT_PRINT_RAW_name + 3) /** Compiled in flag settings for the print-raw option */ #define PRINT_RAW_FLAGS (OPTST_DISABLED) /** * quiet option description: */ /** Descriptive text for the quiet option */ #define QUIET_DESC (danetool_opt_strs+2352) /** Upper-cased name for the quiet option */ #define QUIET_NAME (danetool_opt_strs+2392) /** Name string for the quiet option */ #define QUIET_name (danetool_opt_strs+2398) /** Compiled in flag settings for the quiet option */ #define QUIET_FLAGS (OPTST_DISABLED) /* * Help/More_Help/Version option descriptions: */ #define HELP_DESC (danetool_opt_strs+2404) #define HELP_name (danetool_opt_strs+2448) #ifdef HAVE_WORKING_FORK #define MORE_HELP_DESC (danetool_opt_strs+2453) #define MORE_HELP_name (danetool_opt_strs+2498) #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT) #else #define MORE_HELP_DESC HELP_DESC #define MORE_HELP_name HELP_name #define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) #endif #ifdef NO_OPTIONAL_OPT_ARGS # define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT) #else # define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \ OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT) #endif #define VER_DESC (danetool_opt_strs+2508) #define VER_name (danetool_opt_strs+2544) /** * Declare option callback procedures */ extern tOptProc optionBooleanVal, optionNestedVal, optionNumericVal, optionPagedUsage, optionPrintVersion, optionResetOpt, optionStackArg, optionTimeDate, optionTimeVal, optionUnstackArg, optionVendorOption; static tOptProc doOptApp_Proto, doOptDebug, doOptInfile, doOptInraw, doOptLocal, doUsageOpt; #define VER_PROC optionPrintVersion /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /** * Define the danetool Option Descriptions. * This is an array of OPTION_CT entries, one for each * option that the danetool program responds to. */ static tOptDesc optDesc[OPTION_CT] = { { /* entry idx, value */ 0, VALUE_OPT_DEBUG, /* equiv idx, value */ 0, VALUE_OPT_DEBUG, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ DEBUG_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --debug */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ doOptDebug, /* desc, NAME, name */ DEBUG_DESC, DEBUG_NAME, DEBUG_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 1, VALUE_OPT_VERBOSE, /* equiv idx, value */ 1, VALUE_OPT_VERBOSE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, NOLIMIT, 0, /* opt state flags */ VERBOSE_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --verbose */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ VERBOSE_DESC, VERBOSE_NAME, VERBOSE_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 2, VALUE_OPT_INFILE, /* equiv idx, value */ 2, VALUE_OPT_INFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ INFILE_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --infile */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ doOptInfile, /* desc, NAME, name */ INFILE_DESC, INFILE_NAME, INFILE_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 3, VALUE_OPT_OUTFILE, /* equiv idx, value */ 3, VALUE_OPT_OUTFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ OUTFILE_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --outfile */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ OUTFILE_DESC, OUTFILE_NAME, OUTFILE_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 4, VALUE_OPT_LOAD_PUBKEY, /* equiv idx, value */ 4, VALUE_OPT_LOAD_PUBKEY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ LOAD_PUBKEY_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --load-pubkey */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ LOAD_PUBKEY_DESC, LOAD_PUBKEY_NAME, LOAD_PUBKEY_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 5, VALUE_OPT_LOAD_CERTIFICATE, /* equiv idx, value */ 5, VALUE_OPT_LOAD_CERTIFICATE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ LOAD_CERTIFICATE_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --load-certificate */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ LOAD_CERTIFICATE_DESC, LOAD_CERTIFICATE_NAME, LOAD_CERTIFICATE_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 6, VALUE_OPT_DLV, /* equiv idx, value */ 6, VALUE_OPT_DLV, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ DLV_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --dlv */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ DLV_DESC, DLV_NAME, DLV_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 7, VALUE_OPT_HASH, /* equiv idx, value */ 7, VALUE_OPT_HASH, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ HASH_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --hash */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ HASH_DESC, HASH_NAME, HASH_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 8, VALUE_OPT_CHECK, /* equiv idx, value */ 8, VALUE_OPT_CHECK, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ CHECK_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --check */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ CHECK_DESC, CHECK_NAME, CHECK_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 9, VALUE_OPT_CHECK_EE, /* equiv idx, value */ 9, VALUE_OPT_CHECK_EE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ CHECK_EE_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --check-ee */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ CHECK_EE_DESC, CHECK_EE_NAME, CHECK_EE_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 10, VALUE_OPT_CHECK_CA, /* equiv idx, value */ 10, VALUE_OPT_CHECK_CA, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ CHECK_CA_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --check-ca */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ CHECK_CA_DESC, CHECK_CA_NAME, CHECK_CA_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 11, VALUE_OPT_TLSA_RR, /* equiv idx, value */ 11, VALUE_OPT_TLSA_RR, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ TLSA_RR_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --tlsa-rr */ /* arg list/cookie */ NULL, /* must/cannot opts */ aTlsa_RrMustList, NULL, /* option proc */ NULL, /* desc, NAME, name */ TLSA_RR_DESC, TLSA_RR_NAME, TLSA_RR_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 12, VALUE_OPT_HOST, /* equiv idx, value */ 12, VALUE_OPT_HOST, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ HOST_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --host */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ HOST_DESC, HOST_NAME, HOST_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 13, VALUE_OPT_PROTO, /* equiv idx, value */ 13, VALUE_OPT_PROTO, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PROTO_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --proto */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ PROTO_DESC, PROTO_NAME, PROTO_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 14, VALUE_OPT_PORT, /* equiv idx, value */ 14, VALUE_OPT_PORT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PORT_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --port */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ PORT_DESC, PORT_NAME, PORT_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 15, VALUE_OPT_APP_PROTO, /* equiv idx, value */ 15, VALUE_OPT_APP_PROTO, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ APP_PROTO_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --app-proto */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ doOptApp_Proto, /* desc, NAME, name */ APP_PROTO_DESC, APP_PROTO_NAME, APP_PROTO_name, /* disablement strs */ 0, 0 }, { /* entry idx, value */ 16, VALUE_OPT_STARTTLS_PROTO, /* equiv idx, value */ 16, VALUE_OPT_STARTTLS_PROTO, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ STARTTLS_PROTO_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --starttls-proto */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ STARTTLS_PROTO_DESC, STARTTLS_PROTO_NAME, STARTTLS_PROTO_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 17, VALUE_OPT_CA, /* equiv idx, value */ 17, VALUE_OPT_CA, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ CA_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --ca */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ CA_DESC, CA_NAME, CA_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 18, VALUE_OPT_X509, /* equiv idx, value */ 18, VALUE_OPT_X509, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --x509 */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ X509_DESC, X509_NAME, X509_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 19, VALUE_OPT_LOCAL, /* equiv idx, value */ 19, VALUE_OPT_LOCAL, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ LOCAL_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --local */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ doOptLocal, /* desc, NAME, name */ LOCAL_DESC, LOCAL_NAME, LOCAL_name, /* disablement strs */ 0, 0 }, { /* entry idx, value */ 20, VALUE_OPT_DOMAIN, /* equiv idx, value */ 20, VALUE_OPT_DOMAIN, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ DOMAIN_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --domain */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ DOMAIN_DESC, DOMAIN_NAME, DOMAIN_name, /* disablement strs */ NOT_DOMAIN_name, NOT_DOMAIN_PFX }, { /* entry idx, value */ 21, VALUE_OPT_LOCAL_DNS, /* equiv idx, value */ 21, VALUE_OPT_LOCAL_DNS, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ LOCAL_DNS_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --local-dns */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ LOCAL_DNS_DESC, LOCAL_DNS_NAME, LOCAL_DNS_name, /* disablement strs */ NOT_LOCAL_DNS_name, NOT_LOCAL_DNS_PFX }, { /* entry idx, value */ 22, VALUE_OPT_INSECURE, /* equiv idx, value */ 22, VALUE_OPT_INSECURE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ INSECURE_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --insecure */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ INSECURE_DESC, INSECURE_NAME, INSECURE_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ 23, VALUE_OPT_INDER, /* equiv idx, value */ 23, VALUE_OPT_INDER, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ INDER_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --inder */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ INDER_DESC, INDER_NAME, INDER_name, /* disablement strs */ NOT_INDER_name, NOT_INDER_PFX }, { /* entry idx, value */ 24, VALUE_OPT_INRAW, /* equiv idx, value */ 24, VALUE_OPT_INRAW, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ INRAW_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --inraw */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ doOptInraw, /* desc, NAME, name */ INRAW_DESC, INRAW_NAME, INRAW_name, /* disablement strs */ 0, 0 }, { /* entry idx, value */ 25, VALUE_OPT_PRINT_RAW, /* equiv idx, value */ 25, VALUE_OPT_PRINT_RAW, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PRINT_RAW_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --print-raw */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ PRINT_RAW_DESC, PRINT_RAW_NAME, PRINT_RAW_name, /* disablement strs */ NOT_PRINT_RAW_name, NOT_PRINT_RAW_PFX }, { /* entry idx, value */ 26, VALUE_OPT_QUIET, /* equiv idx, value */ 26, VALUE_OPT_QUIET, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ QUIET_FLAGS, 0, /* last opt argumnt */ { NULL }, /* --quiet */ /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ NULL, /* desc, NAME, name */ QUIET_DESC, QUIET_NAME, QUIET_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION, /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ VER_FLAGS, AOUSE_VERSION, /* last opt argumnt */ { NULL }, /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ VER_PROC, /* desc, NAME, name */ VER_DESC, NULL, VER_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP, /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP, /* last opt argumnt */ { NULL }, /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ doUsageOpt, /* desc, NAME, name */ HELP_DESC, NULL, HELP_name, /* disablement strs */ NULL, NULL }, { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP, /* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ MORE_HELP_FLAGS, AOUSE_MORE_HELP, /* last opt argumnt */ { NULL }, /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, /* option proc */ optionPagedUsage, /* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name, /* disablement strs */ NULL, NULL } }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /** Reference to the upper cased version of danetool. */ #define zPROGNAME (danetool_opt_strs+2552) /** Reference to the title line for danetool usage. */ #define zUsageTitle (danetool_opt_strs+2561) /** There is no danetool configuration file. */ #define zRcName NULL /** There are no directories to search for danetool config files. */ #define apzHomeList NULL /** The danetool program bug email address. */ #define zBugsAddr (danetool_opt_strs+2647) /** Clarification/explanation of what danetool does. */ #define zExplain (danetool_opt_strs+2667) /** Extra detail explaining what danetool does. */ #define zDetail (danetool_opt_strs+2669) /** The full version string for danetool. */ #define zFullVersion (danetool_opt_strs+2741) /* extracted from optcode.tlib near line 364 */ #if defined(ENABLE_NLS) # define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT static tOptionXlateProc translate_option_strings; #else # define OPTPROC_BASE OPTPROC_NONE # define translate_option_strings NULL #endif /* ENABLE_NLS */ #define danetool_full_usage (NULL) #define danetool_short_usage (danetool_opt_strs+2760) #endif /* not defined __doxygen__ */ /* * Create the static procedure(s) declared above. */ /** * The callout function that invokes the optionUsage function. * * @param[in] opts the AutoOpts option description structure * @param[in] od the descriptor for the "help" (usage) option. * @noreturn */ static void doUsageOpt(tOptions * opts, tOptDesc * od) { int ex_code; ex_code = DANETOOL_EXIT_SUCCESS; optionUsage(&danetoolOptions, ex_code); /* NOTREACHED */ exit(DANETOOL_EXIT_FAILURE); (void)opts; (void)od; } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /** * Code to handle the debug option. * Specifies the debug level. * @param[in] pOptions the danetool options data structure * @param[in,out] pOptDesc the option descriptor for this option. */ static void doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc) { static struct {long rmin, rmax;} const rng[1] = { { 0 , 9999 } }; int ix; if (pOptions <= OPTPROC_EMIT_LIMIT) goto emit_ranges; optionNumericVal(pOptions, pOptDesc); for (ix = 0; ix < 1; ix++) { if (pOptDesc->optArg.argInt < rng[ix].rmin) continue; /* ranges need not be ordered. */ if (pOptDesc->optArg.argInt == rng[ix].rmin) return; if (rng[ix].rmax == LONG_MIN) continue; if (pOptDesc->optArg.argInt <= rng[ix].rmax) return; } option_usage_fp = stderr; emit_ranges: optionShowRange(pOptions, pOptDesc, VOIDP(rng), 1); } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /** * Code to handle the infile option. * * @param[in] pOptions the danetool options data structure * @param[in,out] pOptDesc the option descriptor for this option. */ static void doOptInfile(tOptions* pOptions, tOptDesc* pOptDesc) { static teOptFileType const type = FTYPE_MODE_MUST_EXIST + FTYPE_MODE_NO_OPEN; static tuFileMode mode; #ifndef O_CLOEXEC # define O_CLOEXEC 0 #endif mode.file_flags = O_CLOEXEC; /* * This function handles special invalid values for "pOptions" */ optionFileCheck(pOptions, pOptDesc, type, mode); } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /** * Code to handle the app-proto option. * * @param[in] pOptions the danetool options data structure * @param[in,out] pOptDesc the option descriptor for this option. */ static void doOptApp_Proto(tOptions* pOptions, tOptDesc* pOptDesc) { int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_STARTTLS_PROTO); if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0)) USAGE(DANETOOL_EXIT_USAGE_ERROR); } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /** * Code to handle the local option. * * @param[in] pOptions the danetool options data structure * @param[in,out] pOptDesc the option descriptor for this option. */ static void doOptLocal(tOptions* pOptions, tOptDesc* pOptDesc) { int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_DOMAIN); if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0)) USAGE(DANETOOL_EXIT_USAGE_ERROR); } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /** * Code to handle the inraw option. * * @param[in] pOptions the danetool options data structure * @param[in,out] pOptDesc the option descriptor for this option. */ static void doOptInraw(tOptions* pOptions, tOptDesc* pOptDesc) { int res = optionAlias(pOptions, pOptDesc, INDEX_OPT_INDER); if ((res != 0) && ((pOptions->fOptSet & OPTPROC_ERRSTOP) != 0)) USAGE(DANETOOL_EXIT_USAGE_ERROR); } /* extracted from optmain.tlib near line 1250 */ /** * The directory containing the data associated with danetool. */ #ifndef PKGDATADIR # define PKGDATADIR "" #endif /** * Information about the person or institution that packaged danetool * for the current distribution. */ #ifndef WITH_PACKAGER # define danetool_packager_info NULL #else /** Packager information for danetool. */ static char const danetool_packager_info[] = "Packaged by " WITH_PACKAGER # ifdef WITH_PACKAGER_VERSION " ("WITH_PACKAGER_VERSION")" # endif # ifdef WITH_PACKAGER_BUG_REPORTS "\nReport danetool bugs to " WITH_PACKAGER_BUG_REPORTS # endif "\n"; #endif #ifndef __doxygen__ #endif /* __doxygen__ */ /** * The option definitions for danetool. The one structure that * binds them all. */ tOptions danetoolOptions = { OPTIONS_STRUCT_VERSION, 0, NULL, /* original argc + argv */ ( OPTPROC_BASE + OPTPROC_ERRSTOP + OPTPROC_SHORTOPT + OPTPROC_LONGOPT + OPTPROC_NO_REQ_OPT + OPTPROC_NEGATIONS + OPTPROC_NO_ARGS + OPTPROC_GNUUSAGE + OPTPROC_MISUSE ), 0, NULL, /* current option index, current option */ NULL, NULL, zPROGNAME, zRcName, zCopyright, zLicenseDescrip, zFullVersion, apzHomeList, zUsageTitle, zExplain, zDetail, optDesc, zBugsAddr, /* address to send bugs to */ NULL, NULL, /* extensions/saved state */ optionUsage, /* usage procedure */ translate_option_strings, /* translation procedure */ /* * Indexes to special options */ { INDEX_OPT_MORE_HELP, /* more-help option index */ NO_EQUIVALENT, /* save option index */ NO_EQUIVALENT, /* '-#' option index */ NO_EQUIVALENT /* index of default opt */ }, 30 /* full option count */, 27 /* user option count */, danetool_full_usage, danetool_short_usage, NULL, NULL, PKGDATADIR, danetool_packager_info }; #if ENABLE_NLS /** * This code is designed to translate translatable option text for the * danetool program. These translations happen upon entry * to optionProcess(). */ #include #include #include #include #ifdef HAVE_DCGETTEXT # include #endif #include static char * AO_gettext(char const * pz); static void coerce_it(void ** s); /** * AutoGen specific wrapper function for gettext. It relies on the macro _() * to convert from English to the target language, then strdup-duplicates the * result string. It tries the "libopts" domain first, then whatever has been * set via the \a textdomain(3) call. * * @param[in] pz the input text used as a lookup key. * @returns the translated text (if there is one), * or the original text (if not). */ static char * AO_gettext(char const * pz) { char * res; if (pz == NULL) return NULL; #ifdef HAVE_DCGETTEXT /* * While processing the option_xlateable_txt data, try to use the * "libopts" domain. Once we switch to the option descriptor data, * do *not* use that domain. */ if (option_xlateable_txt.field_ct != 0) { res = dgettext("libopts", pz); if (res == pz) res = (char *)VOIDP(_(pz)); } else res = (char *)VOIDP(_(pz)); #else res = (char *)VOIDP(_(pz)); #endif if (res == pz) return res; res = strdup(res); if (res == NULL) { fputs(_("No memory for duping translated strings\n"), stderr); exit(DANETOOL_EXIT_FAILURE); } return res; } /** * All the pointers we use are marked "* const", but they are stored in * writable memory. Coerce the mutability and set the pointer. */ static void coerce_it(void ** s) { *s = AO_gettext(*s); } /** * Translate all the translatable strings in the danetoolOptions * structure defined above. This is done only once. */ static void translate_option_strings(void) { tOptions * const opts = &danetoolOptions; /* * Guard against re-translation. It won't work. The strings will have * been changed by the first pass through this code. One shot only. */ if (option_xlateable_txt.field_ct != 0) { /* * Do the translations. The first pointer follows the field count * field. The field count field is the size of a pointer. */ char ** ppz = (char**)VOIDP(&(option_xlateable_txt)); int ix = option_xlateable_txt.field_ct; do { ppz++; /* skip over field_ct */ *ppz = AO_gettext(*ppz); } while (--ix > 0); /* prevent re-translation and disable "libopts" domain lookup */ option_xlateable_txt.field_ct = 0; coerce_it(VOIDP(&(opts->pzCopyright))); coerce_it(VOIDP(&(opts->pzCopyNotice))); coerce_it(VOIDP(&(opts->pzFullVersion))); coerce_it(VOIDP(&(opts->pzUsageTitle))); coerce_it(VOIDP(&(opts->pzExplain))); coerce_it(VOIDP(&(opts->pzDetail))); { tOptDesc * od = opts->pOptDesc; for (ix = opts->optCt; ix > 0; ix--, od++) coerce_it(VOIDP(&(od->pzText))); } } } #endif /* ENABLE_NLS */ #ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT /** I18N function strictly for xgettext. Do not compile. */ static void bogus_function(void) { /* TRANSLATORS: The following dummy function was crated solely so that xgettext can extract the correct strings. These strings are actually referenced by a field name in the danetoolOptions structure noted in the comments below. The literal text is defined in danetool_opt_strs. NOTE: the strings below are segmented with respect to the source string danetool_opt_strs. The strings above are handed off for translation at run time a paragraph at a time. Consequently, they are presented here for translation a paragraph at a time. ALSO: often the description for an option will reference another option by name. These are set off with apostrophe quotes (I hope). Do not translate option names. */ /* referenced via danetoolOptions.pzCopyright */ puts(_("danetool @VERSION@\n\ Copyright (C) 2000-@YEAR@ Free Software Foundation, and others, all rights reserved.\n\ This is free software. It is licensed for use, modification and\n\ redistribution under the terms of the GNU General Public License,\n\ version 3 or later \n")); /* referenced via danetoolOptions.pzCopyNotice */ puts(_("danetool is free software: you can redistribute it and/or modify it under\n\ the terms of the GNU General Public License as published by the Free\n\ Software Foundation, either version 3 of the License, or (at your option)\n\ any later version.\n\n")); puts(_("danetool is distributed in the hope that it will be useful, but WITHOUT ANY\n\ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n\ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\n\ details.\n\n")); puts(_("You should have received a copy of the GNU General Public License along\n\ with this program. If not, see .\n")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Enable debugging")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("More verbose output")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Input file")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Output file")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Loads a public key file")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Loads a certificate file")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Sets a DLV file")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Hash algorithm to use for signing")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Check a host's DANE TLSA entry")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Check only the end-entity's certificate")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Check only the CA's certificate")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Print the DANE RR data on a certificate or public key")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Specify the hostname to be used in the DANE RR")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("The protocol set for DANE data (tcp, udp etc.)")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("The port or service to connect to, for DANE data")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("an alias for the 'starttls-proto' option")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("The application protocol to be used to obtain the server's certificate\n\ (https, ftp, smtp, imap, ldap, xmpp)")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Whether the provided certificate or public key is a Certificate\n\ Authority")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Use the hash of the X.509 certificate, rather than the public key")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("an alias for the 'domain' option")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("The provided certificate or public key is issued by the local domain")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Use the local DNS server for DNSSEC resolving")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Do not verify any DNSSEC signature")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Use DER format for input certificates and private keys")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("an alias for the 'inder' option")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Print the received DANE data in raw format")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("Suppress several informational messages")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("display extended usage information and exit")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("extended usage information passed thru pager")); /* referenced via danetoolOptions.pOptDesc->pzText */ puts(_("output version information and exit")); /* referenced via danetoolOptions.pzUsageTitle */ puts(_("danetool - GnuTLS DANE tool\n\ Usage: %s [ - [] | --[{=| }] ]...\n")); /* referenced via danetoolOptions.pzExplain */ puts(_("\n")); /* referenced via danetoolOptions.pzDetail */ puts(_("Tool to generate and check DNS resource records for the DANE protocol.\n")); /* referenced via danetoolOptions.pzFullVersion */ puts(_("danetool @VERSION@")); /* referenced via danetoolOptions.pzFullUsage */ puts(_("<<>>")); /* referenced via danetoolOptions.pzShortUsage */ puts(_("danetool --[tlsa-rr|check] [options]\n\ danetool --help for additional usage instructions.\n")); /* LIBOPTS-MESSAGES: */ #line 67 "../autoopts.c" puts(_("allocation of %d bytes failed\n")); #line 93 "../autoopts.c" puts(_("allocation of %d bytes failed\n")); #line 53 "../init.c" puts(_("AutoOpts function called without option descriptor\n")); #line 86 "../init.c" puts(_("\tThis exceeds the compiled library version: ")); #line 84 "../init.c" puts(_("Automated Options Processing Error!\n" "\t%s called AutoOpts function with structure version %d:%d:%d.\n")); #line 80 "../autoopts.c" puts(_("realloc of %d bytes at 0x%p failed\n")); #line 88 "../init.c" puts(_("\tThis is less than the minimum library version: ")); #line 121 "../version.c" puts(_("Automated Options version %s\n" "\tCopyright (C) 1999-2014 by Bruce Korb - all rights reserved\n")); #line 87 "../makeshell.c" puts(_("(AutoOpts bug): %s.\n")); #line 90 "../reset.c" puts(_("optionResetOpt() called, but reset-option not configured")); #line 295 "../usage.c" puts(_("could not locate the 'help' option")); #line 336 "../autoopts.c" puts(_("optionProcess() was called with invalid data")); #line 751 "../usage.c" puts(_("invalid argument type specified")); #line 598 "../find.c" puts(_("defaulted to option with optional arg")); #line 76 "../alias.c" puts(_("aliasing option is out of range.")); #line 235 "../enum.c" puts(_("%s error: the keyword '%s' is ambiguous for %s\n")); #line 108 "../find.c" puts(_(" The following options match:\n")); #line 293 "../find.c" puts(_("%s: ambiguous option name: %s (matches %d options)\n")); #line 161 "../check.c" puts(_("%s: Command line arguments required\n")); #line 43 "../alias.c" puts(_("%d %s%s options allowed\n")); #line 94 "../makeshell.c" puts(_("%s error %d (%s) calling %s for '%s'\n")); #line 306 "../makeshell.c" puts(_("interprocess pipe")); #line 168 "../version.c" puts(_("error: version option argument '%c' invalid. Use:\n" "\t'v' - version only\n" "\t'c' - version and copyright\n" "\t'n' - version and full copyright notice\n")); #line 58 "../check.c" puts(_("%s error: the '%s' and '%s' options conflict\n")); #line 217 "../find.c" puts(_("%s: The '%s' option has been disabled.")); #line 430 "../find.c" puts(_("%s: The '%s' option has been disabled.")); #line 38 "../alias.c" puts(_("-equivalence")); #line 469 "../find.c" puts(_("%s: illegal option -- %c\n")); #line 110 "../reset.c" puts(_("%s: illegal option -- %c\n")); #line 271 "../find.c" puts(_("%s: illegal option -- %s\n")); #line 755 "../find.c" puts(_("%s: illegal option -- %s\n")); #line 118 "../reset.c" puts(_("%s: illegal option -- %s\n")); #line 335 "../find.c" puts(_("%s: unknown vendor extension option -- %s\n")); #line 160 "../enum.c" puts(_(" or an integer from %d through %d\n")); #line 170 "../enum.c" puts(_(" or an integer from %d through %d\n")); #line 750 "../usage.c" puts(_("%s error: invalid option descriptor for %s\n")); #line 1084 "../usage.c" puts(_("%s error: invalid option descriptor for %s\n")); #line 385 "../find.c" puts(_("%s: invalid option name: %s\n")); #line 527 "../find.c" puts(_("%s: The '%s' option requires an argument.\n")); #line 156 "../autoopts.c" puts(_("(AutoOpts bug): Equivalenced option '%s' was equivalenced to both\n" "\t'%s' and '%s'.")); #line 94 "../check.c" puts(_("%s error: The %s option is required\n")); #line 632 "../find.c" puts(_("%s: The '%s' option cannot have an argument.\n")); #line 151 "../check.c" puts(_("%s: Command line arguments are not allowed.\n")); #line 536 "../save.c" puts(_("error %d (%s) creating %s\n")); #line 235 "../enum.c" puts(_("%s error: '%s' does not match any %s keywords.\n")); #line 93 "../reset.c" puts(_("%s error: The '%s' option requires an argument.\n")); #line 186 "../save.c" puts(_("error %d (%s) stat-ing %s\n")); #line 239 "../save.c" puts(_("error %d (%s) stat-ing %s\n")); #line 143 "../restore.c" puts(_("%s error: no saved option state\n")); #line 231 "../autoopts.c" puts(_("'%s' is not a command line option.\n")); #line 113 "../time.c" puts(_("%s error: '%s' is not a recognizable date/time.\n")); #line 131 "../save.c" puts(_("'%s' not defined\n")); #line 50 "../time.c" puts(_("%s error: '%s' is not a recognizable time duration.\n")); #line 92 "../check.c" puts(_("%s error: The %s option must appear %d times.\n")); #line 165 "../numeric.c" puts(_("%s error: '%s' is not a recognizable number.\n")); #line 201 "../enum.c" puts(_("%s error: %s exceeds %s keyword count\n")); #line 333 "../usage.c" puts(_("Try '%s %s' for more information.\n")); #line 45 "../alias.c" puts(_("one %s%s option allowed\n")); #line 208 "../makeshell.c" puts(_("standard output")); #line 943 "../makeshell.c" puts(_("standard output")); #line 277 "../usage.c" puts(_("standard output")); #line 418 "../usage.c" puts(_("standard output")); #line 628 "../usage.c" puts(_("standard output")); #line 175 "../version.c" puts(_("standard output")); #line 277 "../usage.c" puts(_("standard error")); #line 418 "../usage.c" puts(_("standard error")); #line 628 "../usage.c" puts(_("standard error")); #line 175 "../version.c" puts(_("standard error")); #line 208 "../makeshell.c" puts(_("write")); #line 943 "../makeshell.c" puts(_("write")); #line 276 "../usage.c" puts(_("write")); #line 417 "../usage.c" puts(_("write")); #line 627 "../usage.c" puts(_("write")); #line 174 "../version.c" puts(_("write")); #line 60 "../numeric.c" puts(_("%s error: %s option value %ld is out of range.\n")); #line 44 "../check.c" puts(_("%s error: %s option requires the %s option\n")); #line 130 "../save.c" puts(_("%s warning: cannot save options - %s not regular file\n")); #line 185 "../save.c" puts(_("%s warning: cannot save options - %s not regular file\n")); #line 238 "../save.c" puts(_("%s warning: cannot save options - %s not regular file\n")); #line 257 "../save.c" puts(_("%s warning: cannot save options - %s not regular file\n")); #line 535 "../save.c" puts(_("%s warning: cannot save options - %s not regular file\n")); /* END-LIBOPTS-MESSAGES */ /* USAGE-TEXT: */ #line 876 "../usage.c" puts(_("\t\t\t\t- an alternate for '%s'\n")); #line 1151 "../usage.c" puts(_("Version, usage and configuration options:")); #line 927 "../usage.c" puts(_("\t\t\t\t- default option for unnamed options\n")); #line 840 "../usage.c" puts(_("\t\t\t\t- disabled as '--%s'\n")); #line 1120 "../usage.c" puts(_(" --- %-14s %s\n")); #line 1118 "../usage.c" puts(_("This option has been disabled")); #line 867 "../usage.c" puts(_("\t\t\t\t- enabled by default\n")); #line 40 "../alias.c" puts(_("%s error: only ")); #line 1197 "../usage.c" puts(_(" - examining environment variables named %s_*\n")); #line 168 "../file.c" puts(_("\t\t\t\t- file must not pre-exist\n")); #line 172 "../file.c" puts(_("\t\t\t\t- file must pre-exist\n")); #line 383 "../usage.c" puts(_("Options are specified by doubled hyphens and their name or by a single\n" "hyphen and the flag character.\n")); #line 921 "../makeshell.c" puts(_("\n" "= = = = = = = =\n\n" "This incarnation of genshell will produce\n" "a shell script to parse the options for %s:\n\n")); #line 167 "../enum.c" puts(_(" or an integer mask with any of the lower %d bits set\n")); #line 900 "../usage.c" puts(_("\t\t\t\t- is a set membership option\n")); #line 921 "../usage.c" puts(_("\t\t\t\t- must appear between %d and %d times\n")); #line 385 "../usage.c" puts(_("Options are specified by single or double hyphens and their name.\n")); #line 907 "../usage.c" puts(_("\t\t\t\t- may appear multiple times\n")); #line 894 "../usage.c" puts(_("\t\t\t\t- may not be preset\n")); #line 1312 "../usage.c" puts(_(" Arg Option-Name Description\n")); #line 1248 "../usage.c" puts(_(" Flg Arg Option-Name Description\n")); #line 1306 "../usage.c" puts(_(" Flg Arg Option-Name Description\n")); #line 1307 "../usage.c" puts(_(" %3s %s")); #line 1313 "../usage.c" puts(_(" %3s %s")); #line 390 "../usage.c" puts(_("The '-#' option may omit the hash char\n")); #line 386 "../usage.c" puts(_("All arguments are named options.\n")); #line 974 "../usage.c" puts(_(" - reading file %s")); #line 412 "../usage.c" puts(_("\n" "Please send bug reports to: <%s>\n")); #line 100 "../version.c" puts(_("\n" "Please send bug reports to: <%s>\n")); #line 129 "../version.c" puts(_("\n" "Please send bug reports to: <%s>\n")); #line 906 "../usage.c" puts(_("\t\t\t\t- may NOT appear - preset only\n")); #line 947 "../usage.c" puts(_("\n" "The following option preset mechanisms are supported:\n")); #line 1195 "../usage.c" puts(_("\n" "The following option preset mechanisms are supported:\n")); #line 685 "../usage.c" puts(_("prohibits these options:\n")); #line 680 "../usage.c" puts(_("prohibits the option '%s'\n")); #line 81 "../numeric.c" puts(_("%s%ld to %ld")); #line 79 "../numeric.c" puts(_("%sgreater than or equal to %ld")); #line 75 "../numeric.c" puts(_("%s%ld exactly")); #line 68 "../numeric.c" puts(_("%sit must lie in one of the ranges:\n")); #line 68 "../numeric.c" puts(_("%sit must be in the range:\n")); #line 88 "../numeric.c" puts(_(", or\n")); #line 66 "../numeric.c" puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n")); #line 77 "../numeric.c" puts(_("%sless than or equal to %ld")); #line 393 "../usage.c" puts(_("Operands and options may be intermixed. They will be reordered.\n")); #line 655 "../usage.c" puts(_("requires the option '%s'\n")); #line 658 "../usage.c" puts(_("requires these options:\n")); #line 1324 "../usage.c" puts(_(" Arg Option-Name Req? Description\n")); #line 1318 "../usage.c" puts(_(" Flg Arg Option-Name Req? Description\n")); #line 168 "../enum.c" puts(_("or you may use a numeric representation. Preceding these with a '!'\n" "will clear the bits, specifying 'none' will clear all bits, and 'all'\n" "will set them all. Multiple entries may be passed as an option\n" "argument list.\n")); #line 913 "../usage.c" puts(_("\t\t\t\t- may appear up to %d times\n")); #line 77 "../enum.c" puts(_("The valid \"%s\" option keywords are:\n")); #line 1155 "../usage.c" puts(_("The next option supports vendor supported extra options:")); #line 776 "../usage.c" puts(_("These additional options are:")); /* END-USAGE-TEXT */ } #endif /* uncompilable code */ #ifdef __cplusplus } #endif /* danetool-args.c ends here */