From: Leandro Lucarella Date: Mon, 12 Dec 2005 19:49:48 +0000 (+0000) Subject: Arreglo el maldito bug que tiraba los paquetes con tamaño par. X-Git-Tag: 0.2-elp~5 X-Git-Url: https://git.llucax.com/z.facultad/66.09/etherled.git/commitdiff_plain/bcb643f77342b1b3de74df04bee5a71b90be7097 Arreglo el maldito bug que tiraba los paquetes con tamaño par. --- diff --git a/src/udp.c b/src/udp.c index 09b9bfc..68c457d 100644 --- a/src/udp.c +++ b/src/udp.c @@ -90,7 +90,7 @@ byte udp_read_byte() bool udp_checksum_ok() { // Verifico si falta sumar algo (UDP debe sumar de a un word) - if (byte_count == (udp_dgram_len - UDP_HEADER_SIZE)) + if (byte_count % 2) sum(WORD(last_byte, 0x00)); // Relleno el byte que falta con 0x00 return !(uint16)~checksum; } @@ -146,7 +146,7 @@ void udp_write_byte(byte b) void udp_write_checksum(byte offset) { // Verifico si falta sumar algo (UDP debe sumar de a un word) - if (byte_count == (udp_dgram_len - UDP_HEADER_SIZE)) + if (byte_count % 2) sum(WORD(last_byte, 0x00)); // Relleno el byte que falta con 0x00 // Escribo checksum en el buffer de la placa de red netdev_write_start_at(offset + 6, 2); // 6 bytes de offset hasta el checksum