<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">--- tcpd.h.orig	2009-10-05 16:17:07.000000000 -0500
+++ tcpd.h	2020-08-07 03:49:33.000000000 -0500
@@ -4,6 +4,11 @@
   * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
   */
 
+/* Need FILE. */
+#include &lt;stdio.h&gt;
+
+__BEGIN_DECLS
+
 /* Structure to describe one communications endpoint. */
 
 #define STRING_LENGTH	128		/* hosts, users, processes */
@@ -92,10 +97,10 @@
     char    pid[10];			/* access via eval_pid(request) */
     struct host_info client[1];		/* client endpoint info */
     struct host_info server[1];		/* server endpoint info */
-    void  (*sink) ();			/* datagram sink function or 0 */
-    void  (*hostname) ();		/* address to printable hostname */
-    void  (*hostaddr) ();		/* address to printable address */
-    void  (*cleanup) ();		/* cleanup function or 0 */
+    void  (*sink) (int);		/* datagram sink function or 0 */
+    void  (*hostname) (struct host_info *); /* address to printable hostname */
+    void  (*hostaddr) (struct host_info *); /* address to printable address */
+    void  (*cleanup) (struct request_info *); /* cleanup function or 0 */
     struct netconfig *config;		/* netdir handle */
 };
 
@@ -137,20 +142,23 @@
 #define fromhost sock_host		/* no TLI support needed */
 #endif
 
-extern int hosts_access();		/* access control */
-extern void shell_cmd();		/* execute shell command */
-extern char *percent_x();		/* do %&lt;char&gt; 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 numeric_addr();		/* IP4/IP6 inet_addr (restricted) */
-extern struct hostent *tcpd_gethostbyname();
+extern int hosts_access(struct request_info *request);	/* access control */
+extern int hosts_ctl(char *daemon, char *name, char *addr, char *user);			/* wrapper around request_init() */
+extern void shell_cmd(char *);		/* execute shell command */
+extern char *percent_x(char *, int, char *, struct request_info *);
+					/* do %&lt;char&gt; expansion */
+extern void rfc931(struct sockaddr_gen *, struct sockaddr_gen *, char *);
+					/* client name from RFC 931 daemon */
+extern void clean_exit(struct request_info *);	/* clean up and exit */
+extern void refuse(struct request_info *);	/* clean up and exit */
+extern char *xgets(char *, int, FILE *);	/* fgets() on steroids */
+extern char *split_at(char *, int);		/* strchr() and split */
+extern unsigned long dot_quad_addr(char *);	/* restricted inet_addr() */
+extern int numeric_addr(char *str, union gen_addr *addr, int *af, int *len);		/* IP4/IP6 inet_addr (restricted) */
+extern struct hostent *tcpd_gethostbyname(char *host, int af);
 					/* IP4/IP6 gethostbyname */
 #ifdef HAVE_IPV6
-extern char *skip_ipv6_addrs();		/* skip over colons in IPv6 addrs */
+extern char *skip_ipv6_addrs(char *str);		/* skip over colons in IPv6 addrs */
 #else
 #define skip_ipv6_addrs(x)	x
 #endif
@@ -196,20 +204,23 @@
   * 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(struct request_info *);	/* client user */
+extern char *eval_hostname(struct host_info *);	/* printable hostname */
+extern char *eval_hostaddr(struct host_info *);	/* printable host address */
+extern char *eval_hostinfo(struct host_info *);	/* host name or address */
+extern char *eval_client(struct request_info *);/* whatever is available */
+extern char *eval_server(struct request_info *);/* whatever is available */
 #define eval_daemon(r)	((r)-&gt;daemon)	/* daemon process name */
 #define eval_pid(r)	((r)-&gt;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 */
+/* look up endpoint addresses */
+extern void sock_host(struct request_info *);
+/* translate address to hostname */
+extern void sock_hostname(struct host_info *);
+/* address to printable address */
+extern void sock_hostaddr(struct host_info *);
 #define sock_methods(r) \
 	{ (r)-&gt;hostname = sock_hostname; (r)-&gt;hostaddr = sock_hostaddr; }
 
@@ -257,7 +268,7 @@
   * behavior.
   */
 
-extern void process_options();		/* execute options */
+extern void process_options(char *, struct request_info *);/* execute options */
 extern int dry_run;			/* verification flag */
 
 /* Bug workarounds. */
@@ -296,3 +307,6 @@
 #define strtok	my_strtok
 extern char *my_strtok();
 #endif
+
+__END_DECLS
+
--- scaffold.c.orig	2009-10-05 16:17:07.000000000 -0500
+++ scaffold.c	2020-08-07 03:47:57.000000000 -0500
@@ -179,10 +179,12 @@
 
 /* ARGSUSED */
 
-void    rfc931(request)
-struct request_info *request;
+void    rfc931(rmt_sin, our_sin, dest)
+struct sockaddr_gen *rmt_sin;
+struct sockaddr_gen *our_sin;
+char   *dest;
 {
-    strcpy(request-&gt;user, unknown);
+    strcpy(dest, unknown);
 }
 
 /* check_path - examine accessibility */
</pre></body></html>