2017-01-24 1 views
2

J'ai 2 dissecteurs tcp qui écoute le même port.
Par conséquent j'ai choisi d'avoir un dissecteur de base qui écoute ce port et ce dissecteur de base contient l'information pour les dissecteurs de 2 tcp.
lorsqu'un paquet arrive pour ce port, le dissecteur de base crée une boucle foreach et essaie d'appeler chacun des deux dissecteurs de tcp à son tour.comment obtenir une indication si un appel à dissecteur Wireshark d'un autre dissecteur a été réussi

J'utilise la ligne de code:

res = Dissector.get("first_tcp_dissector"):call(buffer, pinfo, tree) 

J'attends que si le dissecteur appelé analysé avec succès le paquet, il retournera un numéro (si ce paquet ne lui appartient pas, il retourne 0) .

mais dissector:call(tvb, pinfo, tree) ne retourne rien et je n'ai aucune indication si l'analyse a réussi.

Comment puis-je obtenir la vraie valeur de retour de first_tcp_dissector ou plutôt une indication si l'analyse a réussi?
(Soit dit en passant, je ne veux pas utiliser heuristique ...)

Répondre

0

mais dissector:call(tvb, pinfo, tree) ne retourne rien

Etes-vous sûr? Parce que si vous regardez le code source, Dissector_call() retourne le « Number of bytes dissected. »

Peut-être que vous utilisez une ancienne version de Wireshark avant this modification apportée par Stig Bjorlykke commis par Anders Broman le 17 Juin 2014?