2017-01-24 2 views
2

Ich habe 2 TCP Dissektoren, die auf den gleichen Port hört.
Daher entschied ich mich für einen Basis-Dissektor, der diesen Port überwacht, und dieser Basis-Dissektor enthält die Informationen für die 2 TCP-Dissektoren.
Wenn ein Paket für diesen Port eintrifft, erstellt der Basis-Dissektor eine foreach-Schleife und versucht, jeden der beiden tcp-Dissektoren aufzurufen.Wie bekomme ich eine Meldung, wenn ein Anruf bei Wireshark Dissector von einem anderen Dissektor erfolgreich war

Ich verwende den Code Zeile:

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

Ich erwarte, dass, wenn der angerufene Dissektor das Paket erfolgreich analysiert wird es eine Nummer zurück (wenn das Paket nicht für sie ist, es zurückgeben 0) .

aber dissector:call(tvb, pinfo, tree) gibt nichts zurück und ich habe keine Angabe, ob die Analyse erfolgreich war.

Wie kann ich den wahren Rückgabewert des ersten_tcp_dissector oder ziemlich eine Angabe erhalten, wenn das Parsen erfolgreich war?
(By the way, ich möchte nicht Heuristik verwenden ...)

Antwort

0

aber dissector:call(tvb, pinfo, tree) kehrt nicht alles

Sind Sie sicher? Denn wenn man sich den Quellcode schauen, Dissector_call() kehrt die Number of bytes dissected.

Vielleicht sind Sie eine ältere Version von Wireshark vor this Änderung von Stig Bjørlykke von Anders Broman am 17. Juni 2014 begangen hat laufen?

Verwandte Themen