Frage
Wenn Sie eine Dissektor in Wireshark zu schreiben, ist die dissect Funktion in der Quelle des Dissektor auf jedes Paket aufgerufen, um nur einmal?
Was mögliche Gründe sein könnte für Baumwerte ändern, wie ich auf Pakete mehrmals klicken?
Lösung
Es wird einmal aufgerufen, wenn das Paket erste ist die hohen Informationen angezeigt werden.
if (check_col(pinfo->cinfo, COL_PROTOCOL))
oder
if (check_col(pinfo->cinfo,COL_INFO))
Und wieder aufgerufen, wenn der Körper zeigt, das heißt, wenn Sie auf, dass ein Paket klicken.
if (tree)
Ich würde davon ausgehen, dass die zweite Anruf Ergebnisse verworfen werden, als ob Sie eine große Anzahl von Paketen haben zu dekodieren die Details für jeden zu halten wäre ein zu großer Aufwand.
Aber wie immer einige schnelle Prüfung der Lage wäre, zu zeigen, ob dies der Fall ist. (Über einen statischen Zähler)