2N/A * Copyright 2001 Sun Microsystems, Inc. All rights reserved. 2N/A * Use is subject to license terms. 2N/A#
pragma ident "%Z%%M% %I% %E% SMI" 2N/A * Routines for controlled evaluation of host names, user names, and so on. 2N/A * They are, in fact, wrappers around the functions that are specific for 2N/A * the sockets or TLI programming interfaces. The request_info and host_info 2N/A * structures are used for result cacheing. 2N/A * These routines allows us to postpone expensive operations until their 2N/A * results are really needed. Examples are hostname lookups and double 2N/A * checks, or username lookups. Information that cannot be retrieved is 2N/A * given the value "unknown" ("paranoid" in case of hostname problems). 2N/A * When ALWAYS_HOSTNAME is off, hostname lookup is done only when required by 2N/A * tcpd paranoid mode, by access control patterns, or by %letter expansions. 2N/A * When ALWAYS_RFC931 mode is off, user lookup is done only when required by 2N/A * access control patterns or %letter expansions. 2N/A * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands. 2N/A/* System libraries. */ 2N/A * When a string has the value STRING_UNKNOWN, it means: don't bother, I 2N/A * tried to look up the data but it was unavailable for some reason. When a 2N/A * host name has the value STRING_PARANOID it means there was a name/address 2N/A/* eval_user - look up user name */ 2N/A/* eval_hostaddr - look up printable address */ 2N/A/* eval_hostname - look up host name */ 2N/A/* eval_hostinfo - return string with host name (preferred) or address */ 2N/A/* eval_client - return string with as much about the client as we know */ 2N/A/* eval_server - return string with as much about the server as we know */