]> git.llucax.com Git - z.facultad/66.09/etherled.git/blobdiff - src/udp.c
Arreglo el maldito bug que tiraba los paquetes con tamaƱo par.
[z.facultad/66.09/etherled.git] / 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