--- etc/atalkd/rtmp.c.orig	Sun Aug 17 09:21:45 1997
+++ etc/atalkd/rtmp.c	Tue Nov 30 18:13:48 1999
@@ -3,6 +3,7 @@
  * All Rights Reserved. See COPYRIGHT.
  */
 
+#include <string.h>
 #include <sys/syslog.h>
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -27,6 +28,9 @@
 #include "list.h"
 #include "atserv.h"
 
+extern	int	setaddr(), bootaddr();
+
+void
 rtmp_packet( ap, from, data, len )
     struct atport	*ap;
     struct sockaddr_at	*from;
@@ -38,9 +42,7 @@
     struct gate		*gate;
     struct interface	*iface;
     struct rtmptab	*rtmp;
-    u_short		tonet;
     char		*end, packet[ 587 ];
-    extern int		debug;
 
     end = data + len;
 
@@ -66,7 +68,7 @@
 	    syslog( LOG_INFO, "rtmp_packet no data header" );
 	    return;
 	}
-	bcopy( data, &rh, sizeof( struct rtmprdhdr ));
+	memcpy( &rh, data, sizeof( struct rtmprdhdr ));
 	data += sizeof( struct rtmprdhdr );
 
 	/* check rh address against from address */
@@ -110,7 +112,7 @@
 	    syslog( LOG_INFO, "rtmp_packet missing first tuple" );
 	    return;
 	}
-	bcopy( data, &rt, SZ_RTMPTUPLE );
+	memcpy( &rt, data, SZ_RTMPTUPLE );
 	data += SZ_RTMPTUPLE;
 
 	if ( rt.rt_net == 0 ) {
@@ -128,14 +130,14 @@
 		syslog( LOG_INFO, "rtmp_packet missing second tuple" );
 		return;
 	    }
-	    bcopy( data, &rt, SZ_RTMPTUPLE );
+	    memcpy( &rt, data, SZ_RTMPTUPLE );
 	    data += SZ_RTMPTUPLE;
 	} else if ( rt.rt_dist & 0x80 ) {
 	    if ( data + SZ_RTMPTUPLE > end ) {
 		syslog( LOG_INFO, "rtmp_packet missing first range-end" );
 		return;
 	    }
-	    bcopy( data, &xrt, SZ_RTMPTUPLE );
+	    memcpy( &xrt, data, SZ_RTMPTUPLE );
 	    data += SZ_RTMPTUPLE;
 
 	    if ( xrt.rt_dist != 0x82 ) {
@@ -345,14 +347,14 @@
 	    if ( data + SZ_RTMPTUPLE > end ) {
 		break;
 	    }
-	    bcopy( data, &rt, SZ_RTMPTUPLE );
+	    memcpy( &rt, data, SZ_RTMPTUPLE );
 	    data += SZ_RTMPTUPLE;
 	    if ( rt.rt_dist & 0x80 ) {
 		if ( data + SZ_RTMPTUPLE > end ) {
 		    syslog( LOG_INFO, "rtmp_packet missing range-end" );
 		    return;
 		}
-		bcopy( data, &xrt, SZ_RTMPTUPLE );
+		memcpy( &xrt, data, SZ_RTMPTUPLE );
 		data += SZ_RTMPTUPLE;
 	    }
 	}
@@ -379,18 +381,18 @@
 	    rh.rh_net = iface->i_addr.sat_addr.s_net;
 	    rh.rh_nodelen = 8;
 	    rh.rh_node = iface->i_addr.sat_addr.s_node;
-	    bcopy( &rh, data, sizeof( struct rtmp_head ));
+	    memcpy( data, &rh, sizeof( struct rtmp_head ));
 	    data += sizeof( struct rtmp_head );
 
 	    if ( iface->i_flags & IFACE_PHASE2 ) {
 		rt.rt_net = iface->i_rt->rt_firstnet;
 		rt.rt_dist = 0x80;
-		bcopy( &rt, data, SZ_RTMPTUPLE );
+		memcpy( data, &rt, SZ_RTMPTUPLE );
 		data += SZ_RTMPTUPLE;
 
 		rt.rt_net = iface->i_rt->rt_lastnet;
 		rt.rt_dist = 0x82;
-		bcopy( &rt, data, SZ_RTMPTUPLE );
+		memcpy( data, &rt, SZ_RTMPTUPLE );
 		data += SZ_RTMPTUPLE;
 	    }
 	    if ( sendto( ap->ap_fd, packet, data - packet, 0,
@@ -417,18 +419,18 @@
     }
 }
 
+void
 rtmp_request( iface )
     struct interface	*iface;
 {
     struct sockaddr_at	sat;
     struct atport	*ap;
     char		*data, packet[ 2 ];
-    int			i;
 
     syslog( LOG_INFO, "rtmp_request for %s", iface->i_name );
 
     for ( ap = iface->i_ports; ap; ap = ap->ap_next ) {
-	if ( ap->ap_packet == rtmp_packet ) {
+	if ( (void *) ap->ap_packet == (void *) rtmp_packet ) {
 	    break;
 	}
     }
@@ -444,7 +446,7 @@
     /*
      * There is a problem with the net zero "hint" hack.
      */
-    bzero( &sat, sizeof( struct sockaddr_at ));
+    memset( &sat, 0, sizeof( struct sockaddr_at ));
 #ifdef BSD4_4
     sat.sat_len = sizeof( struct sockaddr_at );
 #endif BSD4_4
@@ -463,6 +465,7 @@
 /*
  * Complete configuration for phase 1 interface using RTMP information.
  */
+void
 rtmp_config( rh, iface )
     struct rtmp_head	*rh;
     struct interface	*iface;
@@ -517,6 +520,7 @@
     }
 }
 
+int
 looproute( iface, cmd )
     struct interface	*iface;
     int			cmd;
@@ -533,14 +537,14 @@
 	abort();
     }
 
-    bzero( &dst, sizeof( struct sockaddr_at ));
+    memset( &dst, 0, sizeof( struct sockaddr_at ));
 #ifdef BSD4_4
     dst.sat_len = sizeof( struct sockaddr_at );
 #endif BSD4_4
     dst.sat_family = AF_APPLETALK;
     dst.sat_addr.s_net = iface->i_addr.sat_addr.s_net;
     dst.sat_addr.s_node = iface->i_addr.sat_addr.s_node;
-    bzero( &loop, sizeof( struct sockaddr_at ));
+    memset( &loop, 0, sizeof( struct sockaddr_at ));
 #ifdef BSD4_4
     loop.sat_len = sizeof( struct sockaddr_at );
 #endif BSD4_4
@@ -560,12 +564,13 @@
     return( 0 );
 }
 
+int
 gateroute( command, rtmp )
     int			command;
     struct rtmptab	*rtmp;
 {
     struct sockaddr_at	dst, gate;
-    unsigned short	net;
+    u_int16_t		net;
 
     if ( command == RTMP_DEL && ( rtmp->rt_flags & RTMPTAB_ROUTE ) == 0 ) {
 	return( -1 );
@@ -581,7 +586,7 @@
      * the kernel.  Otherwise, we'll get a bunch of routes to the loop
      * back interface, and who wants that?
      */
-    bzero( &gate, sizeof( struct sockaddr_at ));
+    memset( &gate, 0, sizeof( struct sockaddr_at ));
 #ifdef BSD4_4
     gate.sat_len = sizeof( struct sockaddr_at );
 #endif BSD4_4
@@ -592,7 +597,7 @@
 	gate.sat_addr.s_net = net;
     }
 
-    bzero( &dst, sizeof( struct sockaddr_at ));
+    memset( &dst, 0, sizeof( struct sockaddr_at ));
 #ifdef BSD4_4
     dst.sat_len = sizeof( struct sockaddr_at );
 #endif BSD4_4
@@ -618,6 +623,7 @@
     return( 0 );
 }
 
+void
 rtmp_new( rtmp )
     struct rtmptab	*rtmp;
 {
@@ -679,6 +685,7 @@
  * Find a replacement for "replace".  If we can't find a replacement,
  * return 1.  If we do find a replacement, return 0.
  */
+int
 rtmp_replace( replace )
     struct rtmptab	*replace;
 {
@@ -720,6 +727,7 @@
  * Remove rtmp from the in-use table and the per-gate table.
  * Free any associated space.
  */
+void
 rtmp_free( rtmp )
     struct rtmptab	*rtmp;
 {
@@ -755,6 +763,7 @@
  * Delete rtmp from the per-interface in-use table, remove all
  * zone references, and remove the route from the kernel.
  */
+void
 rtmp_delinuse( rtmp )
     struct rtmptab	*rtmp;
 {
@@ -835,6 +844,7 @@
 /*
  * Add rtmp to the per-interface in-use table.  No verification is done...
  */
+void
 rtmp_addinuse( rtmp )
     struct rtmptab	*rtmp;
 {
@@ -863,6 +873,7 @@
  * at this point?  What do we do if we get several copies of a route in
  * an RTMP packet?
  */
+void
 rtmp_copyzones( to, from )
     struct rtmptab	*to, *from;
 {
@@ -899,6 +910,6 @@
 	return( 0 );
     }
 
-    bzero( rtmp, sizeof( struct rtmptab ));
+    memset( rtmp, 0, sizeof( struct rtmptab ));
     return( rtmp );
 }
