aboutsummaryrefslogtreecommitdiffstats
path: root/packet-wtp.c
AgeCommit message (Collapse)AuthorFilesLines
2003-12-15Remove unused dissector handles from the WAP dissectors.Olivier Biot1-4/+4
Rename the WAP protocols so that they reflect the protocol name and not the protocol stack name. Fix the WSP content-type header. Rename the WSP header fields from 'hdr' to 'header'. Rename the WSP Openwave header fields from header code page 'x-up-1': replace 'openwave' with 'x_up_1' (is more intuitive). Remove unused WSP header fields. Rename the WTLS header fields so they do not contain 'wsp' anymore. Correct the WBXML code page switches in the token parsers. Fix the code page support of multi-codepage content. Update the PROV WBXML content (and find bugs in the new OMA Prov spec :). svn path=/trunk/; revision=9291
2003-11-05From Olivier Biot: have a separate subtree ett_ value for concatenatedGuy Harris1-2/+4
PDUs. svn path=/trunk/; revision=8884
2003-08-07From Lo�c Minier: allow packets with no payload to participate inGuy Harris1-3/+7
reassembly, as the last packet of a fragmented WTP message can have a payload length of 0. svn path=/trunk/; revision=8147
2003-07-29Put "WTP" into the Info column for segmented invoke/result PDUs on whichGuy Harris1-2/+2
we don't try to do reassembly, just as it's put in for other PDUs. svn path=/trunk/; revision=8101
2003-07-29From Georg von Zezschwitz: don't pass segments other than the firstGuy Harris1-4/+26
segment of a segmented invoke or result to subdissectors. Show the payload of fragments other than the one that finishes reassembly. svn path=/trunk/; revision=8100
2003-06-30From Olivier Biot:Guy Harris1-1/+2
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-05-24Timo Sirainen discovered that snprintf() returning -1 wasn't being handledGerald Combs1-10/+11
properly. Use a GString instead. svn path=/trunk/; revision=7730
2003-05-19From Olivier Biot: fix incorrect tvbuff definition in the WTP PDUGuy Harris1-2/+2
concatenation situation. Now the WSP dissector wanting to display the entire PDU will stick to the sub-tvbuff boundaries in the data highlight pane. svn path=/trunk/; revision=7690
2003-05-08From Olivier Biot: fix WTP sub-PDU size presentation in the protocolGuy Harris1-5/+5
tree (display size in decimal instead of the highlighted bytes). svn path=/trunk/; revision=7653
2003-04-20Add a pointer to an hf_ value for a "reassembled_in" field (which can beGuy Harris1-1/+2
null) to the "fragment_items" structure, and don't pass that value into "process_reassembled_data()", just have it use the value in the "fragment_items" structure passed to it. Make "process_reassembled_data()" capable of handling reassembly done by "fragment_add_seq_check()", and use it in the ATP and 802.11 dissectors; give them "reassembled_in" fields. Make "process_reassembled_data()" handle only the case of a completed reassembly (fd_head != NULL) so that we can use it in those dissectors without gunking the code up too much. svn path=/trunk/; revision=7513
2003-04-09From Tom Uijldert: properly decode the packet sequence number in WTPGuy Harris1-2/+2
Negative Ack packets. svn path=/trunk/; revision=7429
2003-03-05Use the reported length, not the captured length, as the fragment lengthGuy Harris1-7/+12
when doing reassembly. In some additional places, use "tvb_bytes_exist()" to check whether we have enough data to do reassembly, rather than checking to see if the frame is short (it might be short but we might still have enough data to do reassembly). In DCE RPC, use the fragment length from the header as the number of bytes of fragment data. There's no need to check "pinfo->fragmented" before doing reassembly in the DCERPC-over-SMB-pipes code - either we have all the data or we don't. In SNA and WTP reassembly, add a check to make sure we have all the data to be reassembled. svn path=/trunk/; revision=7282
2002-12-19Update reassemble.c/show_item and all callers to use FT_FRAMENUM for the ↵Ronnie Sahlberg1-3/+3
list of packets corresponding to a reassembled pdu svn path=/trunk/; revision=6807
2002-12-02From Olivier Biot: show the packet sequence number and the "MissingGuy Harris1-3/+3
Packets" value in the WTP header in decimal, not hex. svn path=/trunk/; revision=6722
2002-10-24Add a "fragment_add_seq_next()" to reassemble fragments that don't haveGuy Harris1-2/+2
sequence numbers or offsets and are thus assumed to be received in order with no duplicates or dropped fragments (e.g., for NetBIOS Frame, where 802.2 LLC guarantees in-order delivery to NetBIOS with no duplicates or dropped fragments). "show_fragment_tree()' and "show_fragment_seq_tree()" don't modify the "fragment_items" to which the "fit" argument points, so make that argument a "const fragment_items *". Make all the "fragment_items" tables "static" (as they're not used outside the modules defining them) and "const" (as they're not modified). Add support for reassembly of NetBIOS fragmented requests and responses. Get rid of an unnecessary include of "packet-tr.c" in the NetBIOS dissector, and make its table of dissection function pointers static. Fix some typos in the AppleTalk and NetBIOS dissectors. svn path=/trunk/; revision=6491
2002-08-28Removed trailing whitespaces from .h and .c files using theJörg Mayer1-50/+50
winapi_cleanup tool written by Patrik Stridvall for the wine project. svn path=/trunk/; revision=6117
2002-08-09From Tom Uijldert: WTP TPI dissection, and reindentation.Guy Harris1-643/+761
svn path=/trunk/; revision=5973
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-6/+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-06-07Add "show_fragment_seq_tree()", which is like "show_fragment_tree()",Guy Harris1-69/+16
but for stuff reassembled with "fragment_add_seq()" or "fragment_add_seq_check()". Add a "fragment tag" string to the "fragment_items", so that packets with fragmentation errors can be properly flagged as having "Illegal fragments" or "Illegal segments" depending on the term used with the protocol in question. Make all the dissectors that can use "show_fragment_tree()" or "show_fragment_seq_tree()", and don't already use them, do so. svn path=/trunk/; revision=5644
2002-06-04Get rid of the "data_src" member of the "frame_data" structure; put itGuy Harris1-2/+2
in the "packet_info" structure instead, as we don't need a pointer for every single frame in the capture file, just for each frame for which we currently have an open "epan_dissect_t". svn path=/trunk/; revision=5614
2002-05-27From Kari Heikkila: fix for WTP PDUs not containing user data.Guy Harris1-5/+7
svn path=/trunk/; revision=5574
2002-04-17Fix up the offsets in the list of segments.Guy Harris1-2/+2
svn path=/trunk/; revision=5178
2002-04-09Get rid of the extra "Header" entry, putting the tree back the way itGuy Harris1-58/+41
was. Get rid of variables unused as a result. svn path=/trunk/; revision=5133
2002-04-05Give the top-level tree for concatenated PDUs an ett_ value of ett_wtp.Guy Harris1-43/+46
Create a protocol tree item for the fixed part of the WTP header. Don't assign the value of "proto_tree_add_XXX" routines to a variable if you're not going to use the value. svn path=/trunk/; revision=5103
2002-03-27Put a tree with information about the WTP fragments into the tree ifGuy Harris1-1/+136
we've reassembled a message. svn path=/trunk/; revision=5027
2002-02-27Label the data source for various forms of reassembled data with theGuy Harris1-2/+2
protocol that fragmented them, rather than just calling them "Reassembled". Do the same with uncompressed WCP data. svn path=/trunk/; revision=4822
2002-02-18Don't give tvbuffs names; instead, give data sources names, where aGuy Harris1-4/+4
"data source" has a name and a top-level tvbuff, and frames can have a list of data sources associated with them. Use the tvbuff pointer to determine which data source is the data source for a given field; this means we don't have to worry about multiple data sources with the same name - the only thing the name does is label the notebook tab for the display of the data source, and label the hex dump of the data source in print/Tethereal output. Clean up a bunch of things discovered in the process of doing the above. svn path=/trunk/; revision=4749
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
2002-01-17Use the "fragmented" field of the "packet_info" structure inGuy Harris1-1/+4
"dissect_frame()" to indicate whether a ReportedBoundsError was due to the packet being malformed (i.e., the packet was shorter than it's supposed to be, so the dissector went past the end trying to extract fields that were supposed to be there) or due to it not being reassembled (i.e., the packet was fragmented, and we didn't reassemble it, but just treated the first fragment as the entire packet, so the dissector went past the end trying to extract fields that were partially or completely in fragments after that). Mark the latter as being unreasembled rather than malformed. Properly initialize, save, and restore that field, and properly set it, so that works. svn path=/trunk/; revision=4555
2002-01-04WTP reassembly, from Tom Uijldert.Guy Harris1-83/+131
svn path=/trunk/; revision=4480
2001-12-10Move the pointer to the "column_info" structure in the "frame_data"Guy Harris1-23/+13
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-03Make "dissector_add()", "dissector_delete()", and "dissector_change()"Guy Harris1-3/+5
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-03As you set a conversation dissector by supplying a dissector handleGuy Harris1-4/+5
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-10-07From Georg von Zezschwitz:Guy Harris1-8/+50
- 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-09-11Fix from Tom Uijldert: scan TPI's to get proper WTP packet length andGuy Harris1-8/+23
correct start of WSP-data. svn path=/trunk/; revision=3920
2001-09-10Some WAP WTP naming fixes plus textual Transaction Class value decoding,Guy Harris1-7/+14
from Olivier Biot. svn path=/trunk/; revision=3914
2001-07-20Don't base the WSP dissector's idea of whether it's running inGuy Harris1-3/+4
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-20Dissect WSP redirects, and set up a conversation and conversationGuy Harris1-2/+2
dissector so that the redirected traffic is dissected as WAP traffic. svn path=/trunk/; revision=3743
2001-07-03Don't base the protocol column setting in the WSP and WTP dissectors onGuy Harris1-21/+38
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-06-18From Joerg Mayer: explicitly fill in all members of aGuy Harris1-22/+22
"header_field_info" structure, including the ones that are later set by the routines to register fields. svn path=/trunk/; revision=3561
2001-04-17Fix to WTP retransmission indicator dissection, from Olivier Biot.Guy Harris1-3/+12
svn path=/trunk/; revision=3316
2001-03-23Don't convert a WTP PDU type to a string by using as an index into aGuy Harris1-2/+3
"value_string" array, do it the right way, by using "val_to_str()" - the PDU type is 4 bits, but there aren't 16 entries in the array, so a bogus PDU type (*don't* assume that can't happen...) can cause a core dump. svn path=/trunk/; revision=3169
2001-02-13Updates from Neil Hunter.Guy Harris1-11/+16
svn path=/trunk/; revision=3026
2001-01-22Remove more "CHECK_DISPLAY_AS_DATA()" calls and "pinfo->current_proto ="Guy Harris1-10/+14
statements. Move the setting of the Protocol column in various dissectors before anything is fetched from the packet, and also clear the Info column at that point in those and some other dissectors, so that if an exception is thrown, the columns don't reflect the previous protocol. Don't use col_add_fstr(..., "%s", string); Use col_add_str(..., string); as it does the same thing, but doesn't drag all the heavy *printf machinery in. Fix the DDTP dissector to set the Info column regardless of whether we're building a protocol tree or not, and to set it to "Encrypted payload" if the payload is encrypted. Also fix a typo in a field name. Register the FTP data dissector as being associated with the FTP data protocol, not the FTP protocol (the removed "CHECK_DISPLAY_AS_DATA()" call checked "proto_ftp_data", and the removed "pinfo->current_proto =" line set it to "FTP-DATA", so it should be associated with "proto_ftp_data"). Make the H1 dissector check whether the frame has at least 2 bytes in it before checking the first two bytes; heuristic dissectors must not throw exceptions until they've accepted the packet as one of theirs. Use "tvb_format_text()" rather than "tvb_get_ptr()" and "format_text()" in some dissectors where the result of "tvb_get_ptr()" is used only in the "format_text()" call. In the Quake dissector, don't check whether there are at least 4 bytes in the packet - if we return, the packet won't be dissected at all (it's not as if some other dissector will get to handle it), and, if we don't return, we'll throw an exception if there aren't at least 4 bytes in the packet, so the packet will be marked as short or malformed, as appropriate. In the RIPng dissector, associate the table of strings for the command field with the command field, so that the dissector doesn't have to format the string for the protocol tree entry itself, and so that the filter construction dialog box can let you select "Request" or "Response" from a list rather than requiring you to know the values for "Request" and "Response". Make "dissect_rpc()" static, as it's called only through a heuristic dissector list. Use "col_set_str()" to set the COL_PROTOCOL column for RPC protocols; the string used is from a table provided by the dissector, and is a string constant. Don't format the Info column for WSP into a buffer and then format that buffer into the column with "%s" - "col_add_fstr()" can do the formatting for you, without having to allocate your own buffer (or run through the *printf machinery twice). Don't fetch fields from the WTP packet until you're ready to use them, so that you don't throw an exception before you even set the Protocol column or clear the Info column. Use "pinfo->destport", not "pi.destport", in the Zebra dissector when checking whether the packet is a request or reply, and do the check by comparing with "pinfo->match_port" rather than TCP_PORT_ZEBRA (so that if the dissector is ever registered on another port, it still correctly determines whether the packet is a request or reply - the Network Monitor HTTP dissector has port 80 wired into its brain, which is a bit irritating if you're trying to get it to dissect HTTP proxy traffic on port 3128 or proxy administration UI traffic on port 3132). svn path=/trunk/; revision=2931
2001-01-09Add an additional "protocol index" argument to "{old_}dissector_add()",Guy Harris1-3/+3
"{old_}heur_dissector_add()", "{old_}conv_dissector_add()", and "register_dissector()", so that an entry in those tables has associated with it the protocol index of the protocol the dissector handles (or -1, if there is no protocol index for it). This is for future use in a number of places. (Arguably, "proto_register_protocol()" should take a dissector pointer as an argument, but 1) it'd have to handle both regular and heuristic dissectors; 2) making it take either a "dissector_t" or a union of that and a "heur_dissector_t" introduces some painful header-file interdependencies so I'm punting on that for now. As with other Ethereal internal APIs, these APIs are subject to change in the future, at least until Ethereal 1.0 comes out....) svn path=/trunk/; revision=2849
2001-01-03Ensure that all value_string arrays end in {0, NULL}. Dissectors got awayGilbert Ramirez1-4/+9
with not terminating their arrays because they knew the limits of the value used to look up strings in the value_string array, but the dfilter_expr_dlg does not know these limits and must rely on the terminating {0, NULL} record. Also, in SNA fixed a bug in which a field should have been defined as FT_UINT8 but was defined as FT_BOOLEAN. In WTP, fixed a value string which had duplicate keys. svn path=/trunk/; revision=2817
2001-01-03Register the WSP dissector, make it static, and have the WTP dissectorGuy Harris1-2/+9
call it through a handle. svn path=/trunk/; revision=2815
2001-01-03Have "proto_register_protocol()" build a list of data structures forGuy Harris1-1/+2
protocols, in addition to adding structures to the list of filterable fields. Give it an extra argument that specifies a "short name" for the protocol, for use in such places as pinfo->current_proto; the dialog box for constructing filters; the preferences tab for the protocol; and so on (although we're not yet using it in all those places). Make the preference name that appears in the preferences file and the command line for the DIAMETER protocol "diameter", not "Diameter"; the convention is that the name in question be all-lower-case. Make some routines and variables that aren't exported static. Update a comment in the ICP dissector to make it clear that the dissector won't see fragments other than the first fragment of a fragmented datagram. svn path=/trunk/; revision=2810
2000-12-02Some tvbuffified dissectors weren't setting "pinfo->current_proto", soGuy Harris1-1/+3
that if they threw an exception, the wrong protocol would be blamed. Add the missing assignments. Clean up the extraction of the null-encapsulation header. svn path=/trunk/; revision=2730