Changeset 918e9910 in mainline for uspace/srv/net/tl


Ignore:
Timestamp:
2010-02-12T13:50:47Z (16 years ago)
Author:
Lukas Mejdrech <lukasmejdrech@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
827d73f
Parents:
4be390b
Message:
  • zero IP checksum flip fix
Location:
uspace/srv/net/tl
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/tl/icmp/icmp.c

    r4be390b r918e9910  
    617617        // checksum
    618618        if( header->checksum ){
    619                 while( ICMP_CHECKSUM( header, length )){
     619                while( ICMP_CHECKSUM( header, length ) != IP_CHECKSUM_ZERO ){
    620620                        // set the original message type on error notification
    621621                        // type swap observed in Qemu
  • uspace/srv/net/tl/tcp/tcp.c

    r4be390b r918e9910  
    382382                }
    383383                checksum = compute_checksum( checksum, socket_data->pseudo_header, socket_data->headerlen );
    384                 if( flip_checksum( compact_checksum( checksum ))){
     384                if( flip_checksum( compact_checksum( checksum )) != IP_CHECKSUM_ZERO ){
    385385                        printf( "checksum err %x -> %x\n", header->checksum, flip_checksum( compact_checksum( checksum )));
    386386                        fibril_rwlock_write_unlock( socket_data->local_lock );
  • uspace/srv/net/tl/udp/udp.c

    r4be390b r918e9910  
    372372        // check checksum
    373373        if( header->checksum ){
    374                 if( flip_checksum( compact_checksum( checksum ))){
     374                if( flip_checksum( compact_checksum( checksum )) != IP_CHECKSUM_ZERO ){
    375375                        if( tl_prepare_icmp_packet( udp_globals.net_phone, udp_globals.icmp_phone, packet, error ) == EOK ){
    376376                                // checksum error ICMP
Note: See TracChangeset for help on using the changeset viewer.