Détails de la réponse

Bruno Ducrot
Le
Bonjour,

Le 25-04-2012, JKB
Bonjour à tous,

Je suis en train d'essayer de corriger des bugs dans un bout de code
assez court et vraiment mal écrit qui utilise la libcpap.

Ce programme prend une trame ethernet et la tronçonne pour l'envoyer
sur une interface spécifique. À l'autre bout du lien, il récupère
les bouts pour régénérer une trame éthernet.

Problème : le type qui a écrit ce bout de code utilise pcap_inject()
à chaque fois qu'un bout de paquet arrive même si la trame ethernet
n'est pas complète.

Je suppose que pcap_inject() s'attend à avoir un paquet 'raw'
_entier_ et non un bout, non ? Je n'ai pas trouvé dans la doc si
pcap_inject() est assez intelligent pour attendre que le paquet soit
effectivement complet pour l'envoyer.



Je serais vraiment surpris que pcap_inject() puisse etre assez intelligent pour
attendre que le paquet soit complet.

Par contre, si le code ressemble a ceci :

if (pcap_inject(p, buf, size) == -1) {
pcap_perror(p, "pcap_inject: ");
...
...
...
}

tu obtiendrais d'eventuels messages d'erreurs te permettant d'aller plus loin.


A plus,

--
Bruno Ducrot

A quoi ca sert que Ducrot hisse des carcasses ?