@ -1086,7 +1086,7 @@ NetReceive(uchar *inpkt, int len)
if ( ( ip - > ip_hl_v & 0x0f ) > 0x05 )
return ;
/* Check the Checksum of the header */
if ( ! NetCksumO k( ( uchar * ) ip , IP_HDR_SIZE / 2 ) ) {
if ( ! ip_checksum_o k( ( uchar * ) ip , IP_HDR_SIZE ) ) {
debug ( " checksum bad \n " ) ;
return ;
}
@ -1291,27 +1291,6 @@ common:
/**********************************************************************/
int
NetCksumOk ( uchar * ptr , int len )
{
return ! ( ( NetCksum ( ptr , len ) + 1 ) & 0xfffe ) ;
}
unsigned
NetCksum ( uchar * ptr , int len )
{
ulong xsum ;
ushort * p = ( ushort * ) ptr ;
xsum = 0 ;
while ( len - - > 0 )
xsum + = * p + + ;
xsum = ( xsum & 0xffff ) + ( xsum > > 16 ) ;
xsum = ( xsum & 0xffff ) + ( xsum > > 16 ) ;
return xsum & 0xffff ;
}
int
NetEthHdrSize ( void )
{
ushort myvlanid ;
@ -1410,7 +1389,7 @@ void net_set_udp_header(uchar *pkt, IPaddr_t dest, int dport, int sport,
net_set_ip_header ( pkt , dest , NetOurIP ) ;
ip - > ip_len = htons ( IP_UDP_HDR_SIZE + len ) ;
ip - > ip_p = IPPROTO_UDP ;
ip - > ip_sum = ~ NetCksum ( ( uchar * ) ip , IP_HDR_SIZE > > 1 ) ;
ip - > ip_sum = compute_ip_checksum ( ip , IP_HDR_SIZE ) ;
ip - > udp_src = htons ( sport ) ;
ip - > udp_dst = htons ( dport ) ;