123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- /*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these libraries and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
- /*
- * $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 "Tt/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(void)
- {
- 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
- */
- int
- main(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);
- }
|