source: trunk/third/tcp_wrappers/try-from.c @ 11717

Revision 11717, 2.0 KB checked in by danw, 26 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r11716, which included commits to RCS files with non-trunk default branches.
Line 
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
14static 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
37int     allow_severity = SEVERITY;      /* run-time adjustable */
38int     deny_severity = LOG_WARNING;    /* ditto */
39
40main(argc, argv)
41int     argc;
42char  **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}
Note: See TracBrowser for help on using the repository browser.