aboutsummaryrefslogtreecommitdiffstats
path: root/packet-smpp.c
AgeCommit message (Collapse)AuthorFilesLines
2004-01-20From Chris Wilson:Olivier Biot1-136/+157
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-18From Chris Wilson:Olivier Biot1-200/+305
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
2003-12-23Move the GSM SMS dissection to a dedicated subdissector (currently still withinOlivier Biot1-180/+305
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-22Fix a typo.Guy Harris1-2/+2
svn path=/trunk/; revision=9404
2003-12-21Fix unconditional handoff to subdissector introduced with the common reassemblyOlivier Biot1-6/+28
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-19Don't store the result of "tvb_reported_length()" into a "guint8" - itGuy Harris1-13/+33
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-12Always dissect a sm_submit otherwise reassembly of short messages does not work.Olivier Biot1-4/+10
svn path=/trunk/; revision=9252
2003-11-21From Olivier Biot: fix up the description of theGuy Harris1-3/+4
"port_number_udh_means_wsp" preference. svn path=/trunk/; revision=9063
2003-09-17From Olivier Biot: put a summary into the top-level SMPP item in theGuy Harris1-2/+9
protocol tree. svn path=/trunk/; revision=8489
2003-09-04From Olivier Biot:Guy Harris1-32/+60
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-08-23From Biot OliverRonnie Sahlberg1-43/+463
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-07-07From Olivier Biot: use "fragment_add_seq_check()" so that we don't haveGuy Harris1-7/+8
a problem with message IDs getting reused. svn path=/trunk/; revision=7974
2003-07-02 From Olivier Biot:Guy Harris1-32/+224
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-06-30From Olivier Biot:Guy Harris1-8/+189
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-26From Tom Uijldert: fix some fields to use the appropriate value_stringGuy Harris1-2/+2
tables. svn path=/trunk/; revision=7941
2003-06-12Add new routines:Guy Harris1-6/+6
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-06Don't use "tvb_get_nstringz()" to get string data - just useGuy Harris1-6/+6
"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-03-08The SMPP dissector has a too light heuristic andLaurent Deniel1-1/+6
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
2002-08-13Get rid of a commented-out #include.Guy Harris1-2/+1
svn path=/trunk/; revision=5988
2002-08-02Replace the types from sys/types.h and netinet/in.h by their glib.hJörg Mayer1-9/+1
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-07-17From Joerg Mayer:Guy Harris1-5/+1
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-03-10Register the heuristic SMPP dissector with X.25.Guy Harris1-2/+8
svn path=/trunk/; revision=4909
2002-03-10Initialize the "tm_isdst" field of a "struct tm" to -1 before passing itGuy Harris1-1/+2
to "mktime()". svn path=/trunk/; revision=4907
2002-01-21Include files from the "epan" directory and subdirectories thereof withGuy Harris1-2/+2
"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
2001-12-10Move the pointer to the "column_info" structure in the "frame_data"Guy Harris1-9/+9
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-04Get rid of some unused variables.Guy Harris1-5/+1
svn path=/trunk/; revision=4320
2001-12-03SMPP support, from Tom Uijldert.Guy Harris1-0/+2214
svn path=/trunk/; revision=4315