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
Consola muestra largo de paquete invalido para paquetes ARP validos
Número de respuestas: 1
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