как получить индикацию успешного вызова диссектора Wireshark от другого диссектора

У меня есть 2 диссектора TCP, которые слушают один и тот же порт.
Поэтому я выбрал базовый диссектор, который слушает этот порт, и этот базовый диссектор содержит информацию для двух диссекторов TCP.
когда пакет приходит на этот порт , базовый диссектор создает цикл foreach и пытается вызвать каждый из двух диссекторов TCP по очереди.

Я использую строку кода:

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

Я ожидаю, что если вызываемый диссектор успешно проанализирует пакет, он вернет число (если этот пакет не для него, он вернет 0).

но dissector:call(tvb, pinfo, tree) ничего не возвращает, и у меня нет никаких указаний на успешный синтаксический анализ.

Как я могу получить истинное возвращаемое значение first_tcp_dissector или какое-то указание на успешность синтаксического анализа?
(Кстати, я не хочу использовать эвристику ...)


person B. Nir    schedule 24.01.2017    source источник


Ответы (1)


но dissector:call(tvb, pinfo, tree) ничего не возвращает

Вы уверены? Потому что, если вы посмотрите на исходный код, _ 2_ возвращает " Number of bytes dissected. "

Возможно, вы используете старую версию Wireshark до это изменение Стига Бьёрликке, совершенное Андерсом Броманом 17 июня 2014 года?

person Christopher Maynard    schedule 25.01.2017