Commit graph

66 commits

Author SHA1 Message Date
Guy Harris
b9ed0197a5 From Olivier Biot:
* Fix the Extended Method PDU mapping (move code some lines down)
* Decode more WSP Parameter entries (now WAP Provisioning Push OK)
* First check whether the PDU content for Post, Reply and Push PDUs
  can be dissected (dissector_try_X function calls), if not then
  display the PDU data as "Data" in the WSP protocol tree.
* Replaced "Unsupported header" by "Undecoded header" for clarity

svn path=/trunk/; revision=7376
2003-03-27 19:15:28 +00:00
Guy Harris
7a5e0860a2 From Olivier Biot: add WSP protocol dissection for extended method PDUs,
and let the Protocol Options header code page and extended methods calls
refer to hexadecimal representation as used everywhere else in the WSP
dissection code.

svn path=/trunk/; revision=7372
2003-03-26 19:45:21 +00:00
Guy Harris
d48ec06a6a From Olivier Biot: WBXML/WMLC support.
svn path=/trunk/; revision=7084
2003-02-06 01:23:32 +00:00
Jörg Mayer
4de3370e14 Replace Transmission ID by Transaction ID (spotted by Olivier Biot)
svn path=/trunk/; revision=6330
2002-09-25 00:01:18 +00:00
Jörg Mayer
7c4176d868 Removed trailing whitespaces from .h and .c files using the
winapi_cleanup tool written by Patrik Stridvall for the wine
project.

svn path=/trunk/; revision=6117
2002-08-28 21:04:11 +00:00
Guy Harris
48dbb301c8 From Tom Uijldert: modify MMSE dissector to also accept content that is
not multipart.

Replace my fix to create subtrees for POST data with Tom's.

svn path=/trunk/; revision=5968
2002-08-07 08:34:55 +00:00
Jörg Mayer
173fe5aef4 Replace the types from sys/types.h and netinet/in.h by their glib.h
equivalents for the toplevel directory. The removal of winsock2.h will
hopefully not cause any problems under MSVC++, as those files using
struct timeval still include wtap.h, which still includes winsock2.h.

svn path=/trunk/; revision=5932
2002-08-02 23:36:07 +00:00
Guy Harris
9c900f33ea Call "proto_item_add_subtree()" to create a subtree for POST data, don't
just use the return value of a "proto_tree_add" routine as if it could
be used as a protocol tree.

svn path=/trunk/; revision=5915
2002-07-30 07:36:22 +00:00
Guy Harris
77fa06b899 From Joerg Mayer:
dftest.c:
	     Remove #if-0-ed includes

	packet-ieee80211.c, packet-wtls.c, packet-afp.c, packet-wsp.c,
        packet-wtp.c, ethereal_gen.py:
	     Remove redundant include varargs (already in snprintf.h,
	     and required only for snprintf.h)

	Remove unused include of snprintf.h from files not using
	"snprintf()".

svn path=/trunk/; revision=5889
2002-07-17 00:43:03 +00:00
Guy Harris
1204dfc523 Character set values are in hex in the WSP spec; always display them in
hex.

svn path=/trunk/; revision=5674
2002-06-15 23:23:31 +00:00
Guy Harris
32567ff10f Use "proto_tree_add_item()" to add the URI string to the protocol tree,
rather than extracting a string and adding that explicitly (which runs
the risk of leaking memory if the "tvb_get_ptr()" throws an exception).

Use "tvb_format_text()" when adding the string to the Info column, so
that non-printable characters are displayed as escapes.

svn path=/trunk/; revision=5283
2002-04-29 00:33:30 +00:00
Guy Harris
9971cb529e From Tom Uijldert: comment out an unused function.
svn path=/trunk/; revision=5088
2002-04-02 20:16:19 +00:00
Guy Harris
cbda24e612 From Dermot Bradley:
support for Openwave-specific WSP headers;

	support for Openwave-specific field names;

	support for additional content types from Openwave;

	support for additional language values.

svn path=/trunk/; revision=4775
2002-02-22 07:23:25 +00:00
Guy Harris
645170a701 Use -1 rather than "tvb_length_remaining(tvb, offset)" in some items for
the remaining data in a packet (and rather than "tvb_reported_length()",
which is wrong as it doesn't take the starting offset into account).

svn path=/trunk/; revision=4661
2002-02-01 07:12:09 +00:00
Guy Harris
eb2d6593dc Replace a bunch of "tvb_length()" and "tvb_length_remaining()" calls in
arguments to "proto_tree_add_text()", and to "proto_tree_add_XXX()" calls
that add FT_NONE or FT_PROTO items to the protocol tree, with -1.

Replace some calls to "tvb_length()" or "tvb_length_remaining()" with
calls to "tvb_reported_length()" and "tvb_reported_length_remaining()",
as those give the actual length of the data in the packet, not just the
data that happened to be captured.

svn path=/trunk/; revision=4605
2002-01-24 09:20:54 +00:00
Guy Harris
ee5ca25d31 Include files from the "epan" directory and subdirectories thereof with
"epan/..." pathnames, so as to avoid collisions with header files in any
of the directories in which we look (e.g., "proto.h", as some other
package has its own "proto.h" file which it installs in the top-level
include directory).

Don't add "-I" flags to search "epan", as that's no longer necessary
(and we want includes of "epan" headers to fail if the "epan/" is left
out, so that we don't re-introduce includes lacking "epan/").

svn path=/trunk/; revision=4586
2002-01-21 07:37:49 +00:00
Guy Harris
23319ff023 Move the pointer to the "column_info" structure in the "frame_data"
structure to the "packet_info" structure; only stuff that's permanently
stored with each frame should be in the "frame_data" structure, and the
"column_info" structure is not guaranteed to hold the column values for
that frame at all times - it was only in the "frame_data" structure so
that it could be passed to dissectors, and, as all dissectors are now
passed a pointer to a "packet_info" structure, it could just as well be
put in the "packet_info" structure.

That saves memory, by shrinking the "frame_data" structure (there's one
of those per frame), and also lets us clean up the code a bit.

svn path=/trunk/; revision=4370
2001-12-10 00:26:21 +00:00
Guy Harris
75cc056222 Attach a descriptive name field type and base to dissector tables; that
specifies how the selector values used as keys in those tables are to be
displayed, and the title to use when displaying the table.

Use that information in the code to display the initial and current
entries of various dissector tables.

Have the dissector for BACnet APDUs register itself by name, and have
the BACnet NPDU dissector call it iff the BAC_CONTROL_NET bit isn't set,
rather than doing it with a dissector table.

svn path=/trunk/; revision=4358
2001-12-08 06:41:48 +00:00
Guy Harris
6bb3e341d1 From Tom Uijldert: WSP/MMSE changes to handle multipart-content:
packet-wsp.[ch]:
	- Proper parameter-dissection
	- Now handles multipart content
	- Exports content-type & multipart-dissection
	- Attach a sub-dissector based on content-type

	packet-mmse.c:
	- Dissecting message-content added
	- Registers with WSP based on content-type.

svn path=/trunk/; revision=4353
2001-12-07 11:10:53 +00:00
Guy Harris
bced8711f6 Make "dissector_add()", "dissector_delete()", and "dissector_change()"
take a dissector handle as an argument, rather than a pointer to a
dissector function and a protocol ID.  Associate dissector handles with
dissector table entries.

svn path=/trunk/; revision=4308
2001-12-03 04:00:26 +00:00
Guy Harris
852e3fffe5 As you set a conversation dissector by supplying a dissector handle
rather than a function pointer, "dissect_wtp_fromudp()" no longer needs
to be global; make it static, register it by name, and have the WSP
dissector get the handle by calling "find_dissector()" rather than by
constructing its own handle for it.

Fix up some attributions.

svn path=/trunk/; revision=4306
2001-12-03 02:10:31 +00:00
Guy Harris
07b2709f8a Change "conversation_set_dissector()" to take a dissector handle, rather
than a pointer to a dissector function, as an argument.

This means that the conversation dissector is called through
"call_dissector()", so the dissector itself doesn't have to worry about
checking whether the protocol is enabled or setting
"pinfo->current_proto", so get rid of the code that does that in
conversation dissectors.  Also, make the conversation dissectors static.

Get rid of some direct calls to dissectors; replace them with calls
through handles, and, again, get rid of code to check whether a protocol
is enabled and set "pinfo->current_proto" where that code isn't needed.
Make those dissectors static if they aren't already static.

Add a routine "create_dissector_handle()" to create a dissector handle
without registering it by name, if the dissector isn't used outside the
module in which it's defined.

svn path=/trunk/; revision=4281
2001-11-27 07:13:32 +00:00
Guy Harris
10da28737f Get rid of some unused variables.
svn path=/trunk/; revision=4240
2001-11-21 01:21:08 +00:00
Guy Harris
e4a7740da3 Handle the 1.3 and 1.4 Content-Type values in WSP, from Tom Uijldert.
svn path=/trunk/; revision=4089
2001-10-26 19:14:51 +00:00
Guy Harris
3a97414ba5 From Georg von Zezschwitz: fix an uninitialized variable, dissect the
S-max-age value in Cache-Control headers, and handle the 1.1, 1.3, and
1.4 encoding of Cache-Control headers.

svn path=/trunk/; revision=4058
2001-10-22 20:37:51 +00:00
Guy Harris
b1559953ca From Georg von Zezschwitz:
Fix a bug with WSP Connect requests with headers > 256 bytes
	Implement attributes of WSP Suspend/Resume

svn path=/trunk/; revision=4037
2001-10-18 08:23:24 +00:00
Guy Harris
f859d94bad Fix to show FN_PROFILE_WARNING14, rather than FN_PROFILE_WARNING, as
"Profile-Warning (encoding 1.4)".

svn path=/trunk/; revision=4005
2001-10-07 08:49:46 +00:00
Guy Harris
421f1b6a6c From Georg von Zezschwitz:
- A bug related to "WSP header pages" is fixed, that
    resulted into "malformed WSP frame" alerts
  - "Concatenated PDUs" (Multiple PDUs within one UDP
    packet) are now supported (used e.g. by Nokia 8310)
  - The URL of WSP GET/POST requests is display in the
    info column, same like HTTP GET requests

svn path=/trunk/; revision=4004
2001-10-07 08:37:29 +00:00
Guy Harris
434a3ded4c Push-traffic dissecting for WSP/WTLS, from Tom Uijldert.
svn path=/trunk/; revision=3968
2001-09-28 18:59:30 +00:00
Guy Harris
4325d41fbd MMSE support, from Tom Uijldert.
svn path=/trunk/; revision=3954
2001-09-25 21:32:41 +00:00
Guy Harris
a86490d2a7 If "snprintf()" can't print all the data because there's not enough
room, it might return -1 in some versions of glibc; check for that, and
quit if that happens.

It might also return the number of characters that would've been printed
had there been enough room; this means that a loop that does

	n += snprintf (buf + n, BUF_LENGTH - n, ...);

may end up making "n" bigger than BUF_LENGTH, and "snprintf()" might not
sanely handle being passed a negative length, so if "n" isn't less than
the total length of the string buffer, don't add stuff to it.

The "capabilitiesStart" variable in "add_capabilities()" in the WSP
dissector is an offset into the PDU data; there's no guarantee that said
offet is < 256, and, even if there were, there's no point in making it
an 8-bit variable.

Add some additional buffer overflow checks to the WSP dissector.

svn path=/trunk/; revision=3953
2001-09-25 18:27:35 +00:00
Guy Harris
1d42c94b05 Make the resolution for time values be nanoseconds rather than
microseconds.

Fix some "signed vs. unsigned" comparison warnings.

svn path=/trunk/; revision=3934
2001-09-14 07:10:13 +00:00
Guy Harris
14eb1cb5fa Use "tvb_reported_length_remaining()" to check whether there's data left
in the packet; this eliminates a signed vs. unsigned comparison warning
in GCC.

svn path=/trunk/; revision=3903
2001-09-03 18:05:57 +00:00
Guy Harris
3388bde488 Instead of having a single datum attached to a conversation, have a list
of protocol-id-plus-datum pairs, so that multiple protocols can attach
information to the same conversation.

Dissectors that attach information to a conversation should not assume
that if they find a conversation it has one of its data attached to it;
the conversation might've been created by another dissector.

svn path=/trunk/; revision=3901
2001-09-03 10:33:12 +00:00
Guy Harris
6c2ee431a2 Update from Alexandre P. Ferreira to correctly decode Extended Methods
capabilities in CONNECT replies.

svn path=/trunk/; revision=3800
2001-07-30 21:24:29 +00:00
Guy Harris
f8b71590ef Use "tvb_strsize()" rather than "tvb_strnlen()" to get the size
(including the terminating null byte) of a null-terminated string; it
includes the terminating null in the count, and throws an exception if
the string goes past the end of the tvbuff, so we don't have to do
either of those ourselves.

svn path=/trunk/; revision=3797
2001-07-30 05:20:44 +00:00
Guy Harris
8fa32699a0 Fix a comment.
svn path=/trunk/; revision=3751
2001-07-20 09:22:05 +00:00
Guy Harris
80722d15cf Don't base the WSP dissector's idea of whether it's running in
connectionless or connection-oriented mode on the server port; that
won't work with redirects.  Instead, base it on the protocol atop which
WSP is running - atop UDP, or directly atop WTLS, it's connectionless;
atop WTP, it's connection-oriented.

svn path=/trunk/; revision=3750
2001-07-20 09:10:16 +00:00
Guy Harris
93265f73d2 If the HeadersLen field of a Post or Reply PDU is 0, don't try to
dissect the ContentType or Headers fields, as they're not there.

If there's no header data left over after the ContentType field, don't
try to dissect the Headers field.

svn path=/trunk/; revision=3749
2001-07-20 08:40:54 +00:00
Guy Harris
df245bc47f Assume that Bearer-indication values are bearer types.
svn path=/trunk/; revision=3748
2001-07-20 08:16:11 +00:00
Guy Harris
7ba605382c Add bearer type names.
Base the interpretation of the address in a Redirect PDU on the bearer
type, not the length of the address.

Add support for IPv6 addresses.

svn path=/trunk/; revision=3747
2001-07-20 08:04:11 +00:00
Guy Harris
df324fd9bb Clean up a lot of stuff, and implement a bunch of missing stuff; a bunch
of things showed up when dissecting one capture file once the WSP
dissector started creating conversations for redirections, and packets
started being dissected as WSP.

svn path=/trunk/; revision=3746
2001-07-20 07:25:34 +00:00
Guy Harris
c766c6c8bd Dissect WSP redirects, and set up a conversation and conversation
dissector so that the redirected traffic is dissected as WAP traffic.

svn path=/trunk/; revision=3743
2001-07-20 04:39:07 +00:00
Guy Harris
c4bd63678c Don't base the protocol column setting in the WSP and WTP dissectors on
the port - instead, base it on whether the dissector was called directly
from UDP or called from another WAP dissector.

That way, if you explicitly say "decode this as WTP" because there was a
redirection (or if, in the future, the WSP dissector handles
redirections for you, although that won't handle the case of a capture
where the redirection wasn't captured), the column doesn't say "UDP", it
says the right thing.

Don't register the WTLS dissector by name - nobody calls it through a
handle.

Register the WTP dissector by name, as the WTLS dissector tries to get a
handle for it - although it doesn't actually call it, or the WSP
dissector, through a handle.

svn path=/trunk/; revision=3647
2001-07-03 09:53:22 +00:00
Guy Harris
61cb233810 Many corrections and updates for connection-oriented WSP, from Alexandre
P. Ferreira.

svn path=/trunk/; revision=3571
2001-06-18 22:27:30 +00:00
Guy Harris
8412393197 From Joerg Mayer: explicitly fill in all members of a
"header_field_info" structure, including the ones that are later set by
the routines to register fields.

svn path=/trunk/; revision=3561
2001-06-18 02:18:27 +00:00
Guy Harris
32c0848007 Get rid of END_OF_FRAME references in tvbuffified dissectors.
svn path=/trunk/; revision=3364
2001-04-23 04:29:54 +00:00
Guy Harris
1574eec2f4 Updates from Alexandre P. Ferreira.
svn path=/trunk/; revision=3048
2001-02-19 21:02:33 +00:00
Guy Harris
35dfa54307 Updates from Neil Hunter.
svn path=/trunk/; revision=3026
2001-02-13 00:17:55 +00:00
Guy Harris
0c8ed39229 Updates from Alexandre P. Ferreira.
svn path=/trunk/; revision=3012
2001-02-10 09:28:04 +00:00