openbsd-ports/net/netatalk/patches/patch-etcatalkd-nbpc

245 lines
6.6 KiB
Plaintext

--- etc/atalkd/nbp.c.orig Tue Oct 28 09:28:43 1997
+++ etc/atalkd/nbp.c Wed Nov 10 15:55:22 1999
@@ -12,6 +12,8 @@
#include <stdlib.h>
#include <atalk/ddp.h>
#include <atalk/nbp.h>
+#include <stdlib.h>
+#include <string.h>
#ifdef __svr4__
#include <sys/sockio.h>
@@ -27,9 +29,13 @@
#include "multicast.h"
extern int transition;
+extern int strndiacasecmp();
struct nbptab *nbptab = 0;
+void nbp_ack();
+
+void
nbp_packet( ap, from, data, len )
struct atport *ap;
struct sockaddr_at *from;
@@ -39,7 +45,6 @@
struct nbphdr nh;
struct nbptuple nt;
struct nbpnve nn;
- struct sockaddr sa;
struct sockaddr_at sat;
struct nbptab *ntab;
struct ziptab *zt;
@@ -48,7 +53,6 @@
struct rtmptab *rtmp;
char *end, *nbpop, *zonep, packet[ 587 ];
int n, i, cc, locallkup = 0;
- u_short tonet;
end = data + len;
if ( data >= end ) {
@@ -64,7 +68,7 @@
syslog( LOG_INFO, "nbp_packet: malformed packet" );
return;
}
- bcopy( data, &nh, SZ_NBPHDR );
+ memcpy( &nh, data, SZ_NBPHDR );
nbpop = data; /* remember for fwd and brrq */
data += SZ_NBPHDR;
if ( nh.nh_cnt != 1 ) {
@@ -73,10 +77,10 @@
return;
}
- bcopy( data, &nt, SZ_NBPTUPLE );
+ memcpy( &nt, data, SZ_NBPTUPLE );
data += SZ_NBPTUPLE;
- bzero( &nn.nn_sat, sizeof( struct sockaddr_at ));
+ memset( &nn.nn_sat, 0, sizeof( struct sockaddr_at ));
#ifdef BSD4_4
nn.nn_sat.sat_len = sizeof( struct sockaddr_at );
#endif BSD4_4
@@ -91,7 +95,7 @@
return;
}
nn.nn_objlen = *data++;
- bcopy( data, nn.nn_obj, nn.nn_objlen );
+ memcpy( nn.nn_obj, data, nn.nn_objlen );
data += nn.nn_objlen;
/* type */
@@ -100,7 +104,7 @@
return;
}
nn.nn_typelen = *data++;
- bcopy( data, nn.nn_type, nn.nn_typelen );
+ memcpy( nn.nn_type, data, nn.nn_typelen );
data += nn.nn_typelen;
/* zone */
@@ -110,7 +114,7 @@
}
zonep = data; /* remember for fwd */
nn.nn_zonelen = *data++;
- bcopy( data, nn.nn_zone, nn.nn_zonelen );
+ memcpy( nn.nn_zone, data, nn.nn_zonelen );
data += nn.nn_zonelen;
if ( data != end ) {
@@ -173,7 +177,7 @@
syslog( LOG_ERR, "nbp rgstr malloc: %m" );
exit( 1 );
}
- bcopy( zone_mcast( zt->zt_name, zt->zt_len ), zt->zt_bcast,
+ memcpy( zt->zt_bcast, zone_mcast( zt->zt_name, zt->zt_len ),
sizeof( ethermulti ));
for ( iface = interfaces; iface; iface = iface->i_next ) {
@@ -197,7 +201,7 @@
syslog( LOG_ERR, "malloc: %m" );
exit( 1 );
}
- bcopy( &nn, &ntab->nt_nve, sizeof( struct nbpnve ));
+ memcpy( &ntab->nt_nve, &nn, sizeof( struct nbpnve ));
ntab->nt_next = nbptab;
ntab->nt_prev = 0;
if ( nbptab != 0 ) {
@@ -287,11 +291,11 @@
* of this packet.
*/
if ( zt ) {
- bcopy( data - len, packet, len );
+ memcpy( packet, data - len, len );
nbpop = packet + ( len - ( data - nbpop ));
data = packet + ( len - ( data - zonep ));
*data++ = zt->zt_len;
- bcopy( zt->zt_name, data, zt->zt_len );
+ memcpy( data, zt->zt_name, zt->zt_len );
data += zt->zt_len;
len = data - packet;
}
@@ -322,7 +326,7 @@
sat.sat_port = ap->ap_port;
nh.nh_op = NBPOP_LKUP;
- bcopy( &nh, nbpop, SZ_NBPHDR );
+ memcpy( nbpop, &nh, SZ_NBPHDR );
sat.sat_addr.s_net = 0; /* XXX */
sat.sat_addr.s_node = ATADDR_BCAST;
@@ -336,7 +340,7 @@
return;
}
for ( ap = iface->i_ports; ap; ap = ap->ap_next ) {
- if ( ap->ap_packet == nbp_packet ) {
+ if ( (void *) ap->ap_packet == (void *) nbp_packet ) {
break;
}
}
@@ -372,7 +376,7 @@
ap = rtmp->rt_gate->g_iface->i_ports;
}
for ( ; ap; ap = ap->ap_next ) {
- if ( ap->ap_packet == nbp_packet ) {
+ if ( (void *) ap->ap_packet == (void *)nbp_packet ) {
break;
}
}
@@ -387,19 +391,19 @@
locallkup = 1;
}
nh.nh_op = NBPOP_LKUP;
- bcopy( &nh, nbpop, SZ_NBPHDR );
+ memcpy( nbpop, &nh, SZ_NBPHDR );
sat.sat_addr.s_net = rtmp->rt_firstnet;
sat.sat_addr.s_node = ATADDR_BCAST;
} else {
if ( rtmp->rt_gate == 0 ) {
nh.nh_op = NBPOP_LKUP;
- bcopy( &nh, nbpop, SZ_NBPHDR );
+ memcpy( nbpop, &nh, SZ_NBPHDR );
sat.sat_addr.s_net = 0;
sat.sat_addr.s_node = ATADDR_BCAST;
locallkup = 1;
} else {
nh.nh_op = NBPOP_FWD;
- bcopy( &nh, nbpop, SZ_NBPHDR );
+ memcpy( nbpop, &nh, SZ_NBPHDR );
sat.sat_addr.s_net = rtmp->rt_firstnet;
sat.sat_addr.s_node = 0;
}
@@ -425,7 +429,7 @@
/* should we check that we're a router? XXX */
if ( !locallkup && ninterfaces > IFBASE ) {
nh.nh_op = NBPOP_LKUP;
- bcopy( &nh, nbpop, SZ_NBPHDR );
+ memcpy( nbpop, &nh, SZ_NBPHDR );
from->sat_addr.s_net = 0;
from->sat_addr.s_node = ATADDR_BCAST;
if ( sendto( ap->ap_fd, data - len, len, 0, (struct sockaddr *)from,
@@ -494,7 +498,7 @@
cc = data - packet;
data = packet;
*data++ = DDPTYPE_NBP;
- bcopy( &nh, data, SZ_NBPHDR );
+ memcpy( data, &nh, SZ_NBPHDR );
if ( sendto( ap->ap_fd, packet, cc, 0,
(struct sockaddr *)&nn.nn_sat,
@@ -522,15 +526,15 @@
*/
nt.nt_enum = i++;
- bcopy( &nt, data, SZ_NBPTUPLE );
+ memcpy( data, &nt, SZ_NBPTUPLE );
data += SZ_NBPTUPLE;
*data++ = ntab->nt_nve.nn_objlen;
- bcopy( ntab->nt_nve.nn_obj, data, ntab->nt_nve.nn_objlen );
+ memcpy( data, ntab->nt_nve.nn_obj, ntab->nt_nve.nn_objlen );
data += ntab->nt_nve.nn_objlen;
*data++ = ntab->nt_nve.nn_typelen;
- bcopy( ntab->nt_nve.nn_type, data, ntab->nt_nve.nn_typelen );
+ memcpy( data, ntab->nt_nve.nn_type, ntab->nt_nve.nn_typelen );
data += ntab->nt_nve.nn_typelen;
/*
@@ -540,7 +544,7 @@
*/
if ( ntab->nt_nve.nn_zonelen ) {
*data++ = ntab->nt_nve.nn_zonelen;
- bcopy( ntab->nt_nve.nn_zone, data, ntab->nt_nve.nn_zonelen );
+ memcpy( data, ntab->nt_nve.nn_zone, ntab->nt_nve.nn_zonelen );
data += ntab->nt_nve.nn_zonelen;
} else {
*data++ = 1;
@@ -556,7 +560,7 @@
cc = data - packet;
data = packet;
*data++ = DDPTYPE_NBP;
- bcopy( &nh, data, SZ_NBPHDR );
+ memcpy( data, &nh, SZ_NBPHDR );
if ( sendto( ap->ap_fd, packet, cc, 0,
(struct sockaddr *)&nn.nn_sat,
@@ -574,6 +578,7 @@
}
}
+void
nbp_ack( fd, nh_op, nh_id, to )
int fd;
int nh_op;
@@ -588,7 +593,7 @@
nh.nh_id = nh_id;
data = packet;
*data++ = DDPTYPE_NBP;
- bcopy( &nh, data, SZ_NBPHDR );
+ memcpy( data, &nh, SZ_NBPHDR );
data += SZ_NBPHDR;
if ( sendto( fd, packet, data - packet, 0, (struct sockaddr *)to,
sizeof( struct sockaddr_at )) < 0 ) {