Index: contrib/tcp_wrappers/scaffold.c =================================================================== --- contrib/tcp_wrappers/scaffold.c +++ contrib/tcp_wrappers/scaffold.c @@ -235,16 +235,6 @@ exit(0); } -/* dummy function to intercept the real rfc931() */ - -/* ARGSUSED */ - -void rfc931(request) -struct request_info *request; -{ - strcpy(request->user, unknown); -} - /* check_path - examine accessibility */ int check_path(path, st) Index: contrib/tcp_wrappers/tcpd.h =================================================================== --- contrib/tcp_wrappers/tcpd.h +++ contrib/tcp_wrappers/tcpd.h @@ -6,6 +6,12 @@ * $FreeBSD$ */ +#ifdef INET6 +#define TCPD_SOCKADDR struct sockaddr +#else +#define TCPD_SOCKADDR struct sockaddr_in +#endif + /* Structure to describe one communications endpoint. */ #define STRING_LENGTH 128 /* hosts, users, processes */ @@ -13,11 +19,7 @@ struct host_info { char name[STRING_LENGTH]; /* access via eval_hostname(host) */ char addr[STRING_LENGTH]; /* access via eval_hostaddr(host) */ -#ifdef INET6 - struct sockaddr *sin; /* socket address or 0 */ -#else - struct sockaddr_in *sin; /* socket address or 0 */ -#endif + TCPD_SOCKADDR *sin; /* socket address or 0 */ struct t_unitdata *unit; /* TLI transport address or 0 */ struct request_info *request; /* for shared information */ }; @@ -67,21 +69,22 @@ /* Global functions. */ #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT) -extern void fromhost(); /* get/validate client host info */ +extern void fromhost __P((struct request_info *)); /* get/validate client host info */ #else #define fromhost sock_host /* no TLI support needed */ #endif -extern int hosts_access(); /* access control */ -extern int hosts_ctl(); /* wrapper around request_init() */ -extern void shell_cmd(); /* execute shell command */ -extern char *percent_x(); /* do % expansion */ -extern void rfc931(); /* client name from RFC 931 daemon */ -extern void clean_exit(); /* clean up and exit */ -extern void refuse(); /* clean up and exit */ -extern char *xgets(); /* fgets() on steroids */ -extern char *split_at(); /* strchr() and split */ -extern unsigned long dot_quad_addr(); /* restricted inet_addr() */ +extern int hosts_access __P((struct request_info *)); /* access control */ +extern int hosts_ctl __P((char *, char *, char *, char *)); /* wrapper around request_init() */ +extern void shell_cmd __P((char *)); /* execute shell command */ +extern char *percent_x __P((char *, int, char *, struct request_info *)); /* do % expansion */ +extern void rfc931 __P((TCPD_SOCKADDR *, TCPD_SOCKADDR *, char *)); /* client name from RFC 931 daemon */ +extern void clean_exit __P((struct request_info *)); /* clean up and exit */ +extern void refuse __P((struct request_info *)); /* clean up and exit */ +extern char *xgets __P((char *, int, FILE *)); /* fgets() on steroids */ + +extern char *split_at __P((char *, int)); /* strchr() and split */ +extern unsigned long dot_quad_addr __P((char *)); /* restricted inet_addr() */ /* Global variables. */ @@ -98,13 +101,8 @@ * attributes. Each attribute has its own key. */ -#ifdef __STDC__ -extern struct request_info *request_init(struct request_info *,...); -extern struct request_info *request_set(struct request_info *,...); -#else -extern struct request_info *request_init(); /* initialize request */ -extern struct request_info *request_set(); /* update request structure */ -#endif +extern struct request_info *request_init __P((struct request_info *,...)); /* initialize request */ +extern struct request_info *request_set __P((struct request_info *,...)); /* update request structure */ #define RQ_FILE 1 /* file descriptor */ #define RQ_DAEMON 2 /* server process (argv[0]) */ @@ -124,27 +122,27 @@ * host_info structures serve as caches for the lookup results. */ -extern char *eval_user(); /* client user */ -extern char *eval_hostname(); /* printable hostname */ -extern char *eval_hostaddr(); /* printable host address */ -extern char *eval_hostinfo(); /* host name or address */ -extern char *eval_client(); /* whatever is available */ -extern char *eval_server(); /* whatever is available */ +extern char *eval_user __P((struct request_info *)); /* client user */ +extern char *eval_hostname __P((struct host_info *)); /* printable hostname */ +extern char *eval_hostaddr __P((struct host_info *)); /* printable host address */ +extern char *eval_hostinfo __P((struct host_info *)); /* host name or address */ +extern char *eval_client __P((struct request_info *)); /* whatever is available */ +extern char *eval_server __P((struct request_info *)); /* whatever is available */ #define eval_daemon(r) ((r)->daemon) /* daemon process name */ #define eval_pid(r) ((r)->pid) /* process id */ /* Socket-specific methods, including DNS hostname lookups. */ -extern void sock_host(); /* look up endpoint addresses */ -extern void sock_hostname(); /* translate address to hostname */ -extern void sock_hostaddr(); /* address to printable address */ +extern void sock_host __P((struct request_info *)); /* look up endpoint addresses */ +extern void sock_hostname __P((struct host_info *)); /* translate address to hostname */ +extern void sock_hostaddr __P((struct host_info *)); /* address to printable address */ #define sock_methods(r) \ { (r)->hostname = sock_hostname; (r)->hostaddr = sock_hostaddr; } /* The System V Transport-Level Interface (TLI) interface. */ #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT) -extern void tli_host(); /* look up endpoint addresses etc. */ +extern void tli_host __P((struct request_info *)); /* look up endpoint addresses etc. */ #endif /* @@ -153,13 +151,8 @@ * everyone would have to include . */ -#ifdef __STDC__ -extern void tcpd_warn(char *, ...); /* report problem and proceed */ -extern void tcpd_jump(char *, ...); /* report problem and jump */ -#else -extern void tcpd_warn(); -extern void tcpd_jump(); -#endif +extern void tcpd_warn __P((char *, ...)); /* report problem and proceed */ +extern void tcpd_jump __P((char *, ...)); /* report problem and jump */ struct tcpd_context { char *file; /* current file */ @@ -185,42 +178,42 @@ * behavior. */ -extern void process_options(); /* execute options */ -extern int dry_run; /* verification flag */ +extern void process_options __P((char *, struct request_info *)); /* execute options */ +extern int dry_run; /* verification flag */ /* Bug workarounds. */ #ifdef INET_ADDR_BUG /* inet_addr() returns struct */ #define inet_addr fix_inet_addr -extern long fix_inet_addr(); +extern long fix_inet_addr __P((char *)); #endif #ifdef BROKEN_FGETS /* partial reads from sockets */ #define fgets fix_fgets -extern char *fix_fgets(); +extern char *fix_fgets __P((char *, int, FILE *)); #endif #ifdef RECVFROM_BUG /* no address family info */ #define recvfrom fix_recvfrom -extern int fix_recvfrom(); +extern int fix_recvfrom __P((int, char *, int, int, struct sockaddr *, int *)); #endif #ifdef GETPEERNAME_BUG /* claims success with UDP */ #define getpeername fix_getpeername -extern int fix_getpeername(); +extern int fix_getpeername __P((int, struct sockaddr *, int *)); #endif #ifdef SOLARIS_24_GETHOSTBYNAME_BUG /* lists addresses as aliases */ #define gethostbyname fix_gethostbyname -extern struct hostent *fix_gethostbyname(); +extern struct hostent *fix_gethostbyname __P((char *)); #endif #ifdef USE_STRSEP /* libc calls strtok() */ #define strtok fix_strtok -extern char *fix_strtok(); +extern char *fix_strtok __P((char *, char *)); #endif #ifdef LIBC_CALLS_STRTOK /* libc calls strtok() */ #define strtok my_strtok -extern char *my_strtok(); +extern char *my_strtok __P((char *, char *)); #endif