autogen: store and use auto-generated autogen files in git builds

That is, if autogen is not present in the build system use the
stored files.
This commit is contained in:
Nikos Mavrogiannopoulos
2016-11-11 11:11:19 +01:00
parent 813a3a2451
commit d0908f2c52
7 changed files with 2412 additions and 3 deletions

View File

@@ -15,7 +15,7 @@ Build and Check with separate build dir and code coverage (Centos 7):
expire_in: 1 week
when: on_failure
paths:
- build/tests/*.log
- build/
Build and Check with separate build dir and code coverage (Fedora):
image: fedora:24

View File

@@ -23,7 +23,16 @@ noinst_LIBRARIES = libcmd-ocserv.a libipc.a
libcmd_ocserv_a_SOURCES = ocserv-args.def ocserv-args.c ocserv-args.h
ocserv-args.c: $(srcdir)/ocserv-args.def $(builddir)/version.inc
$(AUTOGEN) $<
if test "$(AUTOGEN)" = ":";then \
rm -f $(builddir)/ocserv-args.c; \
rm -f $(builddir)/ocserv-args.h; \
cp $(srcdir)/autogen/ocserv-args.c $(builddir)/; \
cp $(srcdir)/autogen/ocserv-args.h $(builddir)/; \
else \
$(AUTOGEN) $<; \
cp $(builddir)/ocserv-args.c $(srcdir)/autogen; \
cp $(builddir)/ocserv-args.h $(srcdir)/autogen; \
fi
ocserv-args.h: ocserv-args.c
# Authentication module sources

948
src/autogen/ocpasswd-args.c Normal file
View File

@@ -0,0 +1,948 @@
/* -*- buffer-read-only: t -*- vi: set ro:
*
* DO NOT EDIT THIS FILE (args.c)
*
* It has been AutoGen-ed
* From the definitions 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 ocpasswd 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 ocpasswd program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 2013-2016 Nikos Mavrogiannopoulos, 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 2 <http://gnu.org/licenses/gpl.html>
*
* ocpasswd is free software: you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License,
* as published by the Free Software Foundation.
*
* ocpasswd 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,
* version 2, along with this program.
* If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __doxygen__
#define OPTION_CODE_COMPILE 1
#include "args.h"
#include <sys/types.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#ifdef __cplusplus
extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (ocpasswd_opt_strs+0)
#define zLicenseDescrip (ocpasswd_opt_strs+262)
#ifndef NULL
# define NULL 0
#endif
/**
* static const strings for ocpasswd options
*/
static char const ocpasswd_opt_strs[1516] =
/* 0 */ "ocpasswd 0.11.5\n"
"Copyright (C) 2013-2016 Nikos Mavrogiannopoulos, 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 2 <http://gnu.org/licenses/gpl.html>\n\0"
/* 262 */ "ocpasswd is free software: you can redistribute it and/or modify it under\n"
"the terms of version 2 of the GNU General Public License, as published by\n"
"the Free Software Foundation.\n\n"
"ocpasswd 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, version\n"
"2, along with this program. If not, see <http://www.gnu.org/licenses/>.\n\0"
/* 821 */ "Password file\0"
/* 835 */ "PASSWD\0"
/* 842 */ "passwd\0"
/* 849 */ "User's group name\0"
/* 867 */ "GROUPNAME\0"
/* 877 */ "groupname\0"
/* 887 */ "Delete user\0"
/* 899 */ "DELETE\0"
/* 906 */ "delete\0"
/* 913 */ "Lock user\0"
/* 923 */ "LOCK\0"
/* 928 */ "lock\0"
/* 933 */ "Unlock user\0"
/* 945 */ "UNLOCK\0"
/* 952 */ "unlock\0"
/* 959 */ "display extended usage information and exit\0"
/* 1003 */ "help\0"
/* 1008 */ "extended usage information passed thru pager\0"
/* 1053 */ "more-help\0"
/* 1063 */ "output version information and exit\0"
/* 1099 */ "version\0"
/* 1107 */ "OCPASSWD\0"
/* 1116 */ "ocpasswd - OpenConnect server password utility\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [username]\n\0"
/* 1232 */ "openconnect-devel@lists.infradead.org\0"
/* 1270 */ "\n\0"
/* 1272 */ "This program is openconnect password (ocpasswd) utility. It allows the\n"
"generation and handling of a 'plain' password file used by ocserv.\n\0"
/* 1412 */ "ocpasswd 0.11.5\0"
/* 1428 */ "Usage: ocpasswd -c [passwd] [options] username\n"
"ocpasswd --help for usage instructions.\n";
/**
* passwd option description:
*/
/** Descriptive text for the passwd option */
#define PASSWD_DESC (ocpasswd_opt_strs+821)
/** Upper-cased name for the passwd option */
#define PASSWD_NAME (ocpasswd_opt_strs+835)
/** Name string for the passwd option */
#define PASSWD_name (ocpasswd_opt_strs+842)
/** Compiled in flag settings for the passwd option */
#define PASSWD_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
/**
* groupname option description:
*/
/** Descriptive text for the groupname option */
#define GROUPNAME_DESC (ocpasswd_opt_strs+849)
/** Upper-cased name for the groupname option */
#define GROUPNAME_NAME (ocpasswd_opt_strs+867)
/** Name string for the groupname option */
#define GROUPNAME_name (ocpasswd_opt_strs+877)
/** Compiled in flag settings for the groupname option */
#define GROUPNAME_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* delete option description:
*/
/** Descriptive text for the delete option */
#define DELETE_DESC (ocpasswd_opt_strs+887)
/** Upper-cased name for the delete option */
#define DELETE_NAME (ocpasswd_opt_strs+899)
/** Name string for the delete option */
#define DELETE_name (ocpasswd_opt_strs+906)
/** Compiled in flag settings for the delete option */
#define DELETE_FLAGS (OPTST_DISABLED)
/**
* lock option description:
*/
/** Descriptive text for the lock option */
#define LOCK_DESC (ocpasswd_opt_strs+913)
/** Upper-cased name for the lock option */
#define LOCK_NAME (ocpasswd_opt_strs+923)
/** Name string for the lock option */
#define LOCK_name (ocpasswd_opt_strs+928)
/** Compiled in flag settings for the lock option */
#define LOCK_FLAGS (OPTST_DISABLED)
/**
* unlock option description:
*/
/** Descriptive text for the unlock option */
#define UNLOCK_DESC (ocpasswd_opt_strs+933)
/** Upper-cased name for the unlock option */
#define UNLOCK_NAME (ocpasswd_opt_strs+945)
/** Name string for the unlock option */
#define UNLOCK_name (ocpasswd_opt_strs+952)
/** Compiled in flag settings for the unlock option */
#define UNLOCK_FLAGS (OPTST_DISABLED)
/*
* Help/More_Help/Version option descriptions:
*/
#define HELP_DESC (ocpasswd_opt_strs+959)
#define HELP_name (ocpasswd_opt_strs+1003)
#ifdef HAVE_WORKING_FORK
#define MORE_HELP_DESC (ocpasswd_opt_strs+1008)
#define MORE_HELP_name (ocpasswd_opt_strs+1053)
#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 (ocpasswd_opt_strs+1063)
#define VER_name (ocpasswd_opt_strs+1099)
/**
* Declare option callback procedures
*/
extern tOptProc
optionBooleanVal, optionNestedVal, optionNumericVal,
optionPagedUsage, optionPrintVersion, optionResetOpt,
optionStackArg, optionTimeDate, optionTimeVal,
optionUnstackArg, optionVendorOption;
static tOptProc
doOptPasswd, doUsageOpt;
#define VER_PROC optionPrintVersion
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Define the ocpasswd Option Descriptions.
* This is an array of OPTION_CT entries, one for each
* option that the ocpasswd program responds to.
*/
static tOptDesc optDesc[OPTION_CT] = {
{ /* entry idx, value */ 0, VALUE_OPT_PASSWD,
/* equiv idx, value */ 0, VALUE_OPT_PASSWD,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PASSWD_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --passwd */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptPasswd,
/* desc, NAME, name */ PASSWD_DESC, PASSWD_NAME, PASSWD_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 1, VALUE_OPT_GROUPNAME,
/* equiv idx, value */ 1, VALUE_OPT_GROUPNAME,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ GROUPNAME_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --groupname */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ GROUPNAME_DESC, GROUPNAME_NAME, GROUPNAME_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 2, VALUE_OPT_DELETE,
/* equiv idx, value */ 2, VALUE_OPT_DELETE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ DELETE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --delete */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ DELETE_DESC, DELETE_NAME, DELETE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 3, VALUE_OPT_LOCK,
/* equiv idx, value */ 3, VALUE_OPT_LOCK,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ LOCK_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --lock */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ LOCK_DESC, LOCK_NAME, LOCK_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 4, VALUE_OPT_UNLOCK,
/* equiv idx, value */ 4, VALUE_OPT_UNLOCK,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ UNLOCK_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --unlock */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ UNLOCK_DESC, UNLOCK_NAME, UNLOCK_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 ocpasswd. */
#define zPROGNAME (ocpasswd_opt_strs+1107)
/** Reference to the title line for ocpasswd usage. */
#define zUsageTitle (ocpasswd_opt_strs+1116)
/** There is no ocpasswd configuration file. */
#define zRcName NULL
/** There are no directories to search for ocpasswd config files. */
#define apzHomeList NULL
/** The ocpasswd program bug email address. */
#define zBugsAddr (ocpasswd_opt_strs+1232)
/** Clarification/explanation of what ocpasswd does. */
#define zExplain (ocpasswd_opt_strs+1270)
/** Extra detail explaining what ocpasswd does. */
#define zDetail (ocpasswd_opt_strs+1272)
/** The full version string for ocpasswd. */
#define zFullVersion (ocpasswd_opt_strs+1412)
/* 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 ocpasswd_full_usage (NULL)
#define ocpasswd_short_usage (ocpasswd_opt_strs+1428)
#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 = OCPASSWD_EXIT_SUCCESS;
optionUsage(&ocpasswdOptions, ex_code);
/* NOTREACHED */
exit(OCPASSWD_EXIT_FAILURE);
(void)opts;
(void)od;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the passwd option.
*
* @param[in] pOptions the ocpasswd options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
static void
doOptPasswd(tOptions* pOptions, tOptDesc* pOptDesc)
{
static teOptFileType const type =
FTYPE_MODE_MAY_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);
}
/* extracted from optmain.tlib near line 1250 */
/**
* The directory containing the data associated with ocpasswd.
*/
#ifndef PKGDATADIR
# define PKGDATADIR ""
#endif
/**
* Information about the person or institution that packaged ocpasswd
* for the current distribution.
*/
#ifndef WITH_PACKAGER
# define ocpasswd_packager_info NULL
#else
/** Packager information for ocpasswd. */
static char const ocpasswd_packager_info[] =
"Packaged by " WITH_PACKAGER
# ifdef WITH_PACKAGER_VERSION
" ("WITH_PACKAGER_VERSION")"
# endif
# ifdef WITH_PACKAGER_BUG_REPORTS
"\nReport ocpasswd bugs to " WITH_PACKAGER_BUG_REPORTS
# endif
"\n";
#endif
#ifndef __doxygen__
#endif /* __doxygen__ */
/**
* The option definitions for ocpasswd. The one structure that
* binds them all.
*/
tOptions ocpasswdOptions = {
OPTIONS_STRUCT_VERSION,
0, NULL, /* original argc + argv */
( OPTPROC_BASE
+ OPTPROC_ERRSTOP
+ OPTPROC_SHORTOPT
+ OPTPROC_LONGOPT
+ OPTPROC_NO_REQ_OPT
+ OPTPROC_REORDER
+ 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 */
},
8 /* full option count */, 5 /* user option count */,
ocpasswd_full_usage, ocpasswd_short_usage,
NULL, NULL,
PKGDATADIR, ocpasswd_packager_info
};
#if ENABLE_NLS
/**
* This code is designed to translate translatable option text for the
* ocpasswd program. These translations happen upon entry
* to optionProcess().
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef HAVE_DCGETTEXT
# include <gettext.h>
#endif
#include <autoopts/usage-txt.h>
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(OCPASSWD_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 ocpasswdOptions
* structure defined above. This is done only once.
*/
static void
translate_option_strings(void)
{
tOptions * const opts = &ocpasswdOptions;
/*
* 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 ocpasswdOptions structure noted in the
comments below. The literal text is defined in ocpasswd_opt_strs.
NOTE: the strings below are segmented with respect to the source string
ocpasswd_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 ocpasswdOptions.pzCopyright */
puts(_("ocpasswd 0.11.5\n\
Copyright (C) 2013-2016 Nikos Mavrogiannopoulos, 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 2 <http://gnu.org/licenses/gpl.html>\n"));
/* referenced via ocpasswdOptions.pzCopyNotice */
puts(_("ocpasswd is free software: you can redistribute it and/or modify it under\n\
the terms of version 2 of the GNU General Public License, as published by\n\
the Free Software Foundation.\n\n"));
puts(_("ocpasswd 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, version\n\
2, along with this program. If not, see <http://www.gnu.org/licenses/>.\n"));
/* referenced via ocpasswdOptions.pOptDesc->pzText */
puts(_("Password file"));
/* referenced via ocpasswdOptions.pOptDesc->pzText */
puts(_("User's group name"));
/* referenced via ocpasswdOptions.pOptDesc->pzText */
puts(_("Delete user"));
/* referenced via ocpasswdOptions.pOptDesc->pzText */
puts(_("Lock user"));
/* referenced via ocpasswdOptions.pOptDesc->pzText */
puts(_("Unlock user"));
/* referenced via ocpasswdOptions.pOptDesc->pzText */
puts(_("display extended usage information and exit"));
/* referenced via ocpasswdOptions.pOptDesc->pzText */
puts(_("extended usage information passed thru pager"));
/* referenced via ocpasswdOptions.pOptDesc->pzText */
puts(_("output version information and exit"));
/* referenced via ocpasswdOptions.pzUsageTitle */
puts(_("ocpasswd - OpenConnect server password utility\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [username]\n"));
/* referenced via ocpasswdOptions.pzExplain */
puts(_("\n"));
/* referenced via ocpasswdOptions.pzDetail */
puts(_("This program is openconnect password (ocpasswd) utility. It allows the\n\
generation and handling of a 'plain' password file used by ocserv.\n"));
/* referenced via ocpasswdOptions.pzFullVersion */
puts(_("ocpasswd 0.11.5"));
/* referenced via ocpasswdOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
/* referenced via ocpasswdOptions.pzShortUsage */
puts(_("Usage: ocpasswd -c [passwd] [options] username\n\
ocpasswd --help for 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 292 "../usage.c"
puts(_("could not locate the 'help' option"));
#line 336 "../autoopts.c"
puts(_("optionProcess() was called with invalid data"));
#line 748 "../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 747 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 1081 "../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 535 "../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 238 "../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 330 "../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 274 "../usage.c"
puts(_("standard output"));
#line 415 "../usage.c"
puts(_("standard output"));
#line 625 "../usage.c"
puts(_("standard output"));
#line 175 "../version.c"
puts(_("standard output"));
#line 274 "../usage.c"
puts(_("standard error"));
#line 415 "../usage.c"
puts(_("standard error"));
#line 625 "../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 273 "../usage.c"
puts(_("write"));
#line 414 "../usage.c"
puts(_("write"));
#line 624 "../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 237 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 256 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 534 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
/* END-LIBOPTS-MESSAGES */
/* USAGE-TEXT: */
#line 873 "../usage.c"
puts(_("\t\t\t\t- an alternate for '%s'\n"));
#line 1148 "../usage.c"
puts(_("Version, usage and configuration options:"));
#line 924 "../usage.c"
puts(_("\t\t\t\t- default option for unnamed options\n"));
#line 837 "../usage.c"
puts(_("\t\t\t\t- disabled as '--%s'\n"));
#line 1117 "../usage.c"
puts(_(" --- %-14s %s\n"));
#line 1115 "../usage.c"
puts(_("This option has been disabled"));
#line 864 "../usage.c"
puts(_("\t\t\t\t- enabled by default\n"));
#line 40 "../alias.c"
puts(_("%s error: only "));
#line 1194 "../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 380 "../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 897 "../usage.c"
puts(_("\t\t\t\t- is a set membership option\n"));
#line 918 "../usage.c"
puts(_("\t\t\t\t- must appear between %d and %d times\n"));
#line 382 "../usage.c"
puts(_("Options are specified by single or double hyphens and their name.\n"));
#line 904 "../usage.c"
puts(_("\t\t\t\t- may appear multiple times\n"));
#line 891 "../usage.c"
puts(_("\t\t\t\t- may not be preset\n"));
#line 1309 "../usage.c"
puts(_(" Arg Option-Name Description\n"));
#line 1245 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1303 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1304 "../usage.c"
puts(_(" %3s %s"));
#line 1310 "../usage.c"
puts(_(" %3s %s"));
#line 387 "../usage.c"
puts(_("The '-#<number>' option may omit the hash char\n"));
#line 383 "../usage.c"
puts(_("All arguments are named options.\n"));
#line 971 "../usage.c"
puts(_(" - reading file %s"));
#line 409 "../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 903 "../usage.c"
puts(_("\t\t\t\t- may NOT appear - preset only\n"));
#line 944 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 1192 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 682 "../usage.c"
puts(_("prohibits these options:\n"));
#line 677 "../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 390 "../usage.c"
puts(_("Operands and options may be intermixed. They will be reordered.\n"));
#line 652 "../usage.c"
puts(_("requires the option '%s'\n"));
#line 655 "../usage.c"
puts(_("requires these options:\n"));
#line 1321 "../usage.c"
puts(_(" Arg Option-Name Req? Description\n"));
#line 1315 "../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 910 "../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 1152 "../usage.c"
puts(_("The next option supports vendor supported extra options:"));
#line 773 "../usage.c"
puts(_("These additional options are:"));
/* END-USAGE-TEXT */
}
#endif /* uncompilable code */
#ifdef __cplusplus
}
#endif
/* args.c ends here */

215
src/autogen/ocpasswd-args.h Normal file
View File

@@ -0,0 +1,215 @@
/* -*- buffer-read-only: t -*- vi: set ro:
*
* DO NOT EDIT THIS FILE (args.h)
*
* It has been AutoGen-ed
* From the definitions args.def
* and the template file options
*
* Generated from AutoOpts 41:1: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 ocpasswd 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 ocpasswd program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 2013-2016 Nikos Mavrogiannopoulos, 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 2 <http://gnu.org/licenses/gpl.html>
*
* ocpasswd is free software: you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License,
* as published by the Free Software Foundation.
*
* ocpasswd 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,
* version 2, along with this program.
* If not, see <http://www.gnu.org/licenses/>.
*/
/**
* This file contains the programmatic interface to the Automated
* Options generated for the ocpasswd program.
* These macros are documented in the AutoGen info file in the
* "AutoOpts" chapter. Please refer to that doc for usage help.
*/
#ifndef AUTOOPTS_ARGS_H_GUARD
#define AUTOOPTS_ARGS_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 167937
#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 type for ocpasswd
*/
typedef enum {
INDEX_OPT_PASSWD = 0,
INDEX_OPT_GROUPNAME = 1,
INDEX_OPT_DELETE = 2,
INDEX_OPT_LOCK = 3,
INDEX_OPT_UNLOCK = 4,
INDEX_OPT_VERSION = 5,
INDEX_OPT_HELP = 6,
INDEX_OPT_MORE_HELP = 7
} teOptIndex;
/** count of all options for ocpasswd */
#define OPTION_CT 8
/** ocpasswd version */
#define OCPASSWD_VERSION "0.11.5"
/** Full ocpasswd version text */
#define OCPASSWD_FULL_VERSION "ocpasswd 0.11.5"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
* option name (as in the teOptIndex enumeration above).
* e.g. HAVE_OPT(PASSWD)
*/
#define DESC(n) (ocpasswdOptions.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) \
DESC(n).fOptState |= OPTST_DISABLED; \
DESC(n).optCookie = NULL )
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Enumeration of ocpasswd exit codes
*/
typedef enum {
OCPASSWD_EXIT_SUCCESS = 0,
OCPASSWD_EXIT_FAILURE = 1,
OCPASSWD_EXIT_USAGE_ERROR = 64,
OCPASSWD_EXIT_LIBOPTS_FAILURE = 70
} ocpasswd_exit_code_t;
/**
* Interface defines for specific options.
* @{
*/
#define VALUE_OPT_PASSWD 'c'
#define VALUE_OPT_GROUPNAME 'g'
#define VALUE_OPT_DELETE 'd'
#define VALUE_OPT_LOCK 'l'
#define VALUE_OPT_UNLOCK 'u'
/** option flag (value) for help-value option */
#define VALUE_OPT_HELP 'h'
/** option flag (value) for more-help-value option */
#define VALUE_OPT_MORE_HELP '!'
/** option flag (value) for version-value option */
#define VALUE_OPT_VERSION 'v'
/*
* Interface defines not associated with particular options
*/
#define ERRSKIP_OPTERR STMTS(ocpasswdOptions.fOptSet &= ~OPTPROC_ERRSTOP)
#define ERRSTOP_OPTERR STMTS(ocpasswdOptions.fOptSet |= OPTPROC_ERRSTOP)
#define RESTART_OPT(n) STMTS( \
ocpasswdOptions.curOptIdx = (n); \
ocpasswdOptions.pzCurOpt = NULL )
#define START_OPT RESTART_OPT(1)
#define USAGE(c) (*ocpasswdOptions.pUsageProc)(&ocpasswdOptions, c)
#ifdef __cplusplus
extern "C" {
#endif
/* * * * * *
*
* Declare the ocpasswd option descriptor.
*/
extern tOptions ocpasswdOptions;
#if defined(ENABLE_NLS)
# ifndef _
# include <stdio.h>
# ifndef HAVE_GETTEXT
extern char * gettext(char const *);
# else
# include <libintl.h>
# 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(ocpasswdOptions.fOptSet |= \
OPTPROC_NXLAT_OPT_CFG;)
# define OPT_NO_XLAT_OPT_NAMES STMTS(ocpasswdOptions.fOptSet |= \
OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
# define OPT_XLAT_CFG_NAMES STMTS(ocpasswdOptions.fOptSet &= \
~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
# define OPT_XLAT_OPT_NAMES STMTS(ocpasswdOptions.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_ARGS_H_GUARD */
/* args.h ends here */

1011
src/autogen/ocserv-args.c Normal file

File diff suppressed because it is too large Load Diff

217
src/autogen/ocserv-args.h Normal file
View File

@@ -0,0 +1,217 @@
/* -*- buffer-read-only: t -*- vi: set ro:
*
* DO NOT EDIT THIS FILE (ocserv-args.h)
*
* It has been AutoGen-ed
* From the definitions ocserv-args.def
* and the template file options
*
* Generated from AutoOpts 41:1: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 ocserv 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 ocserv program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 2013-2016 Nikos Mavrogiannopoulos, 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 2 <http://gnu.org/licenses/gpl.html>
*
* ocserv is free software: you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License,
* as published by the Free Software Foundation.
*
* ocserv 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,
* version 2, along with this program.
* If not, see <http://www.gnu.org/licenses/>.
*/
/**
* This file contains the programmatic interface to the Automated
* Options generated for the ocserv program.
* These macros are documented in the AutoGen info file in the
* "AutoOpts" chapter. Please refer to that doc for usage help.
*/
#ifndef AUTOOPTS_OCSERV_ARGS_H_GUARD
#define AUTOOPTS_OCSERV_ARGS_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 167937
#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 type for ocserv
*/
typedef enum {
INDEX_OPT_FOREGROUND = 0,
INDEX_OPT_DEBUG = 1,
INDEX_OPT_CONFIG = 2,
INDEX_OPT_TEST_CONFIG = 3,
INDEX_OPT_PID_FILE = 4,
INDEX_OPT_VERSION = 5,
INDEX_OPT_HELP = 6,
INDEX_OPT_MORE_HELP = 7
} teOptIndex;
/** count of all options for ocserv */
#define OPTION_CT 8
/** ocserv version */
#define OCSERV_VERSION "0.11.5"
/** Full ocserv version text */
#define OCSERV_FULL_VERSION "ocserv 0.11.5"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
* option name (as in the teOptIndex enumeration above).
* e.g. HAVE_OPT(FOREGROUND)
*/
#define DESC(n) (ocservOptions.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) \
DESC(n).fOptState |= OPTST_DISABLED; \
DESC(n).optCookie = NULL )
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Enumeration of ocserv exit codes
*/
typedef enum {
OCSERV_EXIT_SUCCESS = 0,
OCSERV_EXIT_FAILURE = 1,
OCSERV_EXIT_USAGE_ERROR = 64,
OCSERV_EXIT_LIBOPTS_FAILURE = 70
} ocserv_exit_code_t;
/**
* Interface defines for specific options.
* @{
*/
#define VALUE_OPT_FOREGROUND 'f'
#define VALUE_OPT_DEBUG 'd'
#define OPT_VALUE_DEBUG (DESC(DEBUG).optArg.argInt)
#define VALUE_OPT_CONFIG 'c'
#define VALUE_OPT_TEST_CONFIG 't'
#define VALUE_OPT_PID_FILE 'p'
/** option flag (value) for help-value option */
#define VALUE_OPT_HELP 'h'
/** option flag (value) for more-help-value option */
#define VALUE_OPT_MORE_HELP '!'
/** option flag (value) for version-value option */
#define VALUE_OPT_VERSION 'v'
/*
* Interface defines not associated with particular options
*/
#define ERRSKIP_OPTERR STMTS(ocservOptions.fOptSet &= ~OPTPROC_ERRSTOP)
#define ERRSTOP_OPTERR STMTS(ocservOptions.fOptSet |= OPTPROC_ERRSTOP)
#define RESTART_OPT(n) STMTS( \
ocservOptions.curOptIdx = (n); \
ocservOptions.pzCurOpt = NULL )
#define START_OPT RESTART_OPT(1)
#define USAGE(c) (*ocservOptions.pUsageProc)(&ocservOptions, c)
#ifdef __cplusplus
extern "C" {
#endif
/* * * * * *
*
* Declare the ocserv option descriptor.
*/
extern tOptions ocservOptions;
#if defined(ENABLE_NLS)
# ifndef _
# include <stdio.h>
# ifndef HAVE_GETTEXT
extern char * gettext(char const *);
# else
# include <libintl.h>
# 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(ocservOptions.fOptSet |= \
OPTPROC_NXLAT_OPT_CFG;)
# define OPT_NO_XLAT_OPT_NAMES STMTS(ocservOptions.fOptSet |= \
OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
# define OPT_XLAT_CFG_NAMES STMTS(ocservOptions.fOptSet &= \
~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
# define OPT_XLAT_OPT_NAMES STMTS(ocservOptions.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_OCSERV_ARGS_H_GUARD */
/* ocserv-args.h ends here */

View File

@@ -21,6 +21,15 @@ ocpasswd_LDADD += $(LIBGNUTLS_LIBS) $(LIBCRYPT) $(CODE_COVERAGE_LDFLAGS) \
$(LIBNETTLE_LIBS)
args.c: $(srcdir)/args.def $(builddir)/../version.inc
$(AUTOGEN) $<
if test "$(AUTOGEN)" = ":";then \
rm -f $(builddir)/args.c; \
rm -f $(builddir)/args.h; \
cp $(srcdir)/../autogen/ocpasswd-args.c $(builddir)/args.c; \
cp $(srcdir)/../autogen/ocpasswd-args.h $(builddir)/args.h; \
else \
$(AUTOGEN) $<; \
cp $(builddir)/args.c $(srcdir)/../autogen/ocpasswd-args.c; \
cp $(builddir)/args.h $(srcdir)/../autogen/ocpasswd-args.h; \
fi
args.h: args.c