Hi, Have a look at epan/dissectors/packet-hpteam.c for instance. It's just a reference to the header field for the representation of your PIDs.
Thanks, Jaap On 04/03/2013 04:42 PM, Christopher Merck wrote: > On 2013-03-05, Guy Harris wrote: >> On Mar 5, 2013, at 5:39 AM, Christopher Merck <[email protected]> >> wrote: >>> I believe the correct way to proceed is to register a new dissector >> table along the lines of "llc.oui", >> >> I believe the correct way to proceed would be to add llc_add_oui() to >> the Lua API, so that Lua dissectors that need to handle a not-already- >> registered OUI can register that OUI, including a new dissector table >> for PIDs in that OUI, and then a dissector (no matter what language it's >> in) could register in that table. > > I almost have this working. But what I don't understand is the fourth > argument to llc_add_oui. That structure contains a list of PIDs to register > and the table name. However, when I am registering the OUI I don't want to > register any PIDs yet, and I have already specified the table_name as the > second argument to llc_add_oui. > > So, I'm trying to stuff some dummy data into hf_pid, but I get segfaults or > assertion errors at runtime. > > Any idea what I'm missing? > > Thanks, > Chris > > --- > > WSLUA_FUNCTION wslua_llc_add_oui(lua_State* LS) { /* registers a new OUI for > LLC/SNAP purposes */ > #define WSLUA_ARG_llc_add_oui_OUI 1 /* OUI to register */ > #define WSLUA_ARG_llc_add_oui_TABLE_NAME 2 /* name of table to register, > should be of the form: llc.<ouiname>_pid*/ > #define WSLUA_ARG_llc_add_oui_TABLE_UI_NAME 3 /* name to display in GUI */ > lua_Number oui = luaL_checknumber(LS,WSLUA_ARG_llc_add_oui_OUI); > const gchar* table_name = > luaL_checkstring(LS,WSLUA_ARG_llc_add_oui_TABLE_NAME); > const gchar* table_ui_name = > luaL_checkstring(LS,WSLUA_ARG_llc_add_oui_TABLE_UI_NAME); > > const value_string oui_pid_vals[] = { { 0, NULL } }; > gint hf_llc_oui_pid = -1; > hf_register_info hf_pid = { > &hf_llc_oui_pid, > { "PID", NULL /*table_name*/, > FT_UINT16, BASE_HEX, VALS(oui_pid_vals), > 0x0, NULL, HFILL } > }; > hf_pid.hfinfo.abbrev = table_name; > > /* > void > llc_add_oui(guint32 oui, const char *table_name, const char *table_ui_name, > hf_register_info *hf_item) > */ > > // TODO: What do to about the fourth argument? > > llc_add_oui(oui, table_name, table_ui_name, &hf_pid); > > return 0; > } > > > ___________________________________________________________________________ Sent via: Wireshark-dev mailing list <[email protected]> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:[email protected]?subject=unsubscribe
