]> git.llucax.com Git - z.facultad/66.09/etherled.git/commitdiff
Arreglo el maldito bug que tiraba los paquetes con tamaƱo par.
authorLeandro Lucarella <llucax@gmail.com>
Mon, 12 Dec 2005 19:49:48 +0000 (19:49 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Mon, 12 Dec 2005 19:49:48 +0000 (19:49 +0000)
src/udp.c

index 09b9bfc24fe89c053dce5407cdf8336557e67ef9..68c457dd1261dcc5608e1adea00596e3d912eac5 100644 (file)
--- 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