Initial import of the CDE 2.1.30 sources from the Open Group.
This commit is contained in:
163
cde/lib/tt/bin/ttauth/ttauth.c
Normal file
163
cde/lib/tt/bin/ttauth/ttauth.c
Normal file
@@ -0,0 +1,163 @@
|
||||
/*
|
||||
* $TOG: ttauth.c /main/1 1999/08/30 10:46:20 mgreess $
|
||||
*
|
||||
* xauth - manipulate authorization file
|
||||
*
|
||||
*
|
||||
Copyright 1989, 1998 The Open Group
|
||||
|
||||
All Rights Reserved.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
* *
|
||||
* Original Author of "xauth" : Jim Fulton, MIT X Consortium
|
||||
* Modified into "iceauth" : Ralph Mor, X Consortium
|
||||
* Modified into "ttauth" : Mitch Greess, Solutions Atlantic
|
||||
*/
|
||||
|
||||
#include "ttauth.h"
|
||||
#include "api/c/tt_c.h"
|
||||
|
||||
|
||||
/*
|
||||
* global data
|
||||
*/
|
||||
char *ProgramName; /* argv[0], set at top of main() */
|
||||
int verbose = -1; /* print certain messages */
|
||||
Bool ignore_locks = False; /* for error recovery */
|
||||
Bool break_locks = False; /* for error recovery */
|
||||
|
||||
/*
|
||||
* local data
|
||||
*/
|
||||
|
||||
static char *authfilename = NULL; /* filename of cookie file */
|
||||
static char *defcmds[] = { "source", "-", NULL }; /* default command */
|
||||
static int ndefcmds = 2;
|
||||
static char *defsource = "(stdin)";
|
||||
|
||||
/*
|
||||
* utility routines
|
||||
*/
|
||||
static void usage ()
|
||||
{
|
||||
static char *prefixmsg[] = {
|
||||
"",
|
||||
"where options include:",
|
||||
" -f authfilename name of authority file to use",
|
||||
" -v turn on extra messages",
|
||||
" -q turn off extra messages",
|
||||
" -i ignore locks on authority file",
|
||||
" -b break locks on authority file",
|
||||
"",
|
||||
"and commands have the following syntax:",
|
||||
"",
|
||||
NULL };
|
||||
static char *suffixmsg[] = {
|
||||
"A dash may be used with the \"merge\" and \"source\" to read from the",
|
||||
"standard input. Commands beginning with \"n\" use numeric format.",
|
||||
"",
|
||||
NULL };
|
||||
char **msg;
|
||||
|
||||
fprintf (stderr, "usage: %s [-options ...] [command arg ...]\n",
|
||||
ProgramName);
|
||||
for (msg = prefixmsg; *msg; msg++) {
|
||||
fprintf (stderr, "%s\n", *msg);
|
||||
}
|
||||
print_help (stderr, NULL, " "); /* match prefix indentation */
|
||||
fprintf (stderr, "\n");
|
||||
for (msg = suffixmsg; *msg; msg++) {
|
||||
fprintf (stderr, "%s\n", *msg);
|
||||
}
|
||||
exit (1);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* The main routine - parses command line and calls action procedures
|
||||
*/
|
||||
main (argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
int i;
|
||||
char *sourcename = defsource;
|
||||
char **arglist = defcmds;
|
||||
int nargs = ndefcmds;
|
||||
int status;
|
||||
|
||||
ProgramName = argv[0];
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
char *arg = argv[i];
|
||||
|
||||
if (arg[0] == '-') {
|
||||
char *flag;
|
||||
|
||||
for (flag = (arg + 1); *flag; flag++) {
|
||||
switch (*flag) {
|
||||
case 'f': /* -f authfilename */
|
||||
if (++i >= argc) usage ();
|
||||
authfilename = argv[i];
|
||||
continue;
|
||||
case 'v': /* -v */
|
||||
verbose = 1;
|
||||
continue;
|
||||
case 'q': /* -q */
|
||||
verbose = 0;
|
||||
continue;
|
||||
case 'b': /* -b */
|
||||
break_locks = True;
|
||||
continue;
|
||||
case 'i': /* -i */
|
||||
ignore_locks = True;
|
||||
continue;
|
||||
default:
|
||||
usage ();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
sourcename = "(argv)";
|
||||
nargs = argc - i;
|
||||
arglist = argv + i;
|
||||
if (verbose == -1) verbose = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (verbose == -1) { /* set default, don't junk stdout */
|
||||
verbose = (isatty(fileno(stdout)) != 0);
|
||||
}
|
||||
|
||||
if (!authfilename) {
|
||||
authfilename = tt_AuthFileName (); /* static name, do not free */
|
||||
if (!authfilename) {
|
||||
fprintf (stderr,
|
||||
"%s: unable to generate an authority file name\n",
|
||||
ProgramName);
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
if (auth_initialize (authfilename) != 0) {
|
||||
/* error message printed in auth_initialize */
|
||||
exit (1);
|
||||
}
|
||||
|
||||
status = process_command (sourcename, 1, nargs, arglist);
|
||||
|
||||
(void) auth_finalize ();
|
||||
exit ((status != 0) ? 1 : 0);
|
||||
}
|
||||
Reference in New Issue
Block a user