X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Fmisc%2Ftcpwrapper.c;h=e4f453bc93c6a95ca2de560b865037064751ae54;hp=8743a7b420ca7c9a172932b13574060e7b8a4cf8;hb=ad1fc3feae447685a8ec8c7db0ad913fe3c4de5c;hpb=1f06942239a30cdb9a06990cc087267bc8655b87 diff --git a/support/misc/tcpwrapper.c b/support/misc/tcpwrapper.c index 8743a7b..e4f453b 100644 --- a/support/misc/tcpwrapper.c +++ b/support/misc/tcpwrapper.c @@ -25,16 +25,16 @@ * authorized by the /etc/hosts.{allow,deny} files. The local system is * always treated as an authorized host. The access control tables are never * consulted for requests from the local system, and are always consulted - * for requests from other hosts. Access control is based on IP addresses - * only; attempts to map an address to a host name might cause the - * portmapper to hang. + * for requests from other hosts. * * Author: Wietse Venema (wietse@wzv.win.tue.nl), dept. of Mathematics and * Computing Science, Eindhoven University of Technology, The Netherlands. */ -#include "tcpwrapper.h" - +#ifdef HAVE_CONFIG_H +#include +#endif +#include #include #include #include @@ -49,16 +49,24 @@ #include #endif -static void logit(); -static void toggle_verboselog(); +static void logit(int severity, struct sockaddr_in *addr, + u_long procnum, u_long prognum, char *text); +static void toggle_verboselog(int sig); int verboselog = 0; int allow_severity = LOG_INFO; int deny_severity = LOG_WARNING; /* A handful of macros for "readability". */ +#ifdef HAVE_LIBWRAP /* coming from libwrap.a (tcp_wrappers) */ extern int hosts_ctl(char *daemon, char *name, char *addr, char *user); +#else +int hosts_ctl(char *daemon, char *name, char *addr, char *user) +{ + return 0; +} +#endif #define legal_port(a,p) \ (ntohs((a)->sin_port) < IPPORT_RESERVED || (p) >= IPPORT_RESERVED) @@ -117,12 +125,12 @@ struct sockaddr_in *addr; return 0; /* Check the official name first. */ - if (hosts_ctl(daemon, "", hp->h_name, "")) + if (hosts_ctl(daemon, hp->h_name, "", "")) return 1; /* Check aliases. */ for (sp = hp->h_aliases; *sp ; sp++) { - if (hosts_ctl(daemon, "", *sp, "")) + if (hosts_ctl(daemon, *sp, "", "")) return 1; } @@ -132,7 +140,7 @@ struct sockaddr_in *addr; /* check_startup - additional startup code */ -void check_startup() +void check_startup(void) { /* @@ -187,11 +195,8 @@ u_long prog; /* check_privileged_port - additional checks for privileged-port updates */ int -check_privileged_port(addr, proc, prog, port) -struct sockaddr_in *addr; -u_long proc; -u_long prog; -u_long port; +check_privileged_port(struct sockaddr_in *addr, + u_long proc, u_long prog, u_long port) { #ifdef CHECK_PORT if (!legal_port(addr, port)) { @@ -204,8 +209,7 @@ u_long port; /* toggle_verboselog - toggle verbose logging flag */ -static void toggle_verboselog(sig) -int sig; +static void toggle_verboselog(int sig) { (void) signal(sig, toggle_verboselog); verboselog = !verboselog; @@ -213,12 +217,8 @@ int sig; /* logit - report events of interest via the syslog daemon */ -static void logit(severity, addr, procnum, prognum, text) -int severity; -struct sockaddr_in *addr; -u_long procnum; -u_long prognum; -char *text; +static void logit(int severity, struct sockaddr_in *addr, + u_long procnum, u_long prognum, char *text) { char *procname; char procbuf[16 + 4 * sizeof(u_long)];