Как применить и переопределить настройки с помощью tshark?

Пишу плагин для wireshark-1.9.2. У нас нет графического интерфейса на сервере, поэтому мы используем tshark. Мой вопрос: как добавить и применить новые настройки с помощью tshark?

Мой файл $HOME/.wireshark/preferences содержит только одну строку:

ls_payload_display_len: 20

Когда я запускаю tshark, я получаю предупреждение:

Syntax error in preference ls_payload_display_len (applying your preferences once should remove this warning)

Я могу получить доступ к значению предпочтения в коде диссектора с помощью функции prefs_register_uint_preference(...). Но я не могу переопределить его с помощью параметра -o при запуске tshark:

tshark: Invalid -o flag "ls_payload_display_len:80"

Итак, два вопроса:

  1. Как применить файл настроек с помощью tshark, чтобы предупреждение о синтаксической ошибке больше не отображалось?
  2. Как переопределить значения настроек с помощью параметра -o tshark?

Спасибо.


person Shen Li    schedule 20.07.2013    source источник


Ответы (1)


Похоже, что при попытке установить несуществующий параметр Wireshark и TShark не сообщают об этом как о несуществующем параметре, они сообщают об этом как о «синтаксической ошибке в параметре» в файле настроек и как о «недействительном — o флаг" в командной строке.

prefs_register_uint_preference() принимает в качестве первого аргумента указатель на module_t, поэтому вы должны были сослаться на модуль настроек. Вызов prefs_register_module() принимает аргумент name, поэтому у модуля есть имя; полное имя вашего предпочтения включает имя модуля, поэтому, если имя вашего предпочтительного модуля — «my_protocol», имя вашего предпочтения будет «my_protocol.ls_payload_display_len», и вам придется использовать это полное имя в файле настроек и в командной строке, например.

my_protocol.ls_payload_display_len: 20

а также

tshark -o my_protocol.ls_payload_display_len:80
person Community    schedule 20.07.2013