Wireshark-dev: Re: [Wireshark-dev] Filter registration limit
From: Jaap Keuter <jaap.keuter@xxxxxxxxx>
Date: Mon, 08 Nov 2010 16:53:37 +0100
Hi, There's no limit on this, but one thing that's changed is tighter conformance checks on header fields during registration. You should be able to find a problem at field #315. If you open up a console you should see something there as well. With your new loop you just reduce the impact. So, there's probably still a block of 'filters' that's not initialized, you just haven't found them yet. If you can post fields 310 up to 320 we might spot an issue. BTW: Blurbs as "" are deprecated, just put in NULL. Thanks, Jaap On Mon, 8 Nov 2010 15:57:38 +0100, Martin Mizera <martin.mizera@xxxxxxxxx> wrote: > Hello, > few moths ago(years), I finished writing own dissector for parsing > proprietary protocol. Last moth, I have rebuild my project using > wireshark 1.4.1( because some bugs appeard during parsing register > table(hf_register_info) ) > > From this time, only first 0x13a (314) filters are successfully > registered. (after calling method proto_register_field_array, only > firs 314 items have valid value (no -1) , rest have still -1)) > > I register filters like that: > > > void proto_register_tp_info ( int proto_medio ) > { > static hf_register_info hf[] = > { > { &hf_tp_ip_address, { "IP Address", > "tp.IP", FT_NONE, BASE_NONE, > NULL, 0, "IP Address", HFILL } }, > { &hf_tp_port_num, { "Port Number ", > "tp.PN", FT_NONE, BASE_NONE, > NULL, 0, "Port Number ", HFILL } }, > ... > ... and lots of more > ... > > { &hf_tp_nwcref, { "Network Call Reference", > "tp.NWCREF", FT_NONE, BASE_NONE, > NULL, 0, "", > HFILL } }, > { &hf_tp_nwcref_value, { "Call Reference number", > "tp.NWCREF.VAL", FT_UINT64, BASE_HEX_DEC, > NULL, 0, "", > HFILL } }, > > }; //totaly array length is more than 982 > > proto_register_field_array(proto_medio, hf, array_length(hf)); > } > > In watches I can see that only firs 314 was inicialized. > > I was seeking for any registration limit, but I didn't found any. > > > > So I rewrite my registration function like that: > void proto_register_tp_info ( int proto_medio ) > { > static hf_register_info hf[] = > { > { &hf_tp_ip_address, { "IP Address", > "tp.IP", FT_NONE, BASE_NONE, > NULL, 0, "IP Address", HFILL } }, > { &hf_tp_port_num, { "Port Number ", > "tp.PN", FT_NONE, BASE_NONE, > NULL, 0, "Port Number ", HFILL } }, > ... > ... and lots of more > ... > > { &hf_tp_nwcref, { "Network Call Reference", > "tp.NWCREF", FT_NONE, BASE_NONE, > NULL, 0, "", > HFILL } }, > { &hf_tp_nwcref_value, { "Call Reference number", > "tp.NWCREF.VAL", FT_UINT64, BASE_HEX_DEC, > NULL, 0, "", > HFILL } }, > > }; //totaly array length is more than 982 > > const gint c_hf_max = 128; //maximum registration filters at on time > const gint c_hf_total = array_length(hf); //total array len ... its > more than 980 > gint rest = c_hf_total; > gint cpy_cnt; > > while( rest > 0 ) > { > cpy_cnt = min( rest, c_hf_max ); > proto_register_field_array(proto_medio, &hf[c_hf_total - rest], cpy_cnt); > rest -= cpy_cnt; > } > } > > I have split registration in more pieces. And now, its allowed to > register only 128 filters at one time. > Sice this changed, every think works fine (all filters were registered) > > Is it some bug in wireshark api or it looks like bug in my code? > > ************************************* > wireshark version: > Version 1.4.1 (SVN Rev 34476 from /trunk-1.4) > > Compiled with GTK+ 2.16.6, (32-bit) with GLib 2.22.4, with WinPcap (version > unknown), with libz 1.2.3, without POSIX capabilities, without > libpcre, with SMI > 0.4.8, with c-ares 1.7.1, with Lua 5.1, without Python, with GnuTLS > 2.8.5, with > Gcrypt 1.4.5, with MIT Kerberos, with GeoIP, with PortAudio V19-devel > (built Oct > 11 2010), with AirPcap. > > Running on Windows XP Service Pack 3, build 2600, without WinPcap, > GnuTLS 2.8.5, > Gcrypt 1.4.5, without AirPcap. > > Built using Microsoft Visual C++ 9.0 build 30729 > > Operating system Windows XP, compiling tool MS VS 2008 > ************************************* > ___________________________________________________________________________ > Sent via: Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx> > Archives: http://www.wireshark.org/lists/wireshark-dev > Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev > mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
- Follow-Ups:
- Re: [Wireshark-dev] Filter registration limit
- From: Martin Mizera
- Re: [Wireshark-dev] Filter registration limit
- References:
- [Wireshark-dev] Filter registration limit
- From: Martin Mizera
- [Wireshark-dev] Filter registration limit
- Prev by Date: [Wireshark-dev] Filter registration limit
- Next by Date: [Wireshark-dev] How to expand Manually Resolve Address?
- Previous by thread: [Wireshark-dev] Filter registration limit
- Next by thread: Re: [Wireshark-dev] Filter registration limit
- Index(es):