Consola muestra largo de paquete invalido para paquetes ARP validos

Consola muestra largo de paquete invalido para paquetes ARP validos

de Pablo Adrian Barreto Dufourt -
Número de respuestas: 1
La función is_packet_valid() de sr_utils retorna correctamente 1 cuando un paquete es valido y 0 si no lo es, pero los mensajes que muestra en pantalla mediante printf() no reflejan este comportamiento.
Cuando un paquete ARP es valido se muestra: “Invalid packet length” y retorna 1, cuando el largo de un paquete ARP NO es valido se muestra “Packet length is correct” y se retorna 0.
Cuando un paquete ARP, IP/ICMP, IP/UDP (enviado por traceroute) u otro NO es valido se muestra: “Packet is valid” y se retorna 0;

Este error no es muy importante porque la función retorna el valor correcto, pero complica un poco la depuración el hecho de que en consola se muestre un mensaje contradictorio.

“If the code and the comments disagree, then both are probably wrong.” Norm Schryer
En respuesta a Pablo Adrian Barreto Dufourt

Re: Consola muestra largo de paquete invalido para paquetes ARP validos

de Matias Richart -

Hola.

Tenés razón! Hay un bug en el código.

Los printf de las líneas 67 y 70 están intercambiados y el printf de la línea 103 está mal, debería decir que el paquete es inválido.

Saludos