Commit Graph

28 Commits

Author SHA1 Message Date
Ronnie Sahlberg 48cb09e9b2 Add a tap to the IPX protocol
svn path=/trunk/; revision=8238
2003-08-24 05:17:51 +00:00
Guy Harris 5311e02789 Make the individual flag bits in the Connection Control field of the SPX
header be filterable fields.

Don't hand retransmitted SPX frames to subdissectors - just show the
payload as a retransmission of the original frame.

Instead of handing a retransmission indicator to SPX subdissectors, hand
them a structure containing the datastream type (under the assumption
that it's data for the protocol running atop SPX, and that the dissector
for that protocol might use it) and the state of the end-of-message bit
(under the assumption that it's data for the protocol running atop SPX).

svn path=/trunk/; revision=7433
2003-04-09 22:33:19 +00:00
Guy Harris 0cb78e6508 Instead of using passing the SPX hash value to subdissectors, attach to
frames that are retransmissions a data structure containing the frame
number of the original frame, and pass that to subdissectors (or, if not
present, pass NULL).

That means we can free the hash values when we're done with the first
pass through the packets.

svn path=/trunk/; revision=7432
2003-04-09 20:45:04 +00:00
Guy Harris 072e149f3c Move the definition of the structure constructed for each SPX
transmission (and shared by all retransmissions), and passed to SPX
subdissectors, to "packet-ipx.h", and use the same structure in the SPX
dissector and the NDPS dissector.

Set up conversations and those structures without checking whether we've
seen the packet before or not; just check whether we find the
conversation before creating a new one, and check whether we find a
structure for the packet before creating a new one.  Pass it to the
subdissector regardless of whether we've seen the packet before or not,
and check it in the NDPS dissector regardless of whether we've seen it
before or not.

Don't store a "retransmission" flag in the structure - the initial
transmission and the retransmissions all share a single data structure,
but they don't all have the same value for the "retransmission" flag,
and you can tell whether a packet is a retransmission or not by
comparing its frame number with the frame number from the structure; if
they're different, it's a retransmission.

svn path=/trunk/; revision=7418
2003-04-08 02:00:54 +00:00
Guy Harris 3eb3505b06 From Greg Morris: update the introductory comment.
svn path=/trunk/; revision=7413
2003-04-08 00:22:26 +00:00
Guy Harris 6974083659 Add a dissector for the IPX WAN protocol. "IPX WAN 2" is just some
compatible additions to the RFC 1362 IPX WAN protocol, so call it "IPX
WAN", not "IPX WAN 2".

svn path=/trunk/; revision=7407
2003-04-06 02:32:38 +00:00
Guy Harris 19616a2b5f Add dissector for NetWare Link Services Protocol.
Socket 0x9001 is for NLSP - it supports LANs as well as WANs, at least
as I read the specification.

Socket 0x9004 is for "IPX WAN 2".

svn path=/trunk/; revision=7387
2003-03-31 08:10:08 +00:00
Guy Harris 4c3b13dd11 Get rid of the "sap_server_ident" structure - just fetch stuff from that
structure in the packet as required.

The server name in that structure is not necessarily null-terminated;
use "%.48s", not "%s", to print it.

svn path=/trunk/; revision=7038
2003-01-30 05:21:34 +00:00
Guy Harris 87226d31a3 Fix a typo in Gerald's e-mail address.
svn path=/trunk/; revision=6422
2002-10-15 04:25:42 +00:00
Jörg Mayer 37c599b47d Dissector for Novell Distributed Print Services by Greg Morris.
NDPS runs on top of SPX and TCP.

svn path=/trunk/; revision=6323
2002-09-23 17:14:54 +00:00
Guy Harris 810fd98f01 From Greg Morris: handle watchdog packets on socket 4003 as well as
socket 4001.

svn path=/trunk/; revision=6264
2002-09-10 23:47:07 +00:00
Jörg Mayer 7c4176d868 Removed trailing whitespaces from .h and .c files using the
winapi_cleanup tool written by Patrik Stridvall for the wine
project.

svn path=/trunk/; revision=6117
2002-08-28 21:04:11 +00:00
Guy Harris 8a5d5f9bde From Joerg Mayer: get rid of extra arguments to capture routines.
svn path=/trunk/; revision=5233
2002-04-24 06:03:34 +00:00
Guy Harris e8d4f4f0ac Make the capture routines take an additional argument giving the amount
of packet data captured.

Make the "BYTES_ARE_IN_FRAME()" macro take a "captured length of the
packet" argument.

Add some length checks to capture routines.

svn path=/trunk/; revision=4235
2001-11-20 21:59:18 +00:00
Gilbert Ramirez f14a6b8b91 Hopefully the last time I have to change my e-mail address.
svn path=/trunk/; revision=4199
2001-11-13 23:55:44 +00:00
Ed Warnicke c17e3b00c6 Moved various to_str files from packet.{c,h} to a separate
to_str.{c,h}.  Resolved strange situation where ipx_addr_to_str was
declared in packet.h but defined in packet-ipx.c by moving
ipx_addr_to_str, ipxnet_to_str_punct, and ipxnet_to_str from packet-ipx.{c,h}   to to_str.{c,h}

svn path=/trunk/; revision=3219
2001-04-01 02:47:56 +00:00
Guy Harris a954a9d276 Fix up the handling of NBIPX packets, and of Microsoft "direct hosting"
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-27 07:28:48 +00:00
Guy Harris 0998433430 Register the IPX dissector, make it static, and call it through a
handle.

Call the IP dissector through a handle in the Frame Relay dissector.

svn path=/trunk/; revision=2851
2001-01-09 09:59:28 +00:00
Laurent Deniel 6a480953a9 Miscellaneous code cleaning
- add <stdarg.h> or <varargs.h> in snprintf.h
  and remove those inclusions in the other #ifdef NEED_SNPRINTF_H codes

- remove the check of multiple inclusions in source (.c)  code
  (there is a bit loss of _cpp_ performance, but I prefer the gain of
   code reading and maintenance; and nowadays, disk caches and VM are
   correctly optimized ;-).

- protect all (well almost) header files against multiple inclusions

- add header (i.e. GPL license) in some include files

- reorganize a bit the way header files are included:

  First:
  #include <system_include_files>
  #include <external_package_include_files (e.g. gtk, glib etc.)>
  Then
  #include "ethereal_include_files"

  with the correct HAVE_XXX or NEED_XXX protections.

- add some HAVE_XXX checks before including some system header files

- add the same HAVE_XXX in wiretap as in ethereal

Please forgive me, if I break something (I've only compiled and regression
tested on Linux).

svn path=/trunk/; revision=2254
2000-08-11 13:37:21 +00:00
Guy Harris 56b989e0ad Allow either old-style (pre-tvbuff) or new-style (tvbuffified)
dissectors to be registered as dissectors for particular ports,
registered as heuristic dissectors, and registered as dissectors for
conversations, and have routines to be used both by old-style and
new-style dissectors to call registered dissectors.

Have the code that calls those dissectors translate the arguments as
necessary.  (For conversation dissectors, replace
"find_conversation_dissector()", which just returns a pointer to the
dissector, with "old_try_conversation_dissector()" and
"try_conversation_dissector()", which actually call the dissector, so
that there's a single place at which we can do that translation.  Also
make "dissector_lookup()" static and, instead of calling it and, if it
returns a non-null pointer, calling that dissector, just use
"old_dissector_try_port()" or "dissector_try_port()", for the same
reason.)

This allows some dissectors that took old-style arguments and
immediately translated them to new-style arguments to just take
new-style arguments; make them do so.  It also allows some new-style
dissectors not to have to translate arguments before calling routines to
look up and call dissectors; make them not do so.

Get rid of checks for too-short frames in new-style dissectors - the
tvbuff code does those checks for you.

Give the routines to register old-style dissectors, and to call
dissectors from old-style dissectors, names beginning with "old_", with
the routines for new-style dissectors not having the "old_".  Update the
dissectors that use those routines appropriately.

Rename "dissect_data()" to "old_dissect_data()", and
"dissect_data_tvb()" to "dissect_data()".

svn path=/trunk/; revision=2218
2000-08-07 03:21:25 +00:00
Gilbert Ramirez 0ab8dd8cbd Convert IPX-and-friend dissectors in packet-ipx.c to use
tvbuffs.

In doing so, I realied that my recommendation for using
tvb_new_subset(pi.compat_top_tvb, -1, -1) was incorrect, because
some dissectors (ethernet!) change pi.len and pi.cap_len. So, I have
to take those two variables into account instead of using -1 and -1.

So, I provide a macro called tvb_create_from_top(offset), where
offset is the name of your offset variable. It is a wrapper around
tvb_new_subset().

I converted the lines that followed my suggestion to use
tvb_create_from_top().

In proto.c I added
proto_tree_add_debug_text(proto_tree*, const char*, ...)
It's much like proto_tree_add_text(), except that it takes no offset
or length; it's soley for temporarily putting debug text into the
proto_tree while debugging a dissector. In making sure that its
use is temporary, the funciton also prints the debug string to stdout
to remind the programmer that the debug code needs to be removed
before shipping the code.

svn path=/trunk/; revision=2068
2000-06-15 03:49:00 +00:00
Guy Harris 86e1e74fb9 Give the IPX dissector dissector hash tables for the IPX type and socket
number, and have the protocols encapsulated inside IPX register
themselves with that table.

svn path=/trunk/; revision=2028
2000-05-30 03:35:55 +00:00
Gilbert Ramirez ddfa11e870 Create a header file for every packet-*.c file. Prune the packet.h file.
This change allows you to add a new packet-*.c file and not cause a
recompilation of everything that #include's packet.h

Add the plugin_api.[ch] files ot the plugins/Makefile.am packaging list.

Add #define YY_NO_UNPUT 1 to the lex source so that the yyunput symbol
is not defined, squelching a compiler complaint when compiling the generated
C file.

svn path=/trunk/; revision=1637
2000-02-15 21:06:58 +00:00
Guy Harris 3e067b812c Fix files that had Gilbert's old e-mail address or that didn't have my
forwarding e-mail address.

svn path=/trunk/; revision=1522
2000-01-22 06:22:44 +00:00
Guy Harris 7a943b7810 Fix Gerald's e-mail address.
svn path=/trunk/; revision=1437
2000-01-07 22:05:43 +00:00
Gilbert Ramirez f94d38cbd3 Fixed the way IPX network name resolution works with name resolution
turned off (the '-n' option), and made it a bit faster by removing
sprintf()'s.

svn path=/trunk/; revision=1088
1999-11-22 06:03:46 +00:00
Gilbert Ramirez 5e649516c9 I've started to figure out the difference between NetBIOS over IPX for
Netware, and NetBIOS over IPX for WinNT (NWLink).

svn path=/trunk/; revision=53
1998-10-14 05:18:32 +00:00
Gilbert Ramirez ec1936b6f1 I removed the ncp code from packet-ipx.c and created packet-ncp.c. Now that
I've started concentrating on the NetWare modules again, packet-ncp.c is going
to start to grow. I also added IPX RIP to packet-ipx.c. Additionally, I added
the END_OF_FRAME macro to packet.h, which is useful for many dissect()
routines. (and I already modified packet-bootp.c and packet-data.c to use this
macro)

svn path=/trunk/; revision=22
1998-09-23 05:25:12 +00:00