of 0 to be dissected as STUN packets, to support dissecting of
application that follow the ICE methodology described in
draft-ietf-mmusic-ice-03.
Remove some extra spaces at the end of tags for preferences.
svn path=/trunk/; revision=13356
Find attached a patch for "Voip analysis" to get the LRQ/LCF/LRJ messages included in the H323 calls for Gatekeeper to Gatekeeper configurations
svn path=/trunk/; revision=13337
"datafile", and code in epan/filesystem.c expectes DATAFILE_DIR to be
set to the "ethereal" subdirectory of the data directory, not to the
data directory itself.
svn path=/trunk/; revision=13322
Update conversation_new and find_conversation in plugin_api_list.c and
associated files.
Add packet-dcerpc-butc.h to the distribution.
svn path=/trunk/; revision=13288
and the prototype idl compiler.
this is not ready for wide use yet but is useful with a svn area where we can sync our changes to the compiler.
svn path=/trunk/; revision=13280
>From autoconf.info:
In order to support these features, it is essential that `datadir'
remains being defined as `${prefix}/share' to depend upon the current
value of `prefix'.
A corollary is that you should not use these variables except in
Makefiles. For instance, instead of trying to evaluate `datadir' in
`configure' and hard-coding it in Makefiles using e.g.,
`AC_DEFINE_UNQUOTED(DATADIR, "$datadir")', you should add
`-DDATADIR="$(datadir)"' to your `CPPFLAGS'.
svn path=/trunk/; revision=13275
Attached please find a small performance optimization to packet-ip.c,
which removes multiple redundant calls to tvb_get_ptr().
Changed srt_addr and dst_addr from char to guchar
svn path=/trunk/; revision=13272
Please find attached a small patch for CoSine L2 debug dissector. The
code used to incorrectly select the first 4 octets in the tvbuff. This
patch fixes this problem.
svn path=/trunk/; revision=13271
Do not add target address if the packet is a Request. According to the RFC,
target addresses in requests have no meaning
svn path=/trunk/; revision=13269
Patch for graphing ISUP calls. It shows the type of message,
in the first one the calling and called numbers, and in the second the SPs
and CIC; in releases it shows the cause value.
svn path=/trunk/; revision=13263
1) Added a setup_frame parameter to conversation_t
2) Used the conversation_t next to maintain a list of conversations with the
same src/dest tuple but different setup_frame number.
3) Changed the signature of find_conversation() and conversation_new() to pass
in the frame number.
4) Adjusted packet-sdp to select RTP conversation if both m=audio and m=image
are present, and T.38 conversation if only m=image is present. I expect that
RTP/T.38 dissecting to be better, but I don't have a way to generate T.38
packets.
svn path=/trunk/; revision=13243
h323 taps support up to 5 messages per packet now.
VoIP call analysis:
- Collect ISUP, SIP and H323 calls from a capture and show them in window with the following info:
- Start and Stop time of the call
- Init
svn path=/trunk/; revision=13225
it as such.
Clear the Info column when dissecting cells for an AAL we handle before
dissecting the cell, and set the Info column for OAM cells.
svn path=/trunk/; revision=13222
packet-redback.c(63) : warning C4244: '=' : conversion from 'unsigned short ' to 'unsigned char ', possible loss of data
packet-redback.c(64) : warning C4244: '=' : conversion from 'unsigned short ' to 'unsigned char ', possible loss of data
packet-redback.c(65) : warning C4244: '=' : conversion from 'unsigned short ' to 'unsigned char ', possible loss of data
packet-rmt-fec.c(108) : warning C4244: '=' : conversion from 'unsigned short ' to 'unsigned char ', possible loss of data
svn path=/trunk/; revision=13221
- remove duplicate fields from VSAs (every defined field in VSAs was set twice)
- dissect radius packet with avplen == 0 (did not decode authenticator when no AVPs were present)
svn path=/trunk/; revision=13216
the really really old one which is never used
and there is the DCE/RPC one that is used by all windows/cifs implementations.
We used to reserve the protocol name NETLOGON for the old obsolete protocol
and since we can not have two protocols with the same name, called
the current protocol RPC_NETLOGON instead.
that does not exactly make sense.
This renames the old obsolete protocol to SMB_NETLOGON to make way and allow
the real netlogon protocol take the name NETLOGON
svn path=/trunk/; revision=13215
Don't check, in the dissectors for particular Gnutella packets, whether
the packet goes past the end of the tvbuff - let that throw an exception
so unreassembled packets are shown as such.
Clean up indentation.
Boost GNUTELLA_MAX_SNAP_SIZE to 4096 (one Gnutella spec suggests that
packets should be < 4K), and use it to
1) clamp the length of packets (so we don't do huge reassembly
or have problems when the total packet length, including the
header, overflows 32 bits)
and
2) check the length of packets before using tcp_dissect_pdus(),
to distinguish between packets to be reassembled and a
transfer stream.
Pass the correct value to tcp_dissect_pdus() as the header length.
svn path=/trunk/; revision=13211
change its signature to match the autogenerated signatures.
add a small wrapper function so tha tthe handwritten lsa can still call the
function through dissect_ndr_pointer()
no changes in functionality, essentially just a rename of a function and signature change
svn path=/trunk/; revision=13207
Do more, and more careful, AVP length checks.
Use tvb_format_text() to display strings.
Just use "col_add_fstr()" to set the Info column - there's no need to
format into a buffer and then set the column to that buffer.
Make the L2TP dissector a "new-style" dissector and have it reject
packets with an unknown version number - the dissection effect is the
same if no other dissector claims the packet (it just gets displayed as
data), but this allows other dissectors to claim it.
Don't use the length field if the length bit isn't set.
svn path=/trunk/; revision=13201
If the information that we used to guess the payload type is part of the
payload, don't make it correspond to the "Payload Type" protocol tree
item - it's covered by the dissected payload.
If we don't succeed in guessing the protocol type, just dissect the
payload as data.
svn path=/trunk/; revision=13200
this construct is aligned on 4 byte boundaries in ndr and NOT
8 bytes as a real uint64 (== hyper) would be.
rename the existing dissect_ndr_uint64 ro dissect_ndr_duint32 (double uint32) to make it reflect better the alignment of the type.
svn path=/trunk/; revision=13184
otherwise, we're using it in a tvbuff and shouldn't free it (even if the
next level of reassembly isn't complete, so that al_tvb is ultimately
null).
svn path=/trunk/; revision=13134
Use "guint16" instead of "u_int16_t", "guint8" instead of "u_int8_t",
and "guint" instead of "u_int", to handle platforms lacking the latter
types. Make "ppp_heuristic_guess()" reeturn a Boolean, as it just
returns a "yes or no" answer.
svn path=/trunk/; revision=13132
in the frame. The filter "frame.protocols contains ip:icmp:ip" could
be used to find any ICMP packets containing IP headers.
Clean up whitespace.
svn path=/trunk/; revision=13118
to the end of the tvbuff.
Don't return a value from "dissect_h4501()" - the value isn't used, and
"dissect_h4501()" is registered with "register_dissector()", so it's not
supposed to return a value.
svn path=/trunk/; revision=13104
OT as well as NT, while SYSTEMROOT isn't.
If it's not set, don't bother looking for the hosts file, rather than
trying a path with a fixed drive letter. If it is set, try the Windows
NT location first and, if that fails, the Windows OT location.
svn path=/trunk/; revision=13088
as the description - some aim_tlv tables have NULL in the end-of-table
entry.
For those that don't, replace "Unknown" with NULL; "Unknown" is now
redundant.
svn path=/trunk/; revision=13084
layer byte in the reassembled data - including it means we have to pass
to "tvb_new_real_data()" a pointer to the *second* byte of a mallocated
chunk of data, but that would require us to have the free routine for
the new tvbuff back that pointer up before freeing it (we aren't doing
that currently, which means that "free()" either complains bitterly or,
potentially, corrupts the arena, causing crashes later).
Put in some XXX comments about some issues seen when looking at the
code.
svn path=/trunk/; revision=13083
"alloc_field_info()", so the error report can include the field with the
problem. (The file and line number isn't interesting - the bug isn't in
"alloc_field_info()", it's in the dissector that called the routine
calling "alloc_field_info()" - but the field name/abbrevition is
interesting, as it'd help developers identify the place in the dissector
where we're passing in a bogus length.)
svn path=/trunk/; revision=13081
Add a DISSECTOR_ASSERT() macro, which is the usual type of assertion
macro, but throws a DissectorError exception with a message giving the
flien and line number and the failed test as a string. Use that macro
in "alloc_field_info()".
Report that exception in the Info column and the protocol tree, as well
as logging the exception failure with g_warning().
svn path=/trunk/; revision=13078
16-bit unsigned value into it, but we might round it up to a multiple of
4 bytes, which could overflow a guint16. Make arguments corresponding
to them "int" as well.
Use the reported length in "cops_analyze_packetcable_mm_obj()".
svn path=/trunk/; revision=13075
don't dissect attributes if there aren't any;
put each attribute into a subtree;
register the dissector by name.
Use "match_strval()" to check whether the message type is a known STUN
message type, and to generate the message type for the Info column.
Don't use "tvb_bytes_exist()" to check when we run out of data - use the
length fields from the packet. Check the sanity of those lengths, too.
svn path=/trunk/; revision=13063
come directly from packet data, so don't abort if they define a sequence
of keycodes that goes past 255 - just report errors for the keycodes
past 255.
Clean up indentation.
svn path=/trunk/; revision=13059
the modifier name for every keycode, just give the modifier name once
and then show all the keycodes), and use "proto_item_append_text()"
rather than building a string.
Clean up white space.
svn path=/trunk/; revision=13057
updates and enhancements:
- Added Cookie and L2-Specific sublayer support via preferences dialog.
- Added carried payload dissecting support from draft-ietf-l2tpext-pwe3-*
and draft-townsley-l2tpv3-mpls-02.txt
- Completed missing message types (call types) and result codes for stopccn
and cdn.
- Fixed conditionals for avp_vendor_id (Vendor-Specific AVPs)
- Changed Pseudowire Capabilities List AVPs to use subtree instead of tab
- Added numeric value of result and error codes
- Added Session ID for v3 data packets and missing flags and reserved
- Added version to the L2TPv3 protocol tree
- Changed `Tunnel Id' to `Control Connection Id' for v3
- Fixed offset for ctrl_tree on L2TPv3 over UDP
- Added `L2TPv3' in the COL_PROTOCOL and fixed handling of L2TP version
svn path=/trunk/; revision=13055
that doesn't mean it's padding at the end of a previous item - it might,
for example, be the *first* item in the chunk. Don't treat it as
padding.
Do, however, treat an item that begins with a zero byte as an item, but
break out of the loop processing items as soon as the item type is put
into the protocol tree, as there's no length field or data in an
RTCP_SDES_END item. Fix the comment for that loop to indicate that the
loop checks both for end-of-frame and for an RTCP_SDES_END item.
svn path=/trunk/; revision=13040
- Fix partly wrong cause values in the gmm (found by Miklos Szurdi)
- Fix high/low nibble swap of the force to standby field (found by
Miklos Szurdi)
- Dissect all elements
svn path=/trunk/; revision=13030
Have the DLSw dissector reject packets with an unknown version field.
Leave out some more fields when dissecting Capability Exchange packets,
as they're not used in those packets.
Show numbers in hex when appropriate.
Show the individual subfields of the flow control and SSP flags fields.
Show the frame direction field with val_to_str(), and show the raw
value.
Clean up indentation.
svn path=/trunk/; revision=13019
In the past: to prevent duplicate protocol names (and alike), each time a new protocol was registered, the list of protocols were iterated and the name compared with each existing name using strcasecmp, which is slow as we have >500 protocols right now.
Now: the protocol name to check against duplicates is first converted into a hashvalue and then only this value is checked and stored in a hashtable. This way the string to check for, has to be converted/compared only a single time!
svn path=/trunk/; revision=13007
Add VENDOR_IETF to <epan/sminmpec.h>, and add an entry for it to
sminmpec_values[], so that the L2TP dissector can use them rather than
defining its own copy of the private enterprise number values and table
- and make it do so.
svn path=/trunk/; revision=12999
and de-boilerplate another part of the comment.
Fix a test of "octet_aligned" that was setting it to false rather than
testing whether it was false.
svn path=/trunk/; revision=12996
Clean up indentation.
The signatures are 4-byte strings - treat them as such.
Don't hide fields - dissectors should show what all bytes, other than
perhaps padding bytes, are.
Don't use the tvb_format_text-ified versions of strings as the value -
Ethereal already deals with non-printable characters when displaying
them.
When creating a subset tvbuff that runs to the end of the parent, use -1
as the length, don't calculate the length ourselves.
Use "tvb_reported_length()", not "tvb_length()", in loops that parse the
entire packet.
svn path=/trunk/; revision=12986
dissectors using the address resolution routines need to know about the
"address" structure, so not all of them would include <epan/address.h>
themselves.
svn path=/trunk/; revision=12978
o BGPv4 SAFI-Specific Attribute support
- draft-kapoor-nalawade-idr-bgp-ssa-00.txt
o Tunnel SAFI support for BGP
- draft-nalawade-kapoor-tunnel-safi-02.txt
o Small length fix
svn path=/trunk/; revision=12977
On Windows, if we don't get the SYSTEMROOT environment variable, try
various locations where the hosts file is known to exist.
svn path=/trunk/; revision=12972
Use "format_text()" or "tvb_format_text()" with the %s format, to handle
non-printable characters.
When uncompressing data into a new tvbuff, add it to the list of data
sources as we do elsewhere.
When putting items into the protocol tree from an uncompressed tvbuff,
use the offset into the tvbuff and the length of the item.
Fetch string lengths into a variable and use the variable rather than
repeatedly fetching the length from a tvbuff.
Use -1 rather than tvb_length_remaining() when putting a "to the end of
the tvbuff" item into the protocol tree.
Use "proto_tree_add_item()" to put items into the tree, rather than
"proto_tree_add_xxx" calls with a "tvb_get_yyy" call as the argument.
If we've fetched a value into a variable, don't re-fetch it in
"proto_tree_add_xxx" calls.
svn path=/trunk/; revision=12971
It can return NULL, which would lead here to strcpy(hostspath, NULL);
*Very* bad.
replace g_malloc(), strcpy() and strcat() with one single g_strconcat().
svn path=/trunk/; revision=12970
can register an OUI, and PIDs for that OUI, in the same fashion that
they can do so for SNAP (after which the 802a OUI Extended Ethertype is
clearly modeled).
svn path=/trunk/; revision=12967
Don't assign the result of a routine that mallocates data to a const
pointer - that forces us to cast the pointer when freeing the data.
svn path=/trunk/; revision=12960
returns. (The error returns shouldn't happen in practice, as the GLib
memory allocators never return a null pointer, they just abort the
program, but if we're going to be checking for failure and returning, we
should do the right thing anyway.)
svn path=/trunk/; revision=12957
Also, move up the freeing of the tag string to immediately after we're
done with it, so we don't leak it if we throw an exception getting the
value.
svn path=/trunk/; revision=12953
the top-level item for the buddy name, rather than extracting the string
into a mallocated buffer (and not freeing it...).
Put all the code to put stuff into the protocol tree inside "if(tree)".
svn path=/trunk/; revision=12950
- add more data to the Info structure of the h225 taps.
- Fix the output to the Info Column
This patch is not complete, but statistics should basically work now.
svn path=/trunk/; revision=12948
type of variable and assign the value; that squelches "dereferencing
type-punned pointer will break strict-aliasing rules" warnings from some
versions of GCC.
svn path=/trunk/; revision=12924
match what "register_tap_listener()" expects (rather than squelching
warnings about the differences by casting function pointers to "void
*").
Make static some functions not used outside the module in which they're
defined.
svn path=/trunk/; revision=12913
const pointer (so that we don't get complaints when we make the
tap-specific data argument to "tap_queue_packet()" a const pointer,
allowing dissectors to hand const data to a tap without a complaint), we
should make the tap per-packet function take a const pointer as an
argument as well. Do so.
In some taps, use _U_, or actually use the argument, rather than
sticking in dummy "X = X" assignments to fake use of parameters. (This
means that the tap functions in question no longer have the notion that
they act on a particular static structure wired in.)
svn path=/trunk/; revision=12910
Don't assign the const pointers passed to hash routines to non-const
pointers.
In "zonenm_to_str()", don't assume there's a null terminator in the
packet - use "tvb_get_string()" so that the buffer into which it's
copied is explicitly null-terminated.
Put the Domain & Port into the protocol tree as a "0xXXXXXXXX" string,
rather than as a string with one blank in it.
svn path=/trunk/; revision=12909
Don't assign the const pointers passed to hash routines to non-const
pointers.
Don't use "tvb_get_ptr()" to get a pointer to a data structure, and
dereference that pointer - there's no guarantee that the structure in
question will be located on an appropriate boundary in the data from the
packet (regardless of whether it's properly aligned within the data for
the protocol being dissected).
Put the record length for an EFP request into the protocol tree.
Check the sanity of the payload length for that request.
In "zonenm_to_str()", don't assume there's a null terminator in the
packet - use "tvb_get_string()" so that the buffer into which it's
copied is explicitly null-terminated.
Put the Domain & Port into the protocol tree as a "0xXXXXXXXX" string,
rather than as a string with one blank in it.
svn path=/trunk/; revision=12905
Don't assign the const pointers passed to hash routines to non-const
pointers.
Don't assume that strings the spec says are null-terminated are
necessarily null-terminated in the packet - use "tvb_strsize()" to find
the length of the purported null-terminated string; it'll throw the
appropriate exception if no null is found.
svn path=/trunk/; revision=12904
Don't supply our own definition of AF_INET or our own declaration of
"inet_pton()" - use the system ones if they're available.
"mkipv4_address()" doesn't modify the string passed to it - make it a
const pointer.
svn path=/trunk/; revision=12894
"ip_to_str()" and "ip6_to_str()".
Check the length of items for IPv4 and IPv6 addresses before displaying
them as such.
svn path=/trunk/; revision=12893
pointers.
Now that "col_set_str()" takes a "const char *" as the second argument,
we don't have to cast away the constness of strings passed to it.
svn path=/trunk/; revision=12892
does "get_plugins_pers_dir()" - and "get_plugins_global_dir()" doesn't
return one either. Both of them return mallocated data, and making them
return a "const char *" just causes compiler whining when you try to
free them.
svn path=/trunk/; revision=12883
one.
"get_basename()" doesn't modify its argument, and its callers don't
modify the substring pointed to by the result, so make it take a "const
char *" as an argument and return a "const char *".
"find_last_pathname_separator()" doesn't modify its argument, so make it
a "const char *" - but some of its callers pass a non-"const" "char *"
and modify the result, so don't make its return value a "const char *".
And, as none of its callers are outside "filesystem.c", make it static.
In "about_folders_page_new()", have separate variables for pathnames
returned as "const char *" (which are cached by the routine that returns
them, so you can't modify them - and can't free them, so get rid of the
commented-out "g_free()" calls for them) and pathnames returned as "char
*" (which are allocated anew for each call, and can be modified, but
have to be freed).
Clean up white space.
svn path=/trunk/; revision=12881
"bytes_to_str_punct()", and use it instead of extracting the bytes and
formatting them by hand.
Also, export "bytes_to_str_punct()".
svn path=/trunk/; revision=12879
array of "const char *" rather than to an array of "char *", and make
the second argument of "col_set_str()" a "const char *" - there's no
guarantee that "col_data" points to something you're allowed to modify.
svn path=/trunk/; revision=12878
"update_adler32()", and the corresponding argument is a "const unsigned
char *", so that argument can be a "const unsigned char *".
svn path=/trunk/; revision=12877
array of "const char *" rather than to an array of "char *", and make
the second argument of "col_set_str()" a "const char *" - there's no
guarantee that "col_data" points to something you're allowed to modify.
svn path=/trunk/; revision=12875
to resolve it to a name.
Fix up some const-pointer-to-non-const-pointer, and
function-pointer-to-void-*, conversions.
Fix some comments.
svn path=/trunk/; revision=12863