1. Some NCP's that displayed the file/directory path in the
summary window would display blank lines on Windows based
machines. This was due to unicode or non-displayable
characters contained in the character string being added to
the column data. I made a change to format/strip out
non-displayable characters prior to adding to the column
data.
2. Moved ncp_req_hash_value struct to packet-ncp-int.h so that
I can use it within a future dissector (NMAS).
Clean up white space.
svn path=/trunk/; revision=7560
1. Added a number of NCP Error return values.
2. Added ability to pass byte strings to summary window.
3. Modified file NCP's to reflect file handle in summary window.
4. Changed all NCP's using QueueID from big endian to little endian.
This is different from Novell's NCP documentation but matches same
information obtained from NDS dissector.
5. Added over 50 more NDS error return values.
6. Partially fixed NDS Request verb 6 (Search Entries)
svn path=/trunk/; revision=7172
adding 1 to them is incorrect (and cannot possibly be correct, as that'd
rule out 0 as valid values, meaning nothing can ever happen in the first
hour after midnight or in the first minute after the hour).
svn path=/trunk/; revision=7099
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
Various NDS dissector enhancements including NDS verb 0x07, and
proper ping flags for NDS ping version 10 request.
Updated error codes for several NCP reply packets.
NDPS enhancements.
svn path=/trunk/; revision=6463
constant, as that won't work with "get_string()" (it'll try to overwrite
the constant, and either crash, trash memory, or both).
svn path=/trunk/; revision=6460
Clean up the stuff to handle MVTYPE_PROC_ENTRY_SPECIFIERS a bit, and put
in comments explaining what's going on for that and MVTYPE_ATTR_REQUEST.
svn path=/trunk/; revision=6439
just wrap the entire dissection in an "if", as was done before.
(Actually, we can just skip the "if" entirely, I guess....)
svn path=/trunk/; revision=6429
whether we're building a protocol tree or not.
Set the separator if we put "Revision" into the summary.
Check for a remaining length >= 8, not > 8, to check for an NDS version
10 or later ping, and check the reported length, not the captued length.
svn path=/trunk/; revision=6428
longest possible flag string.
Don't create a temporary protocol tree unless we're not filling in a
protocol tree.
The NDS version isn't present in NDS pings prior to version 10; dissect
it only if it's present.
svn path=/trunk/; revision=6412
"dissect_ncp_request()".
Fix "dissect_ping_req()" to properly put the NDS version in a ping
request into the tree (although that field isn't present in the ping
requests I've seen, so perhaps it's only in NDS version 10 and later),
as big-endian (change FALSE to TRUE if it's little-endian).
Get rid of the unused "ncp_nds_verb" variable (set, but not used) in
"dissect_ncp_common()".
Call "dissect_ping_req()" from "dissect_ncp_common()" again.
svn path=/trunk/; revision=6411
string, it's a tree name (as the field's display name suggests).
Get rid of the unused "ncp.nds_string_value" field.
Fix up the names of some fields, and use "proto_tree_add_uint()" rather
than "proto_tree_add_uint_format()" to add them to the protocol tree.
svn path=/trunk/; revision=6408
list, check whether the protocol field is enabled, not whether the info
field is enabled. Update the protocol field before trying to look at
the packet, so it gets updated even for short packets.
Only parse service reply packets as NDS packets; don't parse positive
ack packets that way.
svn path=/trunk/; revision=6404
the string for the completion code. Do put the string for the NDS error
into the summary line, however.
Don't clear the NDS error code if we can't translate it to a string.
svn path=/trunk/; revision=6400
crashes on many platforms, and other random behavior on others.
Don't create a temporary tree with an NCP tree underneath it if we
already have an NCP tree; we don't want the results of a dissection to
be stuck in an invisible temporary tree if we're supposed to be
generating a protocol tree.
svn path=/trunk/; revision=6399
can compile the code.
Note that Bill Fumerola rewrote the Cisco NetFlow dissector.
Update a bunch of addresses in the Ethereal man page, and put some
missing addresses in.
svn path=/trunk/; revision=6380
This update adds NCP 87/66.
Also add additional error codes, added hf_definition for super class
(NDS). Cleaned up some unused variables (Warnings when building
Ethereal). Fixed NCP type 0x9999 (server busy packets to echo
information to summary information), Added subtree format to NDS
dissector to cleanup display.
svn path=/trunk/; revision=6331
without having to know the numerical values for the verbs.
Use that table to convert the verb value to a verb name.
Fix indentation.
svn path=/trunk/; revision=6075
1. Secret Store Services (NCP 94) (ncp2222.py)
2. NMAS (NCP 92) (ncp2222.py)
3. NDS information in summary screen (packet-ncp.c & packet-ncp2222.inc)
4. Sever broadcast packets (NCP type 0xbbbb) to notify workstation to clear op-lock (packet-ncp.c)
5. Large Internet Packets (LIP) (packet-ncp.c)
6. Unicode Support. (unicode_to_string function in packet-ncp2222.inc & ncp2222.py)
svn path=/trunk/; revision=6069
them in "packet-ncp2222.inc".
The page at
http://www.odyssea.com/whats_new/tcpipnet/tcpipnet.html
indicates that a positive ACK (0x9999) NCP packet has the same
completion code and connection status fields as a reply (0x3333) packet
(but nothing after them); hand "dissect_ncp_reply()" the packet type as
one of its arguments, and have it handle positive ACK packets as well as
reply packets.
It also indicates that bit 4 of the connection status indicates that the
server is unavailable, and the page at
http://www.unm.edu/~network/presentations/course/appendix/appendix_f/tsld088.htm
speaks of that and of the significance of other bits; put a comment in
"ncp2222.py", before the "hf_ncp_connection_status" field, about that.
From looking at a capture, it appears that a "destroy service
connection" (0x5555) packet should be treated like a "create service
connection" (0x1111) packet and be handed to "dissect_ncp_request()".
Note that perhaps watchdog packets should be handled by
"dissect_ncp_reply()" as well.
svn path=/trunk/; revision=5489
A little work still needs to be done on the new NCP dissector -- make
some of the COL_INFO texts more useful, handle a Unicode issue, and
modify some of the cases that use "request conditions".
But the NCP dissector as it stands is very usable now.
Note: I didn't merge in the PROTO_LENGTH_UNTIL_END macro... I wanted
to think about the various possible macros and review an email conversation
I had with Guy on the subject.
svn path=/trunk/; revision=5432
sub-trees, I added new functions to ptvcursor:
ptvcursor_add_no_advance()
ptvcursor_tvbuff()
ptvcursor_current_offset()
Note that no NCP type that actually uses bitfields has been
checked in yet.
svn path=/trunk/; revision=4509
variables wrap-around. Since the request/reply packets are related via
a hash based on these uniqueness variables, long NCP traces can
have mis-matches reqeust/reply records.
Thus, only do the hash-lookup for the reply packet during the first
sequential scan of the trace file. Once the pertinent info is found,
store it in the packet's private data area.
Since the memory allocated for the hash and for the structures that make
up the keys are no longer needed after the first sequential run through
the trace file, arrange to free that memory after the first sequential
run. Similar to the register_init_routine() that allows dissectors
to register callbacks for calling *before* a capture file is loaded,
set up a register_postseq_cleanup_routine() function that allows
dissectors to register callbacks for calling *after* the first
sequential run-through of the trace file is made. This is not
a *final* cleanup callback, since Ethereal will still have that trace file
open for random-access reading.
I didn't have tethereal call postseq_cleanup_all_protocols() since
tethereal doesn't keep the trace file open for random-access reading.
I could easily be swayed to make tethereal call that function, however.
svn path=/trunk/; revision=4484
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