create generic macros for allocating/freeing structures.
remove one more slow GMemChunk and replace it with a simple linked list
~4% speed improvement in my tests.
the allocated data is never freed. this may be a problem if ethereal is
ever supported on a platform lacking resource tracking but makes the
implementation faster and simpler.
svn path=/trunk/; revision=9095
so they can't be freed with "g_free()"; keep a list of the chunks of
"fvalue_t"s, which are whare are allocated with "g_malloc()", so we can
free them all.
svn path=/trunk/; revision=9090
This function is also very small, so small that teh overhead for the actual function call and return is likely to be a significant part
of its execution time.
change it into a macro and make it thus slightly faster by eliminating the function call overhead.
svn path=/trunk/; revision=9083
Removed the GMemChunk used to allocate/free field_info structures
and used a free list to store the freed structs until they are allocated again.
Ethereal will allocate more field_info structs as it needs to but never free them. Instead the are just placed in a cheap and fast free list so that if we
want to use the struct again, this will be fast.
This affects the speed of the two functions
alloc_field_info() that should be slightly faster now
free_field_info() that was replaced with a 2 line macro.
All in all my testing suggests that ethereal is 2-3% faster with this patch.
svn path=/trunk/; revision=9073
not for VSA 2
- Fixme comment about length handling added
- Cleanup: Setting a variable to the right type removes the necessity
for casts.
svn path=/trunk/; revision=9067
compatible with and dissect the packets from Martin R and Paul H.
I still think ethereal was correct before this patch and that
this patch is not compatible with teh standard.
Anyway, that doesnt matter much. With this patch ethereal will dissect the packets properly.
Time to study x691 again.
svn path=/trunk/; revision=9066
* Fix the WSP dissector so a Quoted-string with extraneous
trailing quote is displayed without duplicated final quote, and
issue a warning in the protocol tree.
* Remove the Openwave x-up-proxy-client-id header decoding as it
was incorrectly decoded as a text string, and process it with
the default Openwave header parser.
* Fix byte highlighting of some WSP parameters.
* Rename the WSP parameter filter names so they don't all refer to
content_type.
svn path=/trunk/; revision=9062
* Add a "match_string" field to the "packet_info" structure,
saving the string value that matched in a string dissector
lookup, by analogy to "match_port" - this was required for
dissection with token rendering of WBXML content when no public
ID was given (e.g. Nokia/Ericsson OTA provisioning data).
* Add support for textual content type based WBXML token
mapping.
* Add extra WBXML public identifiers.
* Add the Nokia/Ericsson OTA provisioning (version 7) token
definitions.
* Inform the user when a content-type based token match is found.
svn path=/trunk/; revision=9061
In the GPROF logs proto_registrar_get_nth() used to take anything between 2.5 and 5.5% of the time.
Replace the GLIB array with a handroleld one for one of the private structures.
the function should now be virtually zero cost
and thus ethereal should be 2.5-5.5% faster on those traces.
anyone that wants to, please rerun GPROF with this fix and see what has changed.
svn path=/trunk/; revision=9058
over the wire, at least in the DCE RPC 1.1 code.
That suggests that the first 24 bytes of a Map request are the UUID
pointer that the EPM IDL says should be there, not a context handle.
svn path=/trunk/; revision=9057
"AIX", and that code was never compiled. Libpcap uses "_AIX" to
conditionally compile in the extra AIX BPF support; we'll do the same.
svn path=/trunk/; revision=9056
reported this as a problem when compiling on AIX? Doesn't any compiler
complain that "strncmp()" isn't being passed enough arguments? GCC sure
did in a test program I built on FreeBSD 3.4....)
svn path=/trunk/; revision=9055
"context_handle_attributes" in the DCE RPC 1.1 "nbase.idl". Rename our
structure member accordingly.
Note in a comment that we should perhaps display a context_handle as the
attributes and UUID.
Use "proto_tree_add_item()", not "proto_tree_add_bytes()", to put the
context handle raw data into the protocol tree.
svn path=/trunk/; revision=9052
- added a pointer to raw rtp data to _rtp_info that can be used by
taps;
- RTP packets are passed to the tap queue only if they are not
error packets (so that you don't need to filter out ICMP
packets)
- use that pointer in rtp_stream, so it handles packets with
padding, and should handle RTP packets fragmented across
lower-level packets
- moved rtp_stream from tap sources to normal files
(prevents on-start-up registration of the rtp_stream tap
listener)
- rtp_stream tap gets registered/unregistered with the "RTP
Streams" dialog box
i.e. the tap is registered as long as the dialog box is open.
Alternatively, it is de-/registered on demand if RTP Analysis is
called directly on a packet.
- rtp_stream tap listener no longer uses a filter in dissection
` and does not need to have a proto tree being built.
(performance increase)
- fixed: RTP Streams list will get updated in real time if the
dialog box is open while a redissection takes place.
svn path=/trunk/; revision=9051