/[lwip]/lwip/src/core/inet.c
ViewVC logotype

Diff of /lwip/src/core/inet.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by adamdunkels, Thu Oct 24 13:20:42 2002 UTC revision 1.4 by likewise, Wed Nov 6 10:00:32 2002 UTC
# Line 144  inet_chksum_pbuf(struct pbuf *p) Line 144  inet_chksum_pbuf(struct pbuf *p)
144    for(q = p; q != NULL; q = q->next) {    for(q = p; q != NULL; q = q->next) {
145      acc += lwip_chksum(q->payload, q->len);      acc += lwip_chksum(q->payload, q->len);
146      while(acc >> 16) {      while(acc >> 16) {
147        acc = (acc & 0xffff) + (acc >> 16);        acc = (acc & 0xffffUL) + (acc >> 16);
148      }          }    
149      if(q->len % 2 != 0) {      if(q->len % 2 != 0) {
150        swapped = 1 - swapped;        swapped = 1 - swapped;
151        acc = (acc & 0xff << 8) | (acc & 0xff00 >> 8);        acc = (acc & 0x00ffUL << 8) | (acc & 0xff00UL >> 8);
152      }      }
153    }    }
154    
155    if(swapped) {    if(swapped) {
156      acc = ((acc & 0xff) << 8) | ((acc & 0xff00) >> 8);      acc = ((acc & 0x00ffUL) << 8) | ((acc & 0xff00UL) >> 8);
157    }    }
158    return ~(acc & 0xffff);    return ~(acc & 0xffffUL);
159  }  }
160    
161    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26