en fait en appelant avec un socket UDP (entre autres) avec
recvmsg(sk, &msg, MSG_ERRQUEUE)
On va avoir les erreurs dans msg (struct msghdr). Ensuite il faut parser le tout et on peut retrouver différentes sources d'erreurs dont les erreurs ICMP.
man recvfrom
man cmsg
Bref, si on ne peut pas écouter les erreurs ICMP directement en raw socket, le noyau nous permet de les récupèrer quand même indirectement via ce méchanisme.
# bon j'ai compris...
Posté par RB . En réponse au message traceroute udp ou comment faire sans icmp ?. Évalué à 1.
recvmsg(sk, &msg, MSG_ERRQUEUE)
On va avoir les erreurs dans msg (struct msghdr). Ensuite il faut parser le tout et on peut retrouver différentes sources d'erreurs dont les erreurs ICMP.
man recvfrom
man cmsg
Bref, si on ne peut pas écouter les erreurs ICMP directement en raw socket, le noyau nous permet de les récupèrer quand même indirectement via ce méchanisme.