Commit Graph

29 Commits

Author SHA1 Message Date
Olivier Biot 4117eb2b7d Remove email addresses and add a reference to the AUTHORS file (or man page)
for contacting the authors of the files.

svn path=/trunk/; revision=10345
2004-03-08 22:03:59 +00:00
Olivier Biot 4293724ef5 From Chris Wilson:
Separate the GSM SMS User Data dissector from the SMPP dissector.

	Rename the protocol.

svn path=/trunk/; revision=9872
2004-01-27 00:20:37 +00:00
Olivier Biot ddd040d989 From Chris Wilson:
Use tcp_dissect_pdus() for SMPP dissection over TCP.

Also:

	Get rid of the (broken) loop in dissect_smpp() which is called
	dissect_smpp_pdu() now.
	Add a preference to enable reassembly of SMPP over TCP.

NOTE:

	The SMPP dissector currently uses a global variable static to
	packet-smpp.c for distinguishing between the first PDU and subsequent
	PDUs so the summary line can be set correctly.

svn path=/trunk/; revision=9751
2004-01-20 17:58:37 +00:00
Olivier Biot 5f9158dea0 From Chris Wilson:
Support for dissection of concatenated SMPP PDUs.

Also:

	Add more information to the protocol tree summary.
	Clean up the white space so it's in-line with the conventions
	of the original author (8-space tabs, 4-space indentations).

svn path=/trunk/; revision=9696
2004-01-18 00:07:03 +00:00
Olivier Biot 2a6e130e10 Move the GSM SMS dissection to a dedicated subdissector (currently still within
packet-smpp.c).

Now the higher-level protocols show up without the need of unfolding the SMPP
dissector tree.

Add a new address type AT_STRINGZ, and use it for GSM SMS message reassembly.

Get rid of the different UDH IE subtrees, and replace them with one subtree
for all UDH IEs.

Add debug logging to SMPP and SMPP GSM SMS dissectors.

Move the Short Message reassembly from the SMPP dissector to the SMPP GSM SMS
dissector. Fix duplicated "reassembled in" header fields.

Rename header fields that are now part of SMPP GSM SMS (including the dissector
table name, so it has also been updated in packet-wsp.c and packet-wtp.c).

Add an explicit "if (!tree) return" in the WSP add_headers() method.

NOTE: it would be great if we were able to merge the existing packet-gsm_sms.c
and the SMPP GSM SMS dissector.

svn path=/trunk/; revision=9431
2003-12-23 12:07:14 +00:00
Guy Harris 5d4586d191 Fix a typo.
svn path=/trunk/; revision=9404
2003-12-22 02:06:27 +00:00
Olivier Biot f2f164647a Fix unconditional handoff to subdissector introduced with the common reassembly
code.

Add the "Reassembled in" header field, and show it if the packet has been
reassembled, but not in the given packet. This also allows to use the "Jump to
the corresponding frame" feature in Ethereal.

svn path=/trunk/; revision=9401
2003-12-21 22:56:13 +00:00
Guy Harris 1feecfa0df Don't store the result of "tvb_reported_length()" into a "guint8" - it
could be more than 255 (even if that "shouldn't happen").

Don't use "frags != 0" as an indication that the message was fragmented
- that can't handle bogus packets with a zero fragment count.  Have an
explicit variable for that.

Check that "sm_data_len" isn't 0 before attempting dissection or
reassembly.

Check that "frag" and "frags" aren't zero before attempting reassembly
(arguably, we should report both of those as errors).

Use "process_reassembled_data()" to do the bulk of the work for
reassembly - it handles the case where a "fragmented" packet has only
one fragment.  This fixes a crash that occurred when only the last
fragment was seen, although there's an underlying problem there, namely
that the hack tha "fragment_add_seq_check()" does to handle some
problems with some 802.11 captures causes it to consider a packet where
the first fragment seen is also the last fragment as a one-fragment
packet; we probably need to do that *only* for 802.11.

svn path=/trunk/; revision=9361
2003-12-19 22:31:40 +00:00
Olivier Biot 45c370495d Always dissect a sm_submit otherwise reassembly of short messages does not work.
svn path=/trunk/; revision=9252
2003-12-12 23:47:42 +00:00
Guy Harris 6768aefac8 From Olivier Biot: fix up the description of the
"port_number_udh_means_wsp" preference.

svn path=/trunk/; revision=9063
2003-11-21 22:18:30 +00:00
Guy Harris e28b621f8f From Olivier Biot: put a summary into the top-level SMPP item in the
protocol tree.

svn path=/trunk/; revision=8489
2003-09-17 20:24:45 +00:00
Guy Harris 5e2b3906d3 From Olivier Biot:
cleanup the reassembly code;

	add a new preference to enable/disable subdissection on the 1st
	fragment of an unreassembled message;

	update the comments to note that the reassembly code is even
	able to reassemble short message fragments across distinct SMPP
	connections.

svn path=/trunk/; revision=8374
2003-09-04 18:59:21 +00:00
Ronnie Sahlberg 47bd7df2a4 From Biot Oliver
Support in SMPP for GSM SMS and GSM CBS.
Reassembly of SMPP has also been fixed so that it now works.

svn path=/trunk/; revision=8209
2003-08-23 02:15:53 +00:00
Guy Harris ecb79f8973 From Olivier Biot: use "fragment_add_seq_check()" so that we don't have
a problem with message IDs getting reused.

svn path=/trunk/; revision=7974
2003-07-07 22:42:11 +00:00
Guy Harris 69a9858068 From Olivier Biot:
Short Message reassembly;

	Preference to allow automatic decoding of Short Message data as
	CL-WSP if a Port Number UDH is present.

Use "%u" rather than "%d" for unsigned quantities.

Use "tvb_get_ntohs()" to fetch big-endian 16-bit quantities rather than
calling "tvb_get_guint8()" twice and reassembling yourself.

svn path=/trunk/; revision=7960
2003-07-02 21:10:50 +00:00
Guy Harris 299f79c4f7 From Olivier Biot:
UDH dissection in SMPP message
	WTP and WSP dissection over SMPP (no reassembly)
	WSP status code rendering in Info column

svn path=/trunk/; revision=7954
2003-06-30 23:24:39 +00:00
Guy Harris 57e6b9d751 From Tom Uijldert: fix some fields to use the appropriate value_string
tables.

svn path=/trunk/; revision=7941
2003-06-26 08:55:27 +00:00
Guy Harris ee97ce3196 Add new routines:
tvb_get_string() - takes a tvbuff, an offset, and a length as
	arguments, allocates a buffer big enough to hold a string with
	the specified number of bytes plus an added null terminator
	(i.e., length+1), copies the specified number of bytes from the
	tvbuff, at the specified offset, to that buffer and puts in a
	null terminator, and returns a pointer to that buffer (or throws
	an exception before allocating the buffer if that many bytes
	aren't available in the tvbuff);

	tvb_get_stringz() - takes a tvbuff, an offset, and a pointer to
	a "gint" as arguments, gets the size of the null-terminated
	string starting at the specified offset in the tvbuff (throwing
	an exception if the null terminator isn't found), allocates a
	buffer big enough to hold that string, copies the string to that
	buffer, and returns a pointer to that buffer and stores the
	length of the string (including the terminating null) in the
	variable pointed to by the "gint" pointer.

Replace many pieces of code allocating a buffer and copying a string
with calls to "tvb_get_string()" (for one thing, "tvb_get_string()"
doesn't require you to remember that the argument to
"tvb_get_nstringz0()" is the size of the buffer into which you're
copying the string, which might be the length of the string to be copied
*plus 1*).

Don't use fixed-length buffers for null-terminated strings (even if the
code that generates those packets has a #define to limit the length of
the string).  Use "tvb_get_stringz()", instead.

In some cases where a value is fetched but is only used to pass an
argument to a "proto_tree_add_XXX" routine, use "proto_tree_add_item()"
instead.

svn path=/trunk/; revision=7859
2003-06-12 08:33:32 +00:00
Guy Harris ea959f5a6d Don't use "tvb_get_nstringz()" to get string data - just use
"tvb_strsize()" to get the string length, and then use "tvb_get_ptr()"
to get a pointer to the guaranteed-to-be-null-terminated string in the
tvbuff (if the null character is missing, "tvb_strsize()" throws an
exception).

svn path=/trunk/; revision=7795
2003-06-06 01:56:39 +00:00
Laurent Deniel 96a5616ada The SMPP dissector has a too light heuristic and
it wrongly decodes non SMPP packets.
Check that the overall PDU size is not greater
than 64K before accepting to decode the packet.
Check at least valid as of SMPP v3.4 issue 1.2.

svn path=/trunk/; revision=7326
2003-03-08 14:21:15 +00:00
Guy Harris deb5c457a2 Get rid of a commented-out #include.
svn path=/trunk/; revision=5988
2002-08-13 09:03:23 +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 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 dc2f822c01 Register the heuristic SMPP dissector with X.25.
svn path=/trunk/; revision=4909
2002-03-10 03:08:31 +00:00
Guy Harris c9c0a8373b Initialize the "tm_isdst" field of a "struct tm" to -1 before passing it
to "mktime()".

svn path=/trunk/; revision=4907
2002-03-10 01:02:06 +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 712f266e69 Get rid of some unused variables.
svn path=/trunk/; revision=4320
2001-12-04 06:35:51 +00:00
Guy Harris 51fe2ab58b SMPP support, from Tom Uijldert.
svn path=/trunk/; revision=4315
2001-12-03 20:18:29 +00:00