aboutsummaryrefslogtreecommitdiffstats
path: root/packet-giop.c
AgeCommit message (Collapse)AuthorFilesLines
2004-07-18Move dissectors to epan/dissectors directory.Gilbert Ramirez1-5654/+0
Also move ncp222.py, x11-fields, process-x11-fields.pl, make-reg-dotc, and make-reg-dotc.py. Adjust #include lines in files that include packet-*.h files. svn path=/trunk/; revision=11410
2004-07-18Set the svn:eol-style property on all text files to "native", so thatGuy Harris1-1/+1
they have LF at the end of the line on UN*X and CR/LF on Windows; hopefully this means that if a CR/LF version is checked in on Windows, the CRs will be stripped so that they show up only when checked out on Windows, not on UN*X. svn path=/trunk/; revision=11400
2004-07-09Move the redefinition of "isprint()" to be used by dissectors whenGuy Harris1-1/+3
generating strings to put into the printable representation of protocol tree items into an "isprint.h" header, and include it in some additional dissectors. Add bounds checking to one place in the DICOM dissector. svn path=/trunk/; revision=11356
2003-12-28removed some MSVC warnings (warning level 2)Ulf Lamping1-4/+4
svn path=/trunk/; revision=9459
2003-12-21Compiling with -pedantic:Jörg Mayer1-3/+3
warning: comma at end of enumerator list svn path=/trunk/; revision=9383
2003-11-26From Patrick Kursawe: rename "getline()" so it doesn't collide with theGuy Harris1-4/+4
"getline()" declared in <stdio.h> with recent versions of glibc. Fix a typo in the AUTHORS file. svn path=/trunk/; revision=9094
2003-11-16Export "protocol_t" as an opaque type.Guy Harris1-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. svn path=/trunk/; revision=8979
2003-03-05From Craig Rodrigues:Gerald Combs1-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 svn path=/trunk/; revision=7285
2003-02-18Add a function to dissect service contexts whose values don'tGuy Harris1-34/+78
necessarily use the section 15.3.3 encapsulation rules, and use that to dissect service contexts with unknown IDs. svn path=/trunk/; revision=7163
2003-02-18Add a dissector for the CodeSets service context.Guy Harris1-3/+29
Pass "encapsulation_boundary", not "seqlen_cd", as the boundary argument to the dissector for RTCorbaPriority. svn path=/trunk/; revision=7162
2003-02-15Fix a comment to more accurately describe what the statement followingGuy Harris1-2/+7
it does. svn path=/trunk/; revision=7156
2003-02-14Don't have "decode_UnknownServiceContext()" put the service contextGuy Harris1-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. svn path=/trunk/; revision=7151
2003-02-13From Craig Rodrigues and Bernd Becker (merger of their patches, fromGuy Harris1-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) svn path=/trunk/; revision=7141
2003-02-13From Craig Rodrigues: decode the priority value put into the serviceGuy Harris1-65/+135
context field by Real-time CORBA. Update his e-mail address while we're at it. svn path=/trunk/; revision=7132
2003-01-26Update my email address in various places since my old one no longer worksLaurent Deniel1-2/+2
svn path=/trunk/; revision=7003
2002-12-02Don't cast away constness, and fix variable and structure memberGuy Harris1-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. svn path=/trunk/; revision=6726
2002-08-28Removed trailing whitespaces from .h and .c files using theJörg Mayer1-395/+395
winapi_cleanup tool written by Patrik Stridvall for the wine project. svn path=/trunk/; revision=6117
2002-08-02Replace the types from sys/types.h and netinet/in.h by their glib.hJörg Mayer1-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. svn path=/trunk/; revision=5932
2002-05-13Add a "tvb_ensure_bytes_exist()", which is like "tvb_bytes_exist()" onlyGuy Harris1-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. svn path=/trunk/; revision=5453
2002-05-12Fix a bounds checking error in get_CDR_octet_seq.Gerald Combs1-5/+7
svn path=/trunk/; revision=5452
2002-05-02From Joerg Mayer: get rid of unused arguments, and "#if" out an unusedGuy Harris1-45/+38
stub routine. svn path=/trunk/; revision=5365
2002-04-24Use the IEEE floating-point tvbuff accessors to get IEEE floating-pointGuy Harris1-86/+9
numbers, rather than doing it ourselves. svn path=/trunk/; revision=5244
2002-02-27From John Mackenzie: register GIOP dissector as a UDP heuristicGuy Harris1-1/+3
dissector. svn path=/trunk/; revision=4817
2002-02-18Don't give tvbuffs names; instead, give data sources names, where aGuy Harris1-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. svn path=/trunk/; revision=4749
2002-01-24Replace a bunch of "tvb_length()" and "tvb_length_remaining()" calls inGuy Harris1-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. svn path=/trunk/; revision=4605
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-19From Bernd Becker: don't clear COL_INFO until the GIOP subdissecrors areGuy Harris1-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. svn path=/trunk/; revision=4424
2001-12-17Save the current protocol string, and set the current protocol string toGuy Harris1-1/+12
the string for the subdissector's protocol, before calling a GIOP subdissector, and restore it before returning. svn path=/trunk/; revision=4416
2001-12-15Support for LOCATION_FORWARD, LOCATION_FORWARD_PERM andGuy Harris1-5/+11
NEEDS_ADDRESSING_MODE replies in GIOP, from Bernd Becker. svn path=/trunk/; revision=4401
2001-12-10Move the pointer to the "column_info" structure in the "frame_data"Guy Harris1-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. svn path=/trunk/; revision=4370
2001-11-26Moved from using dissect_data() to using call_dissector()Ed Warnicke1-3/+4
svn path=/trunk/; revision=4269
2001-08-28Free allocated memory as soon as we're done with it. In many cases,Guy Harris1-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). svn path=/trunk/; revision=3878
2001-08-20Free the exception ID string if we've allocated one.Guy Harris1-4/+9
svn path=/trunk/; revision=3856
2001-08-20Patch from Bernd Becker: "header->exception_id" has to be set regardlessGuy Harris1-12/+13
of whether a protocol tree is being generated. svn path=/trunk/; revision=3855
2001-07-27Update from Frank Singleton to get rid of a bogus "Malformed Frame"Guy Harris1-5/+5
indication when reading an IOR with TAG_MULTIPLE_COMPONENTS. svn path=/trunk/; revision=3794
2001-07-26Fix from Frank Singleton to get rid of a premature "g_free()" of memory.Guy Harris1-3/+4
svn path=/trunk/; revision=3789
2001-07-25Don't try to look up a module name in the module hash table if we don'tGuy Harris1-1/+4
have a module name. svn path=/trunk/; revision=3787
2001-07-05Updates from Frank Singleton - get rid of an option that was madeGuy Harris1-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. svn path=/trunk/; revision=3654
2001-07-03From Frank Singleton: add subtrees for ServiceContextList and IOR.Guy Harris1-4/+30
svn path=/trunk/; revision=3648
2001-07-03If the reply status isn't handled, don't complain about an unknownGuy Harris1-2/+2
exception, complain about an unknown reply status - it isn't necessarily an exception. svn path=/trunk/; revision=3642
2001-06-29From Frank Singleton: when GIOP sub-dissectors register themselves, haveGuy Harris1-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. svn path=/trunk/; revision=3623
2001-06-27Improved support for CORBA IDL "fixed" types, and fix to handling ofGuy Harris1-32/+218
explicit and heuristic GIOP dissectors, from Frank Singleton. svn path=/trunk/; revision=3615
2001-06-23Include "strerror.h" only on platforms that don't declare it in aGuy Harris1-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. svn path=/trunk/; revision=3603
2001-06-19From Frank Singleton: fix compiler warnings.Guy Harris1-19/+18
svn path=/trunk/; revision=3576
2001-06-18Support for protocols running atop GIOP, from Frank Singleton.Guy Harris1-553/+4419
svn path=/trunk/; revision=3563
2001-06-18From Joerg Mayer: explicitly fill in all members of aGuy Harris1-4/+4
"header_field_info" structure, including the ones that are later set by the routines to register fields. svn path=/trunk/; revision=3561
2001-06-18Various signed vs. unsigned fixes, from Joerg Mayer.Guy Harris1-3/+3
svn path=/trunk/; revision=3560
2001-04-27More signed-vs-unsigned changes from Joerg Mayer.Guy Harris1-5/+5
svn path=/trunk/; revision=3386
2001-02-26Replace some C++-style comments with C-style ones.Olivier Abad1-6/+6
svn path=/trunk/; revision=3076
2001-01-22Remove more "CHECK_DISPLAY_AS_DATA()" calls and "pinfo->current_proto ="Guy Harris1-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). svn path=/trunk/; revision=2931