1186 Commits

Author SHA1 Message Date
Guy Harris
841b4762ec Move the initial comment inside the first "%{", so that it shows up in
the generated parser, so that "ident" will tell you from which version
of the grammar that parser was generated.

svn path=/trunk/; revision=956
1999-10-31 19:34:46 +00:00
Guy Harris
e5e89164b6 The answer to the question "why pass err to open_routines[i]() if err is
overwritten here?" is probably "because I was cutting-and-pasting text
to insert the error-handling code, and didn't remove the "*err = errno"
from that particular case.  Remove it now.

svn path=/trunk/; revision=955
1999-10-31 19:30:53 +00:00
Guy Harris
24807c0afa Give it an RCS ID.
Fix the error checking ("file_error()" returns an "errno" value *if*
there's an error and it's a UNIX error, but it may also return a
non-"errno" value for non-UNIX errors, so its return value should be
passed back through the "err" pointer).

svn path=/trunk/; revision=954
1999-10-31 19:23:37 +00:00
Gilbert Ramirez
fb9f8ad5ed Mention the Toshiba trace file capability in the man page.
svn path=/trunk/; revision=953
1999-10-31 17:54:27 +00:00
Gilbert Ramirez
558e714449 Add a module to wiretap to be able to read trace files from Toshiba's
line of ISDN routers. Much like the ascend reader, this module reads an
ASCII hex dump of trace data.

Rearranged the order in which wiretap tries trace files, to keep the
ASCII-readers (ascend and toshiba) at the end, and put the binary-readers
(everything else) at the front of the list. If a telnet session of
and ascend trace or toshiba trace were captured near the beginning of
another trace, wiretap might think the trace was ascend or toshiba if it
tried that module first.

Fixed the way wtap_seek_read() selects functions to call. It was using
the encap type instead of the file type. We got lucky because
WTAP_ENCAP_ASCEND == WTAP_FILE_ASCEND

svn path=/trunk/; revision=952
1999-10-31 17:46:11 +00:00
Jun-ichiro itojun Hagino
10fdc90bb0 improve BGP path attribute decoding tree.
show detail of path attribute to outside of the tree, to help users
browse the structure.  BGP protocol header structure is very complex
and the previous code required users to click through the tree to check,
say, AS path.

svn path=/trunk/; revision=951
1999-10-31 00:20:44 +00:00
Guy Harris
b99cfa28c8 Warren Young's patch to add a "Print" button to the "Follow TCP Stream"
data window.

Some (belated) man page updates.

svn path=/trunk/; revision=950
1999-10-30 06:42:10 +00:00
Guy Harris
149c40fec9 Don Lafontaine's IGRP/EIGRP dissector.
svn path=/trunk/; revision=949
1999-10-30 06:10:32 +00:00
Guy Harris
62df24872c Give DDP packets their own ETT_ type, rather than using ETT_IP.
Call "dissect_data()" on the payload of a DDP packet.

svn path=/trunk/; revision=948
1999-10-29 05:25:59 +00:00
Guy Harris
5f6c1e26de Have the PROTOCOL field for ONC RPC just give the RPC program
name/number, and put the call/reply info, procedure, and version number
into the INFO field.

Implement "col_append_fstr()", and use it to add information to the info
field.

Make "col_add_fstr()" aware that COL_INFO fields can have more data than
other COL_XXX fields (as "col_add_str()" and "col_append_str()" already
were).

svn path=/trunk/; revision=947
1999-10-29 02:25:54 +00:00
Guy Harris
dc6963e2d4 Uwe Girlich's ONC RPC and NFS dissectors.
svn path=/trunk/; revision=946
1999-10-29 01:11:23 +00:00
Guy Harris
21c466ed25 Uwe Girlich's ONC RPC and NFS dissectors.
svn path=/trunk/; revision=945
1999-10-29 01:04:44 +00:00
Nathan Neulinger
6a95d6d5ea added additional error messages
svn path=/trunk/; revision=944
1999-10-28 20:46:42 +00:00
Nathan Neulinger
3bfa84c004 Converted C++ style comments to C style
svn path=/trunk/; revision=943
1999-10-28 15:08:42 +00:00
Gilbert Ramirez
0d3f7a8190 Final change for 0.7.7
svn path=/trunk/; revision=941
1999-10-28 12:21:11 +00:00
Guy Harris
1ae609b1b3 Forcibly insert "-I/usr/local/include" in CFLAGS and "-L/usr/local/lib"
in LIBS, because there's a bunch of stuff we might use that might have
been installed in "/usr/local" ("libpcap", "zlib", an SNMP library), and
we want to make sure all the stuff that looks for libraries and header
files checks there.

Also, add all the "-I" stuff to CPPFLAGS as well, as that's what's used
in many header-file searches.

And, while we're at it, add "-R/usr/local/lib" on SunOS 5.x, as its
linker doesn't automatically set the run-time library search path to
include all directories specified in "-L".

Hopefully, this will make sure we find in "/usr/local/include" and
"/usr/local/lib" everything we might want to find (e.g., SNMP headers -
on FreeBSD, we weren't adding "/usr/local/include" because we found the
"libpcap" header in "/usr/include", and thus weren't searching
"/usr/local/include" for "ucd-snmp/snmp.h" or "snmp/snmp.h", and thus
weren't finding them even if we'd installed the UCD SNMP package!).

Also, hopefully it won't cause problems on some other platform with some
other configuration of installed packages....

svn path=/trunk/; revision=940
1999-10-28 03:33:19 +00:00
Gerald Combs
652fd211ac Change ASCEND_MAX_SEEK from 1000000 to 100000, so as not to excessively slow
down file opens.

svn path=/trunk/; revision=939
1999-10-28 01:42:43 +00:00
Gilbert Ramirez
c624b1c696 More comments about changes in 0.7.7.
svn path=/trunk/; revision=938
1999-10-27 19:31:31 +00:00
Gilbert Ramirez
aad98c9a66 Added #include <time.h> for AIX.
svn path=/trunk/; revision=937
1999-10-27 19:30:23 +00:00
Guy Harris
f494dfafa7 Include <time.h> to get "struct tm" declared.
svn path=/trunk/; revision=936
1999-10-27 17:07:08 +00:00
Guy Harris
d14691ff97 Oops! A missing checkin from the recent update by Kojak to the ICQ
dissector.

svn path=/trunk/; revision=935
1999-10-27 05:34:39 +00:00
Guy Harris
93dd1c452d Get rid of a presumed debugging "printf()".
svn path=/trunk/; revision=934
1999-10-27 03:10:37 +00:00
Gilbert Ramirez
5ecad5b6e3 Moved version to 0.7.7
svn path=/trunk/; revision=933
1999-10-27 02:55:07 +00:00
Gilbert Ramirez
3c4a52e342 Add make-reg-dotc to list of deliverables (EXTRA_DIST).
Invoke make-reg-dotc as $(srcdir)/make-reg-dotc for builds outside
of source-tree.

svn path=/trunk/; revision=932
1999-10-27 02:41:11 +00:00
Guy Harris
ca5bfca312 Arrange that "proto_register_snmp()" be defined regardless of whether
SNMP dissection is enabled or not, so that if "register.c" was generated
by scanning a list of files that include "packet-snmp.c" even though
SNMP dissection isn't enabled (the standard "Makefile.in" and
"configure" script won't cause that to happen, but source distributions
such as BSD ports may be set up to do that), and thus includes a call to
"proto_register_snmp()", that won't cause the link to fail.

svn path=/trunk/; revision=931
1999-10-27 02:05:09 +00:00
Guy Harris
7568df46e6 For some unknown reason, having a big "for" loop in the Makefile to scan
all the "packet-XXX.c" files doesn't work with some "make"s; they seem
to pass only the first few names in the list to the shell, for some
reason.

Therefore, we use a script to generate the "register.c" file, and run
that script from the Makefile.

svn path=/trunk/; revision=930
1999-10-27 01:46:14 +00:00
Richard Sharpe
454a982d3b Some small fixes to get rid of compiler warnings
svn path=/trunk/; revision=929
1999-10-26 21:30:11 +00:00
Gilbert Ramirez
82476688f5 Removed erroneous g_assert().
svn path=/trunk/; revision=928
1999-10-26 08:08:24 +00:00
Guy Harris
d0844608c5 The previous patch didn't fix code used only with the CMU SNMP library;
make the equivalent fix to that code.

svn path=/trunk/; revision=927
1999-10-25 20:50:19 +00:00
Guy Harris
50dc9d07c8 Include "snprintf", if necessary, to get "snprintf()" declared.
svn path=/trunk/; revision=926
1999-10-25 20:48:48 +00:00
Guy Harris
d3ab2c76af Ensure that "password" is '\0'-terminated.
svn path=/trunk/; revision=925
1999-10-25 20:32:52 +00:00
Guy Harris
a54314e961 Update from Kojak to dissect ICQ login packets and text messages.
svn path=/trunk/; revision=924
1999-10-25 20:28:21 +00:00
Guy Harris
72eb3d5353 Tomislav Vujec's additional comments on the layout of NTP packets.
svn path=/trunk/; revision=923
1999-10-25 01:55:45 +00:00
Jun-ichiro itojun Hagino
03638cfd21 ignore register.c on cvs operations (dynamically generated by Makefile)
svn path=/trunk/; revision=922
1999-10-24 16:11:43 +00:00
Guy Harris
4d3e30133d Tomislav Vujec's patch to squelch some complaints from GCC (hopefully,
"asn_parse_header()" and "snmp_constr_parse()" don't actually modify the
data to which their first arguments point - if so, we have bigger
problems; I have no reason to believe they would modify it...).

svn path=/trunk/; revision=921
1999-10-24 07:36:20 +00:00
Guy Harris
1d72c68bc6 Export the data structure used to represent a conversation.
Replace "add_to_conversation()" with:

	"conversation_new()", which creates a new conversation, given
	source and destination addresses and ports, and returns a
	pointer to the structure for the conversation;

	"find_conversation()", which tries to find a conversation for
	given source and destination addresses and ports, and returns a
	pointer to the structure for the conversation if found, and a
	null pointer if not found.

Add a private data pointer field to the conversation structure, and have
"conversation_new()" take an argument that specifies what to set that
pointer to; that lets clients of the conversation code hang arbitrary
data off the conversation (e.g., a hash table of protocol requests and
replies, in case the protocol is a request/reply protocol wherein the
reply doesn't say what type of request it's a reply to, and you need
that information to dissect the reply).

svn path=/trunk/; revision=920
1999-10-24 07:27:20 +00:00
Guy Harris
da1fdf005f Kojak's ICQ dissector.
svn path=/trunk/; revision=919
1999-10-24 00:56:11 +00:00
Jun-ichiro itojun Hagino
8a391029da I believe this was me who did ipsec part. If my memory is wrong,
kick me.

svn path=/trunk/; revision=918
1999-10-22 15:07:16 +00:00
Guy Harris
09b332787a Add new "packet-atalk.h" and "packet-sna.h" files to list of source
files.

svn path=/trunk/; revision=917
1999-10-22 08:57:24 +00:00
Guy Harris
4df22dcab1 Add in a missing include of "packet-vines.h", to declare
"vines_addr_to_str()".

svn path=/trunk/; revision=916
1999-10-22 08:56:13 +00:00
Guy Harris
e30a15f04f Add support for SNA FID type 4 addresses to the code that handles the
"address" type.

Use that in the SNA FID type 4 dissector.

svn path=/trunk/; revision=915
1999-10-22 08:53:41 +00:00
Guy Harris
518c23417f Adjust the sizes of the buffers in "vines_addr_to_str()".
svn path=/trunk/; revision=914
1999-10-22 08:51:04 +00:00
Guy Harris
645acd5c15 Add support for Banyan Vines addresses to the code that handles the
"address" type.

Use that in the Banyan Vines dissector.

svn path=/trunk/; revision=913
1999-10-22 08:30:04 +00:00
Guy Harris
5686eb0e1b Get rid of an "extern" before the definition of "atalk_addr_to_str()".
Print the fields of a DDP address as unsigned quantities.

The maximum length of the string for a DDP address is 13 characters
(plus a trailing '\0'); adjust the lengths of the buffers in
"atalk_addr_to_str()".

svn path=/trunk/; revision=912
1999-10-22 08:18:26 +00:00
Guy Harris
1ff9a0d3e3 Add support for Appletalk DDP addresses to the code that handles the
"address" type.

Use that in the Appletalk DDP dissector.

Show the DDP packet type by name, if it's a known packet type.

svn path=/trunk/; revision=911
1999-10-22 08:11:40 +00:00
Guy Harris
d9e7aca79e If one wants to look up a value in a "value_string" table, and get back
either the corresponding string on success or NULL on failure, one
should use "match_strval()", rather than using "val_to_str()" with a
null format - "val_to_str()" uses the format if the lookup fails, so it
won't work correctly (e.g., it may drop core) if the format string is
NULL.

svn path=/trunk/; revision=910
1999-10-22 08:02:21 +00:00
Guy Harris
047b8751f3 Generalize the "ip_src" and "ip_dst" members of the "packet_info"
structure to "dl_src"/"dl_dst", "net_src"/"net_dst", and "src"/"dst"
addresses, where an address is an address type, an address length in
bytes, and a pointer to that many bytes.

"dl_{src,dst}" are the link-layer source/destination; "net_{src,dst}"
are the network-layer source/destination; "{src,dst}" are the
source/destination from the highest of those two layers that we have in
the packet.

Add a port type to "packet_info" as well, specifying whether it's a TCP
or UDP port.

Don't set the address and port columns in the dissector functions; just
set the address and port members of the "packet_info" structure.  Set
the columns in "fill_in_columns()"; this means that if we're showing
COL_{DEF,RES,UNRES}_SRC" or "COL_{DEF,RES,UNRES}_DST", we only generate
the string from "src" or "dst", we don't generate a string for the
link-layer address and then overwrite it with a string for the
network-layer address (generating those strings costs CPU).

Add support for "conversations", where a "conversation" is (at present)
a source and destination address and a source and destination port.  (In
the future, we may support "conversations" above the transport layer,
e.g. a TFTP conversation, where the first packet goes from the client to
the TFTP server port, but the reply comes back from a different port,
and all subsequent packets go between the client address/port and the
server address/new port, or an NFS conversation, which might include
lock manager, status monitor, and mount packets, as well as NFS
packets.)

Currently, all we support is a call that takes the source and
destination address/port pairs, looks them up in a hash table, and:

	if nothing is found, creates a new entry in the hash table, and
	assigns it a unique 32-bit conversation ID, and returns that
	conversation ID;

	if an entry is found, returns its conversation ID.

Use that in the SMB and AFS code to keep track of individual SMB or AFS
conversations.  We need to match up requests and replies, as, for
certain replies, the operation code for the request to which it's a
reply doesn't show up in the reply - you have to find the request with a
matching transaction ID.  Transaction IDs are per-conversation, so the
hash table for requests should include a conversation ID and transaction
ID as the key.

This allows SMB and AFS decoders to handle IPv4 or IPv6 addresses
transparently (and should allow the SMB decoder to handle NetBIOS atop
other protocols as well, if the source and destination address and port
values in the "packet_info" structure are set appropriately).

In the "Follow TCP Connection" code, check to make sure that the
addresses are IPv4 addressses; ultimately, that code should be changed
to use the conversation code instead, which will let it handle IPv6
transparently.

svn path=/trunk/; revision=909
1999-10-22 07:18:23 +00:00
Guy Harris
6921a22ac5 Additional NTP changes:
added misc. constants for parsing flags, and converting time
	stamps;

	added flags and primary sources explanations;

	added function for converting time stamps;

	improved item analysis;

	new item definitions;

from Tomislav Vujec.

svn path=/trunk/; revision=908
1999-10-22 06:31:39 +00:00
Guy Harris
1c7671d5f2 Print the sequence number and call number as unsigned quantities, and
print them with "%lu" and cast the result of "ntohl()" to "unsigned
long" (so as to cope with platforms where "ntohl()" returns a value with
an "int"-based type and platforms where it returns a value with a
"long"-sized type).

svn path=/trunk/; revision=907
1999-10-22 03:55:17 +00:00
Guy Harris
2d16674a5a Check to make sure the header length is at least the minimum length for
an IP header.

svn path=/trunk/; revision=906
1999-10-22 03:52:06 +00:00