aboutsummaryrefslogtreecommitdiffstats
path: root/epan
AgeCommit message (Collapse)AuthorFilesLines
2001-03-26Change proto_item_add_subtree to test for NULL pi value and return NULL.Jeff Foster1-2/+7
This is the same behavior as the proto_tree_add routines with NULL tree values. svn path=/trunk/; revision=3191
2001-03-23Changes required to support multiple named data sources.Jeff Foster7-13/+50
Tvbuffers changed to added the data source name, GUI and printing code changed to support these changes and display the multiple hex views. svn path=/trunk/; revision=3165
2001-03-23The Win32 build builds wiretap as a DLL and requires WinPcap 2.1.Gilbert Ramirez3-7/+13
svn path=/trunk/; revision=3163
2001-03-22Move appletalk- and sna-related address routines out of the dissectorsGilbert Ramirez6-4/+203
and into epan. svn path=/trunk/; revision=3160
2001-03-15The other "proto_tree_add" routines will, if the "tree" argument isGuy Harris1-1/+4
null, just return NULL without doing any work; make "proto_tree_add_item()" do so as well. svn path=/trunk/; revision=3139
2001-03-15Add a new AT_OSI address type.Guy Harris2-3/+12
In the CLNP dissector, set the source and destination network-layer and "top-level" addresses; this will cause them to show up in the source and destination columns of the summary display if you're showing the network-layer or top-level address (although you'll probably have to widen those columns significantly to see the entire address), and also makes them available to subdissectors. svn path=/trunk/; revision=3131
2001-03-13Make tvb_get_ptr() return 'const guint8*', and clean up all theGilbert Ramirez3-6/+6
usages of tvb_get_ptr(). packet-ieee80211.c still has one bad usage, in which it *does* modify the tvbuff's data. svn path=/trunk/; revision=3128
2001-03-07In the code that handles finding a field after a user clicks onGilbert Ramirez1-2/+2
a byte in the hex dump, 1. Fix an off-by-one error when finding the field. This only showed up if the selected byte had no field of its own and was only designated as part of the parent protocol (like the 00-padding at the beginning of TCP options). 2. Fix an off-by-one error when clicking on a character in the second half of the "text dump" portion of the hex dump. I forgot about the extra space between the first 8 characters and the second 8 characters. svn path=/trunk/; revision=3117
2001-03-06Add some win32-specific targets in .cvsignore's.Gilbert Ramirez4-4/+10
Replace 'nmake' with $(MAKE) /$(MAKEFLAGS), from Mike Frisch. svn path=/trunk/; revision=3108
2001-03-05Move version to 0.8.16.Gilbert Ramirez4-8/+8
Fix build for splitting build dir from src dir. Note the use of updated GTK+ release for Win32 binaries. svn path=/trunk/; revision=3107
2001-03-03Fix some places where value-to-string routines were returning FALSE,Guy Harris2-10/+50
indicating an invalid string, but not reporting the error to the user. svn path=/trunk/; revision=3098
2001-03-02Calculate the height and width of m_r_font globally, since variousGilbert Ramirez2-2/+55
routines need it. When a user clicks on a hex digit or on the corresponding character (the "text dump" portion) in the hex dump, find the field in the proto_tree that the byte corresponds to, expand the GtkCTree so that the field is viewable, select the field, and center it vertically. LanAlyzer has this feature, and I've missed it in Ethereal. svn path=/trunk/; revision=3096
2001-03-02Get rid of unused method from ftypes structure.Gilbert Ramirez8-83/+8
svn path=/trunk/; revision=3093
2001-03-02Enable slices of [i-j], where i is start offset and j is end offset,Gilbert Ramirez6-85/+147
inclusive. That is, [0-1] is a slice of 2 bytes. svn path=/trunk/; revision=3092
2001-03-01Create proper display filter for FT_BOOLEAN when using "Match Selected".Gilbert Ramirez1-4/+5
svn path=/trunk/; revision=3089
2001-02-27Move the location of cppmagic.h, since the lemon-flex include filesGilbert Ramirez2-16/+1
require it. It makes more sense to either put cppmagic with lemon, or in yet another common directory. I'll just put it with lemon. svn path=/trunk/; revision=3083
2001-02-27Add Ed Warnicke's drange code to the new dfilter system.Gilbert Ramirez18-330/+806
Not supported yet: [i-j] (offset-offset) Supported: [i] index [i:j] offset:length [:j] 0:offset [i:] offset:end [x,y] concatenation of slices svn path=/trunk/; revision=3080
2001-02-27Fix up the handling of NBIPX packets, and of Microsoft "direct hosting"Guy Harris1-1/+2
name-server-over-IPX and mailslot-datagram-over-IPX packets, based on stuff dredged out of a pile of documents on the Web. svn path=/trunk/; revision=3079
2001-02-26Remove the Lemon stuff from EXTRA_DIST; the Lemon source is now inGuy Harris1-5/+1
"tools/lemon", and that directory's "Makefile.am" arranges to put the Lemon stuff into the distribution. svn path=/trunk/; revision=3077
2001-02-16Actually, this works better.Gilbert Ramirez2-5/+5
svn path=/trunk/; revision=3043
2001-02-16Use the proper way to denote that a single operationGilbert Ramirez2-3/+5
produces 2 files. (grammar.lemon --> grammar.c grammar.h) svn path=/trunk/; revision=3042
2001-02-15More prototype fun - make the Lemon parser allocate and free routinesGuy Harris1-3/+3
take fully-prototyped function arguments with types appropriate to "g_malloc()" and "g_free()", and change the calls to the functions pointed to by those arguments not pass the extra __FILE__ and __LINE__ arguments. svn path=/trunk/; revision=3039
2001-02-13In a display filter expression, make a field name refer to any of theGuy Harris3-33/+73
fields with that name. svn path=/trunk/; revision=3030
2001-02-12If there are multiple fields with the same name, list only one of themGuy Harris2-3/+23
in the output of "{ethereal,tethereal} -G", so that it appears only once in the documentation. Expand some comments to give more details. svn path=/trunk/; revision=3024
2001-02-11Make boolean equality/inequality tests smarter; they don't testGilbert Ramirez1-7/+34
for exact value matches, but just that the two values are either zero or non-zero. svn path=/trunk/; revision=3015
2001-02-11Remove unused variable and add copyright and RCS ID.Gilbert Ramirez1-2/+23
svn path=/trunk/; revision=3013
2001-02-08In "call_dissector()", if the protocol for the dissector referred to byGuy Harris1-1/+2
the handle has been disabled, return after calling "dissect_data()", rather than driving on and calling the dissector anyway. svn path=/trunk/; revision=3001
2001-02-02Add Makefile.nmake files for new subdirs.Gilbert Ramirez5-17/+105
Add them to EXTRA_DIST in corresponding Makefile.am's so that they get packaged with the distribution. svn path=/trunk/; revision=2979
2001-02-01Catch any exception thrown by accessing the tvbuff.Gilbert Ramirez1-3/+10
svn path=/trunk/; revision=2978
2001-02-01Make some pointers "guchar" pointers, so that characters extracted fromGuy Harris1-3/+3
strings are unsigned, so that we can hand them to "isXXX()" macros without GCC warning us that an array subscript is "char" (as in "if this is a character with the 8th bit set, you may not get the answer you think you should from 'isXXX()'"). svn path=/trunk/; revision=2972
2001-02-01Declare "proto_tree_set_protocol_tvb()" at the top, along with the otherGuy Harris1-1/+3
"proto_tree_set_XXX_tvb()" routines. svn path=/trunk/; revision=2971
2001-02-01Grumble, grumble. I forgot to add the license comment at the topGilbert Ramirez29-26/+592
of these files. svn path=/trunk/; revision=2968
2001-02-01Create a more modular type system for the FT_* types. Put themGilbert Ramirez51-3138/+5484
into epan/ftypes. Re-write display filter routines using Lemon parser instead of yacc. Besides using a different tool, the new grammar is much simpler, while the display filter engine itself is more powerful and more easily extended. Add dftest executable, to test display filter "bytecode" generation. Add option to "configure" to build dftest or randpkt, both of which are not built by default. Implement Ed Warnicke's ideas about dranges in the new display filter and ftype code. Remove type FT_TEXT_ONLY in favor of FT_NONE, and have protocols registered as FT_PROTOCOL. Thus, FT_NONE is used only for simple labels in the proto tree, while FT_PROTOCOL is used for protocols. This was necessary for being able to make byte slices (ranges) out of protocols, like "frame[0:3]" Win32 Makefile.nmake's will be added tonight. svn path=/trunk/; revision=2967
2001-02-01"Decode As" dialog, from David Hampton.Guy Harris4-27/+395
svn path=/trunk/; revision=2965
2001-01-31Correct a comment.Gilbert Ramirez1-2/+3
svn path=/trunk/; revision=2963
2001-01-31The plugin mechanism no longer uses display filters, so "plugins.h" noGuy Harris1-2/+1
longer needs to include "dfilter.h". svn path=/trunk/; revision=2962
2001-01-28Get rid of support for old-style plugins (support for old-style pluginsGuy Harris2-412/+24
requires that the dfilter code be initialized before the plugins are added; this required us to *re*-initialize the dfilter code after reading in all the plugins, as the plugins may themselves have added new filterable fields - that was a bit of a mess), and make the "Tools->Plugins" dialog box show the new-style plugins. svn path=/trunk/; revision=2950
2001-01-28Add "col_clear()" to the list of functions in the transfer vector forGuy Harris1-4/+2
plugins, as the MGCP dissector uses it. Don't set pointers to "dfilter_init()" and "dfilter_cleanup()" in that transfer vector, as there *aren't* any pointers to them in the transfer vector. svn path=/trunk/; revision=2949
2001-01-26Clean up the dissector registration up a bit - arrange that all pluginsGuy Harris5-34/+63
be loaded and their initialization routines called in right after we call the initialization routines for built-in dissectors, but don't call their handoff registration routines yet, and then call the handoff registration routines right after calling the handoff registration routines for built-in dissectors. Do all that in "proto_init()", rather than "epan_init()". That way, we call all dissector registration routines together, and then call all dissector handoff registration routines together; all the registration routines are called before any handoff registration routines, as is required, and, as "proto_init()" is called by "epan_init()" before "dfilter_init()" is called, all filterable fields have been registered before "dfilter_init()" is called, and no plugins have to call "dfilter_init()" themselves to get their fields registered. Remove pointers to "dfilter_init()" and "dfilter_cleanup()" from the plugin address table, as plugins shouldn't be calling them any more, and remove calls to them from plugins. svn path=/trunk/; revision=2940
2001-01-18Pull the handling of trailers in Ethernet (as opposed to 802.3) framesGuy Harris1-5/+5
into "ethertype()". svn path=/trunk/; revision=2915
2001-01-17Automake 1.4b (which is actually a test version of 1.5, i.e. of aGuy Harris1-4/+4
*future* version, not of 1.4, which is the *current* version - i.e., it's newer than 1.4) complains, if "dfilter-grammar.c" and "dfilter-scanner.c" are part of "EXTRA_libethereal_a_SOURCES", that "dfilter-grammar.o" is built both from "dfilter-grammar.c" and "dfilter-grammar.y", and that "dfilter-scanner.o" is built both from "dfilter-scanner.c" and "dfilter-scanner.l", and refuses to build "Makefile.in". Moving them to "EXTRA_DIST" makes 1.4b happy. Automake 1.4 allows them either to be in "EXTRA_libethereal_a_SOURCES" or in "EXTRA_DIST"; the only difference between the generated "Makefile.in" files is which of those two variables the files are in, and the only difference that makes is that it keeps those two files out of "SOURCES", which means that "make ID" doesn't include them in the files it looks at, and "make TAGS" and "make tags" don't include them in the files they look at. I'm not sure whether the tags file should be built from "dfilter-grammar.y" and "dfilter-scanner.l", or from "dfilter-grammar.c" and "dfilter-scanner.c"; the former means you see the real source file, not the generated source file, if you look for a symbol defined in one of those files, while the latter means you can look for symbols in code generated by YACC/Bison or Flex. In either case, the generated files go into the distribution tarball, which is what we want. For now, we go with what makes Automake 1.4b happy. svn path=/trunk/; revision=2909
2001-01-13Tvbuffify the PIM dissector.Guy Harris3-44/+3
It was the last dissector that used "old_call_dissector()", and tvbuffifying it got rid of that, so get rid of "old_call_dissector()". svn path=/trunk/; revision=2892
2001-01-13Also save and restore the value of "pinfo->match_port" inGuy Harris1-3/+9
"{old_}dissector_try_port()", so that its value doesn't get changed out from under a dissector that calls "{old_}dissectory_try_port()". svn path=/trunk/; revision=2890
2001-01-12In all the routines that set "pinfo->current_proto" before calling aGuy Harris1-6/+36
dissector, save the current value of "pinfo->current_proto" and restore it before returning; when you return, you're back in the dissector that called the routine to call a dissector, so the current protocol is the one for that dissector. This may be important if a dissector calls a subdissector and, after it returns, processes stuff in the packet after the stuff dissected by the subdissectror. This means it's safe for "dissector_try_heuristic()" to set it before calling a heuristic dissector, as it'll put back the previous value when it returns. svn path=/trunk/; revision=2886
2001-01-12Move the libethereal version to 0.8.15, and use the C preprocessorGilbert Ramirez3-9/+9
macro "VERSION" to create the version-specific directory name for plugins in plugins.c svn path=/trunk/; revision=2883
2001-01-12Change version numbers to 0.8.15Gilbert Ramirez1-5/+5
svn path=/trunk/; revision=2882
2001-01-10In "{old_}dissector_try_port()", check whether the protocol for theGuy Harris1-2/+75
dissector is enabled and, if not, return FALSE, just as if there hadn't been any entry for that port number in the table. If it is enabled, set "pinfo->current_proto" from its short name before calling the dissector. In "dissector_try_heuristic()", check whether the protocols for dissectors are enabled and, if not, skip those dissectors, just as if they hadn't been in the table. (We don't set "pinfo->current_proto" before calling a dissector, as we don't know whether the dissector in question will be the one to dissect the packet. Arguably, we should have, for heuristic dissectors, separate "recognize" and "dissect" routines, where the former never throws an exception and returns TRUE or FALSE, and the latter is called only if the "recognize" routine claimed the frame, and is just a "dissector_t" that doesn't return a value.) In "{old_}call_dissector()", check whether the protocol for the dissector is enabled and, if not, call "{old_}dissect_data()". if it is enabled, set "pinfo->current_proto" from its short name before calling the dissector. svn path=/trunk/; revision=2861
2001-01-09Add a new "ip_to_str_buf()" routine that takes a pointer to an IPGuy Harris3-22/+35
address and a pointer to a character buffer as arguments, and puts a printable form of the IP address into the buffer. Make "ip_to_str()" use it. Make "host_name_lookup()" use "ip_to_str_buf()", not "ip_to_str()", so that it doesn't trash any strings that a dissector has gotten with "ip_to_str()" (for example, the ARP dissector gets strings for the source and target protocol addresses, and then may attempt to register names for the source and target hardware addresses with "add_ether_byip()"; if "host_name_lookup()" fails to find a host name for the IP address, it shouldn't use "ip_to_str()" to generate an IP address string to associate with the IP address, as if that's done twice it'll run out of "ip_to_str()" buffers - there're only 3 of them - and trash one of the IP address strings the ARP dissector got). svn path=/trunk/; revision=2850
2001-01-09Add an additional "protocol index" argument to "{old_}dissector_add()",Guy Harris2-17/+38
"{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-09Add tables of "conversation" dissectors, which are associated withGuy Harris2-2/+102
particular protocols, and which keep track of all dissectors that could be associated with conversations using those particular protocols - for example, the RTP and RTCP dissectors could be assigned to UDP conversations. This is for future use with UI features allowing the dissector for a given conversation to be set from the UI, to allow 1) conversations between two ports, both of which have dissectors associated with them, that have been given to the wrong dissector to be given to the right dissector; 2) conversations between two ports, neither of which have dissectors associated with them, to be given to a dissector (RTP and RTCP, for example, typically run on random ports, and if you don't have, in a capture, traffic that would say "OK, traffic between these two hosts and ports will be RTP traffic", you may have to tell Ethereal explicitly what protocol the conversation is). svn path=/trunk/; revision=2848