1:  /*
   2:   * This program can be called via a remote shell command to find out if the
   3:   * hostname and address are properly recognized, if username lookup works,
   4:   * and (SysV only) if the TLI on top of IP heuristics work.
   5:   *
   6:   * Example: "rsh host /some/where/try-from".
   7:   *
   8:   * Diagnostics are reported through syslog(3) and redirected to stderr.
   9:   *
  10:   * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
  11:   */
  12: 
  13: #ifndef lint
  14: static char sccsid[] = "@(#) try-from.c 1.2 94/12/28 17:42:55";
  15: #endif
  16: 
  17: /* System libraries. */
  18: 
  19: #include <sys/types.h>
  20: #include <stdio.h>
  21: #include <syslog.h>
  22: #include <string.h>
  23: 
  24: #ifdef TLI
  25: #include <sys/tiuser.h>
  26: #include <stropts.h>
  27: #endif
  28: 
  29: #ifndef STDIN_FILENO
  30: #define STDIN_FILENO    0
  31: #endif
  32: 
  33: /* Local stuff. */
  34: 
  35: #include "tcpd.h"
  36: 
  37: int     allow_severity = SEVERITY;  /* run-time adjustable */
  38: int     deny_severity = LOG_WARNING;    /* ditto */
  39: 
  40: main(argc, argv)
  41: int     argc;
  42: char  **argv;
  43: {
  44:     struct request_info request;
  45:     char    buf[BUFSIZ];
  46:     char   *cp;
  47: 
  48:     /*
  49:      * Simplify the process name, just like tcpd would.
  50:      */
  51:     if ((cp = strrchr(argv[0], '/')) != 0)
  52:     argv[0] = cp + 1;
  53: 
  54:     /*
  55:      * Turn on the "IP-underneath-TLI" detection heuristics.
  56:      */
  57: #ifdef TLI
  58:     if (ioctl(0, I_FIND, "timod") == 0)
  59:     ioctl(0, I_PUSH, "timod");
  60: #endif /* TLI */
  61: 
  62:     /*
  63:      * Look up the endpoint information.
  64:      */
  65:     request_init(&request, RQ_DAEMON, argv[0], RQ_FILE, STDIN_FILENO, 0);
  66:     (void) fromhost(&request);
  67: 
  68:     /*
  69:      * Show some results. Name and address information is looked up when we
  70:      * ask for it.
  71:      */
  72: 
  73: #define EXPAND(str) percent_x(buf, sizeof(buf), str, &request)
  74: 
  75:     puts(EXPAND("client address  (%%a): %a"));
  76:     puts(EXPAND("client hostname (%%n): %n"));
  77:     puts(EXPAND("client username (%%u): %u"));
  78:     puts(EXPAND("client info     (%%c): %c"));
  79:     puts(EXPAND("server address  (%%A): %A"));
  80:     puts(EXPAND("server hostname (%%N): %N"));
  81:     puts(EXPAND("server process  (%%d): %d"));
  82:     puts(EXPAND("server info     (%%s): %s"));
  83: 
  84:     return (0);
  85: }

Defined functions

main defined in line 40; never used

Defined variables

allow_severity defined in line 37; never used
deny_severity defined in line 38; never used
sccsid defined in line 14; never used

Defined macros

EXPAND defined in line 73; used 8 times
STDIN_FILENO defined in line 30; used 2 times
Last modified: 1994-12-28
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: ?E00
Valid CSS Valid XHTML 1.0 Strict