aboutsummaryrefslogtreecommitdiffstats
path: root/packet-giop.c
AgeCommit message (Collapse)AuthorFilesLines
2003-12-28removed some MSVC warnings (warning level 2)ulfl1-4/+4
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@9459 f5534014-38df-0310-8fa8-9805f1628bb7
2003-12-21Compiling with -pedantic:jmayer1-3/+3
warning: comma at end of enumerator list git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@9383 f5534014-38df-0310-8fa8-9805f1628bb7
2003-11-26From Patrick Kursawe: rename "getline()" so it doesn't collide with theguy1-4/+4
"getline()" declared in <stdio.h> with recent versions of glibc. Fix a typo in the AUTHORS file. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@9094 f5534014-38df-0310-8fa8-9805f1628bb7
2003-11-16Export "protocol_t" as an opaque type.guy1-3/+3
Make "proto_is_protocol_enabled()" and "proto_get_protocol_short_name()" take a "protocol_t *" as an argument, so they don't have to look up the "protocol_t" - this will probably speed them up considerably, and they're called on almost every dissector handoff. Get rid of a number of "proto_is_protocol_enabled()" calls that aren't necessary (dissectors called through handles, including those called through dissector tables, or called as heuristic dissectors, aren't even called if their protocol isn't enabled). Change some direct dissector calls to go through handles. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@8979 f5534014-38df-0310-8fa8-9805f1628bb7
2003-03-05From Craig Rodrigues:gerald1-133/+106
- correct dissection of giop-broken.pcap supplied by Guy Harris - correct dissection of CodeSet service context, as supplied by Guy Harris - correct dissection of RTCorbaPriority values, as supplied by me - general cleanups and removal of unnecessary code git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@7285 f5534014-38df-0310-8fa8-9805f1628bb7
2003-02-18Add a function to dissect service contexts whose values don'tguy1-34/+78
necessarily use the section 15.3.3 encapsulation rules, and use that to dissect service contexts with unknown IDs. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@7163 f5534014-38df-0310-8fa8-9805f1628bb7
2003-02-18Add a dissector for the CodeSets service context.guy1-3/+29
Pass "encapsulation_boundary", not "seqlen_cd", as the boundary argument to the dissector for RTCorbaPriority. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@7162 f5534014-38df-0310-8fa8-9805f1628bb7
2003-02-15Fix a comment to more accurately describe what the statement followingguy1-2/+7
it does. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@7156 f5534014-38df-0310-8fa8-9805f1628bb7
2003-02-14Don't have "decode_UnknownServiceContext()" put the service contextguy1-57/+56
ID subfields into the tree - do that in "decode_ServiceContextList()", and put them under the item for the entire service context ID. Given that, we don't need to pass it the encapsulation byte order and alignment information, either. Don't have it fetch the sequence length, either; just pass it the sequence length as an argument. When we create an item for the service context ID, get a string for the service context name based on the entire service context ID, not just on the SCID. After dissecting the service context data, advance the offset to point past the end of the context_data. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@7151 f5534014-38df-0310-8fa8-9805f1628bb7
2003-02-13From Craig Rodrigues and Bernd Becker (merger of their patches, fromguy1-16/+27
Craig): - correct bitmask for hf_giop_iop_vscid and hf_giop_iop_scid, reflecting the change to a 24bit vendor id and 8 bit service id - set the length of the "Service Context List" tree correctly after dissecting. The length was just being set to the end of the tvb - do not exit the loop through the Service Context List with return if the sequence length is 0, continue the loop instead. This should fix a problem reported by Mika Korpela. (see http://www.ethereal.com/lists/ethereal-dev/200205/msg00234.html) git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@7141 f5534014-38df-0310-8fa8-9805f1628bb7
2003-02-13From Craig Rodrigues: decode the priority value put into the serviceguy1-65/+135
context field by Real-time CORBA. Update his e-mail address while we're at it. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@7132 f5534014-38df-0310-8fa8-9805f1628bb7
2003-01-26Update my email address in various places since my old one no longer worksdeniel1-2/+2
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@7003 f5534014-38df-0310-8fa8-9805f1628bb7
2002-12-02Don't cast away constness, and fix variable and structure memberguy1-12/+12
qualifiers as necessary to ensure that we don't have to. "strcmp()", "strcasecmp()", and "memcmp()" don't return booleans; don't test their results as if they did. Use "guint8", not "guchar", for a pointer to (one or more) 8-bit bytes. Update Michael Tuexen's e-mail address. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@6726 f5534014-38df-0310-8fa8-9805f1628bb7
2002-08-28Removed trailing whitespaces from .h and .c files using thejmayer1-395/+395
winapi_cleanup tool written by Patrik Stridvall for the wine project. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@6117 f5534014-38df-0310-8fa8-9805f1628bb7
2002-08-02Replace the types from sys/types.h and netinet/in.h by their glib.hjmayer1-12/+8
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. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@5932 f5534014-38df-0310-8fa8-9805f1628bb7
2002-05-13Add a "tvb_ensure_bytes_exist()", which is like "tvb_bytes_exist()" onlyguy1-14/+12
it throws the appropriate exception if the bytes don't exist. Use it in the GIOP and ASN.1 code to check whether the bytes to be copied to a buffer exist before allocating the buffer. Make "check_offset_length_no_exception()" check for an overflow, so that it can be used in "tvb_ensure_bytes_exist()" and do all the checking that the code "tvb_ensure_bytes_exist()" replaces did. Make "get_CDR_wchar()" return a "gint", so that if the length octet it fetched has a value between 128 and 255, the length can be returned correctly. Fix some comments not to specify the exception thrown by various routines that can throw various exceptions. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@5453 f5534014-38df-0310-8fa8-9805f1628bb7
2002-05-12Fix a bounds checking error in get_CDR_octet_seq.gerald1-5/+7
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@5452 f5534014-38df-0310-8fa8-9805f1628bb7
2002-05-02From Joerg Mayer: get rid of unused arguments, and "#if" out an unusedguy1-45/+38
stub routine. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@5365 f5534014-38df-0310-8fa8-9805f1628bb7
2002-04-24Use the IEEE floating-point tvbuff accessors to get IEEE floating-pointguy1-86/+9
numbers, rather than doing it ourselves. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@5244 f5534014-38df-0310-8fa8-9805f1628bb7
2002-02-27From John Mackenzie: register GIOP dissector as a UDP heuristicguy1-1/+3
dissector. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@4817 f5534014-38df-0310-8fa8-9805f1628bb7
2002-02-18Don't give tvbuffs names; instead, give data sources names, where aguy1-2/+2
"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. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@4749 f5534014-38df-0310-8fa8-9805f1628bb7
2002-01-24Replace a bunch of "tvb_length()" and "tvb_length_remaining()" calls inguy1-23/+13
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. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@4605 f5534014-38df-0310-8fa8-9805f1628bb7
2002-01-21Include files from the "epan" directory and subdirectories thereof withguy1-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/"). git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@4586 f5534014-38df-0310-8fa8-9805f1628bb7
2001-12-19From Bernd Becker: don't clear COL_INFO until the GIOP subdissecrors areguy1-1/+4
fixed to put something interesting there, fix the GIOP dissector to restore the Protocol column if no heuristic dissector succeeded, and fix up the plugin GIOP subdissectors to use "col_set_str()" to set the Protocol column. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@4424 f5534014-38df-0310-8fa8-9805f1628bb7
2001-12-17Save the current protocol string, and set the current protocol string toguy1-1/+12
the string for the subdissector's protocol, before calling a GIOP subdissector, and restore it before returning. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@4416 f5534014-38df-0310-8fa8-9805f1628bb7
2001-12-15Support for LOCATION_FORWARD, LOCATION_FORWARD_PERM andguy1-5/+11
NEEDS_ADDRESSING_MODE replies in GIOP, from Bernd Becker. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@4401 f5534014-38df-0310-8fa8-9805f1628bb7
2001-12-10Move the pointer to the "column_info" structure in the "frame_data"guy1-35/+35
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. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@4370 f5534014-38df-0310-8fa8-9805f1628bb7
2001-11-26Moved from using dissect_data() to using call_dissector()hagbard1-3/+4
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@4269 f5534014-38df-0310-8fa8-9805f1628bb7
2001-08-28Free allocated memory as soon as we're done with it. In many cases,guy1-84/+154
this obviates the need to add cleanup handlers for exceptions, if we move a free call so that there are no tvbuff references between the allocation and the free. Checking for that also found some cases where frees were missing, and one loop where a call was made to allocate stuff but the free was only done after the exit from the loop. In cases where we can't move the free up above tvbuff references, register cleanup handlers, and replace the free with CLEANUP_CALL_AND_POP. Eliminate some initializations of pointers to null - the initializations aren't necessary (or ceased to be necessary after the frees were moved up). In the "force an exception" code in "get_CDR_octet_seq()", touch the first byte after the string, to make it more likely that we'll throw the correct exception (e.g., throw a "past end of captured data" exception rather than a "past end of data" exception). There's no need for "get_CDR_string()" to force an exception, as it just calls "get_CDR_octet_seq()", which will do it for us. However, as the result of "get_CDR_string()" is often processed as a string, if the length is 0 it should just "g_strdup()" a null string, rather than not doing anything (and relying on the pointer variable being initialized to null). It's not always safe to treat a null pointer as if it pointed to a string (in fact, it is often most definitely unsafe). git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3878 f5534014-38df-0310-8fa8-9805f1628bb7
2001-08-20Free the exception ID string if we've allocated one.guy1-4/+9
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3856 f5534014-38df-0310-8fa8-9805f1628bb7
2001-08-20Patch from Bernd Becker: "header->exception_id" has to be set regardlessguy1-12/+13
of whether a protocol tree is being generated. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3855 f5534014-38df-0310-8fa8-9805f1628bb7
2001-07-27Update from Frank Singleton to get rid of a bogus "Malformed Frame"guy1-5/+5
indication when reading an IOR with TAG_MULTIPLE_COMPONENTS. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3794 f5534014-38df-0310-8fa8-9805f1628bb7
2001-07-26Fix from Frank Singleton to get rid of a premature "g_free()" of memory.guy1-3/+4
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3789 f5534014-38df-0310-8fa8-9805f1628bb7
2001-07-25Don't try to look up a module name in the module hash table if we don'tguy1-1/+4
have a module name. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3787 f5534014-38df-0310-8fa8-9805f1628bb7
2001-07-05Updates from Frank Singleton - get rid of an option that was madeguy1-13/+1
unnecessary as a result of the change that made subdissectors for GIOP-based protocols register themselves with the GIOP dissector with their protocol ID and had the GIOP dissector check whether the protocol is enabled before calling its dissector, so that subdissectors can be disabled from the "Edit->Protocols" dialog box. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3654 f5534014-38df-0310-8fa8-9805f1628bb7
2001-07-03From Frank Singleton: add subtrees for ServiceContextList and IOR.guy1-4/+30
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3648 f5534014-38df-0310-8fa8-9805f1628bb7
2001-07-03If the reply status isn't handled, don't complain about an unknownguy1-2/+2
exception, complain about an unknown reply status - it isn't necessarily an exception. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3642 f5534014-38df-0310-8fa8-9805f1628bb7
2001-06-29From Frank Singleton: when GIOP sub-dissectors register themselves, haveguy1-13/+30
them supply a protocol ID, and have the code that calls the subdissectors check if the protocol is enabled and, if it isn't, not call the sub-dissector. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3623 f5534014-38df-0310-8fa8-9805f1628bb7
2001-06-27Improved support for CORBA IDL "fixed" types, and fix to handling ofguy1-32/+218
explicit and heuristic GIOP dissectors, from Frank Singleton. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3615 f5534014-38df-0310-8fa8-9805f1628bb7
2001-06-23Include "strerror.h" only on platforms that don't declare it in aguy1-1/+3
standard header file, so we get the platform's declaration (which may include, for example, "dllexport"-type declarations) rather than the "workaround for platforms that lack it" declaration. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3603 f5534014-38df-0310-8fa8-9805f1628bb7
2001-06-19From Frank Singleton: fix compiler warnings.guy1-19/+18
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3576 f5534014-38df-0310-8fa8-9805f1628bb7
2001-06-18Support for protocols running atop GIOP, from Frank Singleton.guy1-553/+4419
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3563 f5534014-38df-0310-8fa8-9805f1628bb7
2001-06-18From Joerg Mayer: explicitly fill in all members of aguy1-4/+4
"header_field_info" structure, including the ones that are later set by the routines to register fields. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3561 f5534014-38df-0310-8fa8-9805f1628bb7
2001-06-18Various signed vs. unsigned fixes, from Joerg Mayer.guy1-3/+3
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3560 f5534014-38df-0310-8fa8-9805f1628bb7
2001-04-27More signed-vs-unsigned changes from Joerg Mayer.guy1-5/+5
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3386 f5534014-38df-0310-8fa8-9805f1628bb7
2001-02-26Replace some C++-style comments with C-style ones.oabad1-6/+6
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3076 f5534014-38df-0310-8fa8-9805f1628bb7
2001-01-22Remove more "CHECK_DISPLAY_AS_DATA()" calls and "pinfo->current_proto ="guy1-13/+9
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). git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@2931 f5534014-38df-0310-8fa8-9805f1628bb7
2001-01-16Do not use "match_strval()" unless you're prepared to check whether itguy1-7/+7
returns NULL and do something appropriate if it does so; instead, use "val_to_str()", and let *it* worry about the value passed to it not having a corresponding string. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@2908 f5534014-38df-0310-8fa8-9805f1628bb7
2001-01-09Add an additional "protocol index" argument to "{old_}dissector_add()",guy1-2/+2
"{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....) git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@2849 f5534014-38df-0310-8fa8-9805f1628bb7
2001-01-03Have "proto_register_protocol()" build a list of data structures forguy1-2/+3
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. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@2810 f5534014-38df-0310-8fa8-9805f1628bb7