--- 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 #include #include #include @@ -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 ); }