diff options
Diffstat (limited to 'contrib/ntp/sntp/sntp-opts.h')
-rw-r--r-- | contrib/ntp/sntp/sntp-opts.h | 445 |
1 files changed, 266 insertions, 179 deletions
diff --git a/contrib/ntp/sntp/sntp-opts.h b/contrib/ntp/sntp/sntp-opts.h index e73737a..06fa376 100644 --- a/contrib/ntp/sntp/sntp-opts.h +++ b/contrib/ntp/sntp/sntp-opts.h @@ -1,177 +1,148 @@ -/* +/* * EDIT THIS FILE WITH CAUTION (sntp-opts.h) - * - * It has been AutoGen-ed Tuesday December 8, 2009 at 08:14:49 AM EST + * + * It has been AutoGen-ed June 29, 2015 at 04:23:19 PM by AutoGen 5.18.5 * From the definitions sntp-opts.def * and the template file options * - * Generated from AutoOpts 29:0:4 templates. - */ - -/* - * This file was produced by an AutoOpts template. AutoOpts is a - * copyrighted work. This header file is not encumbered by AutoOpts - * licensing, but is provided under the licensing terms chosen by the - * sntp 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. + * Generated from AutoOpts 41:0:16 templates. + * + * AutoOpts is a copyrighted work. This header file is not encumbered + * by AutoOpts licensing, but is provided under the licensing terms chosen + * by the sntp 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. * - * This source file is copyrighted and licensed under the following terms: + * The sntp program is copyrighted and licensed + * under the following terms: * - * sntp copyright 1970-2006 ntp.org - all rights reserved + * Copyright (C) 1992-2015 The University of Delaware and Network Time Foundation, all rights reserved. + * This is free software. It is licensed for use, modification and + * redistribution under the terms of the NTP License, copies of which + * can be seen at: + * <http://ntp.org/license> + * <http://opensource.org/licenses/ntp-license.php> * - * General Public Licence for the software known as MSNTP - * ------------------------------------------------------ - * - * (c) Copyright, N.M. Maclaren, 1996, 1997, 2000 - * (c) Copyright, University of Cambridge, 1996, 1997, 2000 - * - * - * - * Free use of MSNTP in source and binary forms is permitted, provided that this - * entire licence is duplicated in all copies, and that any documentation, - * announcements, and other materials related to use acknowledge that the software - * was developed by N.M. Maclaren (hereafter refered to as the Author) at the - * University of Cambridge. Neither the name of the Author nor the University of - * Cambridge may be used to endorse or promote products derived from this material - * without specific prior written permission. - * - * The Author and the University of Cambridge retain the copyright and all other - * legal rights to the software and make it available non-exclusively. All users - * must ensure that the software in all its derivations carries a copyright notice - * in the form: - * (c) Copyright N.M. Maclaren, - * (c) Copyright University of Cambridge. - * - * - * - * NO WARRANTY - * - * Because the MSNTP software is licensed free of charge, the Author and the - * University of Cambridge provide absolutely no warranty, either expressed or - * implied, including, but not limited to, the implied warranties of - * merchantability and fitness for a particular purpose. The entire risk as to - * the quality and performance of the MSNTP software is with you. Should MSNTP - * prove defective, you assume the cost of all necessary servicing or repair. - * - * In no event, unless required by law, will the Author or the University of - * Cambridge, or any other party who may modify and redistribute this software as - * permitted in accordance with the provisions below, be liable for damages for - * any losses whatsoever, including but not limited to lost profits, lost monies, - * lost or corrupted data, or other special, incidental or consequential losses - * that may arise out of the use or inability to use the MSNTP software. - * - * - * - * COPYING POLICY - * - * Permission is hereby granted for copying and distribution of copies of the - * MSNTP source and binary files, and of any part thereof, subject to the - * following licence conditions: - * - * 1. You may distribute MSNTP or components of MSNTP, with or without additions - * developed by you or by others. No charge, other than an "at-cost" distribution - * fee, may be charged for copies, derivations, or distributions of this material - * without the express written consent of the copyright holders. - * - * 2. You may also distribute MSNTP along with any other product for sale, - * provided that the cost of the bundled package is the same regardless of whether - * MSNTP is included or not, and provided that those interested only in MSNTP must - * be notified that it is a product freely available from the University of - * Cambridge. - * - * 3. If you distribute MSNTP software or parts of MSNTP, with or without - * additions developed by you or others, then you must either make available the - * source to all portions of the MSNTP system (exclusive of any additions made by - * you or by others) upon request, or instead you may notify anyone requesting - * source that it is freely available from the University of Cambridge. - * - * 4. You may not omit any of the copyright notices on either the source files, - * the executable files, or the documentation. - * - * 5. You may not omit transmission of this License agreement with whatever - * portions of MSNTP that are distributed. - * - * 6. Any users of this software must be notified that it is without warranty or - * guarantee of any nature, express or implied, nor is there any fitness for use - * represented. - * - * - * October 1996 - * April 1997 - * October 2000 + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose with or without fee is hereby granted, + * provided that the above copyright notice appears in all copies and that + * both the copyright notice and this permission notice appear in + * supporting documentation, and that the name The University of Delaware not be used in + * advertising or publicity pertaining to distribution of the software + * without specific, written prior permission. The University of Delaware and Network Time Foundation makes no + * representations about the suitability this software for any purpose. It + * is provided "as is" without express or implied warranty. */ -/* +/** * This file contains the programmatic interface to the Automated * Options generated for the sntp program. * These macros are documented in the AutoGen info file in the * "AutoOpts" chapter. Please refer to that doc for usage help. */ #ifndef AUTOOPTS_SNTP_OPTS_H_GUARD -#define AUTOOPTS_SNTP_OPTS_H_GUARD +#define AUTOOPTS_SNTP_OPTS_H_GUARD 1 #include "config.h" #include <autoopts/options.h> -/* +/** * Ensure that the library used for compiling this generated header is at * least as new as the version current when the header template was released * (not counting patch version increments). Also ensure that the oldest * tolerable version is at least as old as what was current when the header * template was released. */ -#define AO_TEMPLATE_VERSION 118784 +#define AO_TEMPLATE_VERSION 167936 #if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \ || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION) # error option template version mismatches autoopts/options.h header Choke Me. #endif -/* - * Enumeration of each option: +/** + * Enumeration of each option type for sntp */ typedef enum { - INDEX_OPT_IPV4 = 0, - INDEX_OPT_IPV6 = 1, - INDEX_OPT_UNPRIVPORT = 2, - INDEX_OPT_NORMALVERBOSE = 3, - INDEX_OPT_EXTRAVERBOSE = 4, - INDEX_OPT_MEGAVERBOSE = 5, - INDEX_OPT_SETTIMEOFDAY = 6, - INDEX_OPT_ADJTIME = 7, - INDEX_OPT_VERSION = 8, - INDEX_OPT_HELP = 9, - INDEX_OPT_MORE_HELP = 10, - INDEX_OPT_SAVE_OPTS = 11, - INDEX_OPT_LOAD_OPTS = 12 + INDEX_OPT_IPV4 = 0, + INDEX_OPT_IPV6 = 1, + INDEX_OPT_AUTHENTICATION = 2, + INDEX_OPT_BROADCAST = 3, + INDEX_OPT_CONCURRENT = 4, + INDEX_OPT_DEBUG_LEVEL = 5, + INDEX_OPT_SET_DEBUG_LEVEL = 6, + INDEX_OPT_GAP = 7, + INDEX_OPT_KOD = 8, + INDEX_OPT_KEYFILE = 9, + INDEX_OPT_LOGFILE = 10, + INDEX_OPT_STEPLIMIT = 11, + INDEX_OPT_NTPVERSION = 12, + INDEX_OPT_USERESERVEDPORT = 13, + INDEX_OPT_STEP = 14, + INDEX_OPT_SLEW = 15, + INDEX_OPT_TIMEOUT = 16, + INDEX_OPT_WAIT = 17, + INDEX_OPT_VERSION = 18, + INDEX_OPT_HELP = 19, + INDEX_OPT_MORE_HELP = 20, + INDEX_OPT_SAVE_OPTS = 21, + INDEX_OPT_LOAD_OPTS = 22 } teOptIndex; +/** count of all options for sntp */ +#define OPTION_CT 23 +/** sntp version */ +#define SNTP_VERSION "4.2.8p3" +/** Full sntp version text */ +#define SNTP_FULL_VERSION "sntp 4.2.8p3" -#define OPTION_CT 13 -#define SNTP_VERSION "4.2.4p8" -#define SNTP_FULL_VERSION "sntp - standard SNTP program - Ver. 4.2.4p8" - -/* +/** * Interface defines for all options. Replace "n" with the UPPER_CASED * option name (as in the teOptIndex enumeration above). - * e.g. HAVE_OPT( IPV4 ) + * e.g. HAVE_OPT(IPV4) */ #define DESC(n) (sntpOptions.pOptDesc[INDEX_OPT_## n]) +/** 'true' if an option has been specified in any way */ #define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n))) +/** The string argument to an option. The argument type must be \"string\". */ #define OPT_ARG(n) (DESC(n).optArg.argString) +/** Mask the option state revealing how an option was specified. + * It will be one and only one of \a OPTST_SET, \a OPTST_PRESET, + * \a OPTST_DEFINED, \a OPTST_RESET or zero. + */ #define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK) +/** Count of option's occurrances *on the command line*. */ #define COUNT_OPT(n) (DESC(n).optOccCt) +/** mask of \a OPTST_SET and \a OPTST_DEFINED. */ #define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n))) +/** 'true' if \a HAVE_OPT would yield 'false'. */ #define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n))) +/** 'true' if OPTST_DISABLED bit not set. */ #define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n))) +/** number of stacked option arguments. + * Valid only for stacked option arguments. */ #define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt) +/** stacked argument vector. + * Valid only for stacked option arguments. */ #define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs) +/** Reset an option. */ #define CLEAR_OPT(n) STMTS( \ DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \ - if ( (DESC(n).fOptState & OPTST_INITENABLED) == 0) \ + if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \ DESC(n).fOptState |= OPTST_DISABLED; \ DESC(n).optCookie = NULL ) - -/* +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +/** + * Enumeration of sntp exit codes + */ +typedef enum { + SNTP_EXIT_SUCCESS = 0, + SNTP_EXIT_FAILURE = 1, + SNTP_EXIT_USAGE_ERROR = 64, + SNTP_EXIT_NO_CONFIG_INPUT = 66, + SNTP_EXIT_LIBOPTS_FAILURE = 70 +} sntp_exit_code_t; +/** @} */ +/** * Make sure there are no #define name conflicts with the option names */ #ifndef NO_OPTION_NAME_WARNINGS @@ -183,101 +154,217 @@ typedef enum { # warning undefining IPV6 due to option name conflict # undef IPV6 # endif -# ifdef UNPRIVPORT -# warning undefining UNPRIVPORT due to option name conflict -# undef UNPRIVPORT +# ifdef AUTHENTICATION +# warning undefining AUTHENTICATION due to option name conflict +# undef AUTHENTICATION +# endif +# ifdef BROADCAST +# warning undefining BROADCAST due to option name conflict +# undef BROADCAST +# endif +# ifdef CONCURRENT +# warning undefining CONCURRENT due to option name conflict +# undef CONCURRENT +# endif +# ifdef DEBUG_LEVEL +# warning undefining DEBUG_LEVEL due to option name conflict +# undef DEBUG_LEVEL +# endif +# ifdef SET_DEBUG_LEVEL +# warning undefining SET_DEBUG_LEVEL due to option name conflict +# undef SET_DEBUG_LEVEL +# endif +# ifdef GAP +# warning undefining GAP due to option name conflict +# undef GAP +# endif +# ifdef KOD +# warning undefining KOD due to option name conflict +# undef KOD +# endif +# ifdef KEYFILE +# warning undefining KEYFILE due to option name conflict +# undef KEYFILE +# endif +# ifdef LOGFILE +# warning undefining LOGFILE due to option name conflict +# undef LOGFILE +# endif +# ifdef STEPLIMIT +# warning undefining STEPLIMIT due to option name conflict +# undef STEPLIMIT +# endif +# ifdef NTPVERSION +# warning undefining NTPVERSION due to option name conflict +# undef NTPVERSION # endif -# ifdef NORMALVERBOSE -# warning undefining NORMALVERBOSE due to option name conflict -# undef NORMALVERBOSE +# ifdef USERESERVEDPORT +# warning undefining USERESERVEDPORT due to option name conflict +# undef USERESERVEDPORT # endif -# ifdef EXTRAVERBOSE -# warning undefining EXTRAVERBOSE due to option name conflict -# undef EXTRAVERBOSE +# ifdef STEP +# warning undefining STEP due to option name conflict +# undef STEP # endif -# ifdef MEGAVERBOSE -# warning undefining MEGAVERBOSE due to option name conflict -# undef MEGAVERBOSE +# ifdef SLEW +# warning undefining SLEW due to option name conflict +# undef SLEW # endif -# ifdef SETTIMEOFDAY -# warning undefining SETTIMEOFDAY due to option name conflict -# undef SETTIMEOFDAY +# ifdef TIMEOUT +# warning undefining TIMEOUT due to option name conflict +# undef TIMEOUT # endif -# ifdef ADJTIME -# warning undefining ADJTIME due to option name conflict -# undef ADJTIME +# ifdef WAIT +# warning undefining WAIT due to option name conflict +# undef WAIT # endif #else /* NO_OPTION_NAME_WARNINGS */ # undef IPV4 # undef IPV6 -# undef UNPRIVPORT -# undef NORMALVERBOSE -# undef EXTRAVERBOSE -# undef MEGAVERBOSE -# undef SETTIMEOFDAY -# undef ADJTIME +# undef AUTHENTICATION +# undef BROADCAST +# undef CONCURRENT +# undef DEBUG_LEVEL +# undef SET_DEBUG_LEVEL +# undef GAP +# undef KOD +# undef KEYFILE +# undef LOGFILE +# undef STEPLIMIT +# undef NTPVERSION +# undef USERESERVEDPORT +# undef STEP +# undef SLEW +# undef TIMEOUT +# undef WAIT #endif /* NO_OPTION_NAME_WARNINGS */ -/* +/** * Interface defines for specific options. + * @{ */ #define VALUE_OPT_IPV4 '4' -#define WHICH_OPT_IPV4 (DESC(IPV4).optActualValue) -#define WHICH_IDX_IPV4 (DESC(IPV4).optActualIndex) #define VALUE_OPT_IPV6 '6' -#define VALUE_OPT_UNPRIVPORT 'u' -#define VALUE_OPT_NORMALVERBOSE 'v' -#define VALUE_OPT_EXTRAVERBOSE 'V' -#define VALUE_OPT_MEGAVERBOSE 'W' -#define VALUE_OPT_SETTIMEOFDAY 'r' -#define VALUE_OPT_ADJTIME 'a' +#define VALUE_OPT_AUTHENTICATION 'a' + +#define OPT_VALUE_AUTHENTICATION (DESC(AUTHENTICATION).optArg.argInt) +#define VALUE_OPT_BROADCAST 'b' +#define VALUE_OPT_CONCURRENT 'c' +#define VALUE_OPT_DEBUG_LEVEL 'd' +#define VALUE_OPT_SET_DEBUG_LEVEL 'D' + +#define OPT_VALUE_SET_DEBUG_LEVEL (DESC(SET_DEBUG_LEVEL).optArg.argInt) +#define VALUE_OPT_GAP 'g' + +#define OPT_VALUE_GAP (DESC(GAP).optArg.argInt) +#define VALUE_OPT_KOD 'K' +#define VALUE_OPT_KEYFILE 'k' +#define VALUE_OPT_LOGFILE 'l' +#define VALUE_OPT_STEPLIMIT 'M' + +#define OPT_VALUE_STEPLIMIT (DESC(STEPLIMIT).optArg.argInt) +#define VALUE_OPT_NTPVERSION 'o' + +#define OPT_VALUE_NTPVERSION (DESC(NTPVERSION).optArg.argInt) +#define VALUE_OPT_USERESERVEDPORT 'r' +#define VALUE_OPT_STEP 'S' +#define VALUE_OPT_SLEW 's' +#define VALUE_OPT_TIMEOUT 't' + +#define OPT_VALUE_TIMEOUT (DESC(TIMEOUT).optArg.argInt) +#define VALUE_OPT_WAIT 0x1001 -#define VALUE_OPT_VERSION 'v' +#define SET_OPT_WAIT STMTS( \ + DESC(WAIT).optActualIndex = 17; \ + DESC(WAIT).optActualValue = VALUE_OPT_WAIT; \ + DESC(WAIT).fOptState &= OPTST_PERSISTENT_MASK; \ + DESC(WAIT).fOptState |= OPTST_SET ) +#define DISABLE_OPT_WAIT STMTS( \ + DESC(WAIT).fOptState &= OPTST_PERSISTENT_MASK; \ + DESC(WAIT).fOptState |= OPTST_SET | OPTST_DISABLED; \ + DESC(WAIT).optArg.argString = NULL ) +/** option flag (value) for help-value option */ #define VALUE_OPT_HELP '?' +/** option flag (value) for more-help-value option */ #define VALUE_OPT_MORE_HELP '!' +/** option flag (value) for version-value option */ +#define VALUE_OPT_VERSION 0x1002 +/** option flag (value) for save-opts-value option */ #define VALUE_OPT_SAVE_OPTS '>' +/** option flag (value) for load-opts-value option */ #define VALUE_OPT_LOAD_OPTS '<' #define SET_OPT_SAVE_OPTS(a) STMTS( \ DESC(SAVE_OPTS).fOptState &= OPTST_PERSISTENT_MASK; \ DESC(SAVE_OPTS).fOptState |= OPTST_SET; \ - DESC(SAVE_OPTS).optArg.argString = (char const*)(a) ) + DESC(SAVE_OPTS).optArg.argString = (char const*)(a)) /* * Interface defines not associated with particular options */ -#define ERRSKIP_OPTERR STMTS( sntpOptions.fOptSet &= ~OPTPROC_ERRSTOP ) -#define ERRSTOP_OPTERR STMTS( sntpOptions.fOptSet |= OPTPROC_ERRSTOP ) +#define ERRSKIP_OPTERR STMTS(sntpOptions.fOptSet &= ~OPTPROC_ERRSTOP) +#define ERRSTOP_OPTERR STMTS(sntpOptions.fOptSet |= OPTPROC_ERRSTOP) #define RESTART_OPT(n) STMTS( \ sntpOptions.curOptIdx = (n); \ sntpOptions.pzCurOpt = NULL ) #define START_OPT RESTART_OPT(1) -#define USAGE(c) (*sntpOptions.pUsageProc)( &sntpOptions, c ) -/* extracted from /usr/local/gnu/autogen-5.9.1/share/autogen/opthead.tpl near line 360 */ +#define USAGE(c) (*sntpOptions.pUsageProc)(&sntpOptions, c) + +#ifdef __cplusplus +extern "C" { +#endif + /* * * * * * * * Declare the sntp option descriptor. */ -#ifdef __cplusplus -extern "C" { -#endif +extern tOptions sntpOptions; -extern tOptions sntpOptions; +#if defined(ENABLE_NLS) +# ifndef _ +# include <stdio.h> +# ifndef HAVE_GETTEXT + extern char * gettext(char const *); +# else +# include <libintl.h> +# endif -#ifndef _ -# if ENABLE_NLS -# include <stdio.h> - static inline char* aoGetsText( char const* pz ) { - if (pz == NULL) return NULL; - return (char*)gettext( pz ); - } -# define _(s) aoGetsText(s) -# else /* ENABLE_NLS */ -# define _(s) s -# endif /* ENABLE_NLS */ -#endif +# ifndef ATTRIBUTE_FORMAT_ARG +# define ATTRIBUTE_FORMAT_ARG(_a) +# endif + +static inline char* aoGetsText(char const* pz) ATTRIBUTE_FORMAT_ARG(1); +static inline char* aoGetsText(char const* pz) { + if (pz == NULL) return NULL; + return (char*)gettext(pz); +} +# define _(s) aoGetsText(s) +# endif /* _() */ + +# define OPT_NO_XLAT_CFG_NAMES STMTS(sntpOptions.fOptSet |= \ + OPTPROC_NXLAT_OPT_CFG;) +# define OPT_NO_XLAT_OPT_NAMES STMTS(sntpOptions.fOptSet |= \ + OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;) + +# define OPT_XLAT_CFG_NAMES STMTS(sntpOptions.fOptSet &= \ + ~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);) +# define OPT_XLAT_OPT_NAMES STMTS(sntpOptions.fOptSet &= \ + ~OPTPROC_NXLAT_OPT;) + +#else /* ENABLE_NLS */ +# define OPT_NO_XLAT_CFG_NAMES +# define OPT_NO_XLAT_OPT_NAMES + +# define OPT_XLAT_CFG_NAMES +# define OPT_XLAT_OPT_NAMES + +# ifndef _ +# define _(_s) _s +# endif +#endif /* ENABLE_NLS */ #ifdef __cplusplus } #endif #endif /* AUTOOPTS_SNTP_OPTS_H_GUARD */ + /* sntp-opts.h ends here */ |