Позволит ли мне Lua «читать» текст из текстового поля «Фильтр Wireshark»? - PullRequest
0 голосов
/ 20 мая 2011

Я хочу написать приложение, которое читает все критерии фильтрации в текстовом поле фильтра Wireshark, а затем манипулировать им, используя Lua. Кто-нибудь знает, возможно ли это? Я хотел бы знать, возможно ли это, прежде чем я углублюсь в изучение Lua и использование его с Wireshark.

Спасибо! Джо

1 Ответ

0 голосов
/ 22 мая 2011

Нет, вы не можете прочитать его, но вы можете установить фильтр и применить его к текущему захвату. См. Раздел Поддержка графического интерфейса в документации по Wireshark.

Чтобы установить текст текстового поля фильтра дисплея, используйте set_filter(text). Чтобы применить текущий текст фильтра отображения (чтобы он вступил в силу), используйте apply_filter().

Избегайте вызова apply_filter() изнутри диссектора (бесконечный цикл может возникнуть при повторном вызове диссектора). Эта функция лучше всего подходит для действия в меню или действия кнопки.

РЕДАКТИРОВАТЬ : Чтобы добавить собственную * Lua-функцию * 1014 в API Lua Wireshark ( не проверено ):

  1. Добавьте функцию с именем funnel_get_filter() в funnel_stat.c (см., Например, строку 468).
  2. Добавьте get_filter к funnel_ops_t (funnel.h:80).
  3. Добавьте funnel_get_filter к funnel_ops в funnel_stat.c:546 и в tap-funnel.c:90. Убедитесь, что вы добавили его с правильным индексом массива в соответствии с funnel_ops_t.
  4. Скопируйте приведенный ниже код в wslua_gui.c и затем скомпилируйте:

/* TODO: Test me!! */

WSLUA_FUNCTION wslua_get_filter(lua_State* L) { /* Get the text of the display filter textbox */
    const gchar* text;
    text = ops->get_filter();
    lua_pushstring(L,text);
    WSLUA_RETURN(1); /* The display filter textbox's text. */
}
...