aboutsummaryrefslogtreecommitdiffstats
path: root/smb.h
AgeCommit message (Collapse)AuthorFilesLines
2001-11-28If a request has already been processed, and we fail to find itsGuy Harris1-1/+2
"smb_saved_info_t" in the table of requests whose replies have been found, don't look it up in the table of requests whose replies have not been found - if the request in question has no reply in the capture, that may find some later frame in the same conversation with the same MID, and we don't need that information anyway - the only reason we *need* that structure is to save information in it for use when processing its reply, and we already did that the first time we processed the request. (The information for the later frame may be bad, e.g. having a null "extra_info" pointer, or having one that points to information for another request.) Arrange that we don't use the pointer to the "smb_saved_info_t" when processing a request except to save information if the request hasn't already been processed, as that pointer may not be valid if the request has already been processed, as per the above. svn path=/trunk/; revision=4292
2001-11-21Discard stuff in "smb.h" not used by the dissectors, and replace theGuy Harris1-496/+76
#defines for SMB commands with ones that use the names from the SNIA CIFS spec. Use those #define values rather than hardcoded values in various places that check for specific commands. svn path=/trunk/; revision=4244
2001-11-20Dissect the rest of the named pipe protocol. Export from "packet-smb.c"Guy Harris1-1/+13
routines used for that. Rename some named pipe functions as per the SNIA CIFS spec. Label the "number of files moved" field of the reply to a Move SMB as such, rather than as an unspecified "Count". svn path=/trunk/; revision=4229
2001-11-20Save the function code and FID for pipe requests, and use it for theGuy Harris1-2/+4
matching responses. svn path=/trunk/; revision=4228
2001-11-19Pass, as the first tvbuff argument to "dissect_mailslot_smb()" andGuy Harris1-2/+7
"dissect_pipe_smb()", a tvbuff containing the setup words and the pipe/mailslot pathname, as those are arguably the part of the packet that contains the "mailslot protocol" and the "pipe protocol", as opposed to the protocol running atop mailslots or pipes. Pass a setup tvbuff to "dissect_pipe_smb()" for it to pass on to the MSRPC-over-named-pipe dissector, and have the setup tvbuff passed to it and "dissect_mailslot_smb()" contain *only* the setup words; don't extract anything other than the setup words from it. Declare "register_proto_smb_mailslot()" in "packet-smb-mailslot.h" rather than "packet-smb.c", and declare "register_proto_smb_pipe()" in "packet-smb-pipe.h" rather than "packet-smb.c". Add a protocol for MSRPC-over-named-pipes. Move the stuff to handle the FID in the setup words of MSRPC-over-named-pipe transactions out of the SMB Transaction dissector into the MSRPC dissector. Add a routine to "packet-smb.c", callable from outside "packet-smb.c", to put an "smb.fid" field into the protocol tree, and to add ", FID: XXXX" to the Info column, for use by the MSRPC-over-named-pipe dissector; use it in the SMB dissector as well, in all the places where we put a FID into the protocol tree. Move the stuff to check whether the LANMAN protocol is enabled, and to set "pinfo->current_proto" to "LANMAN" if it is, into the LANMAN API-over-named-pipe dissector out of the named pipe protocol dissector. If we didn't dissect a Transaction request or reply as a named pipe or mailslot message, put any setup words, parameters, and data it has into the protocol tree as separate items. Don't put a "Response in" item into the protocol tree for an NT Cancel request, as there are no responses to NT Cancel requests. svn path=/trunk/; revision=4221
2001-11-18From Tim Potter: use the FID, for DCE RPC-over-SMB, as part of theGuy Harris1-1/+2
conversation matching. svn path=/trunk/; revision=4220
2001-11-18Pass in the "smb_info" structure a pointer to the "smb_saved_info_t"Guy Harris1-3/+11
structure, so that it can be updated by subdissectors; this way the updates affect the structure immediately, and don't get lost if the subdissector later throws an exception. Use "tvb_reported_length()" to check for an interim mailslot reply; "tvb_length()" could give the wrong answer if a short snapshot length was given in the capture. svn path=/trunk/; revision=4218
2001-11-18Have only the request and response frame numbers, and a "void *", in anGuy Harris1-23/+23
"smb_saved_info_t". Put all the information needed to dissect NT Transaction replies, Transaction2 replies, or Transaction replies into separate data structures, allocated separately, and put a pointer to that data structure in the "void *" in question. Use the return value of "dissect_pipe_smb()" and "dissect_mailslot_smb()" to control whether to display as data the stuff those routines were asked to dissect. If we've seen a request before, but its "smb_saved_info_t" isn't in the "matched" hash table, look in the "unmatched" hash table - perhaps we haven't seen the reply yet. svn path=/trunk/; revision=4216
2001-11-16Cleanup of request/response matching, from Ronnie Sahlberg.Guy Harris1-25/+4
Get rid of "Response to" stuff in the LANMAN dissector, as that's now done in the SMB dissector. Add a routine for dissecting unknown SMBs (gets the word and byte counts, and just adds text entries for the word and byte parameters, if any), and replace null pointers in the dissector table with pointers to that routine. Get rid of the check for a null dissector pointer. svn path=/trunk/; revision=4212
2001-11-15Tvbuffification of Transaction requests, from Ronnie Sahlberg.Guy Harris1-6/+6
"Send buffer pointer" and "send buffer length" items appear not to be sent over the wire. Add support for Write And X. svn path=/trunk/; revision=4204
2001-11-12Transaction2 tvbuffified, and support added for many Transaction2 SMBs,Guy Harris1-1/+3
from Ronnie Sahlberg. Various other bug fixes, cleanups, and other improvements. svn path=/trunk/; revision=4193
2001-11-08NT Transact dissection, from Ronnie Sahlberg.Guy Harris1-1/+2
svn path=/trunk/; revision=4178
2001-11-03First tvbuffication change, from Ronnie Sahlberg. Also changes SMBGuy Harris1-4/+10
command names to match later SMB specs. svn path=/trunk/; revision=4138
2001-08-27Squelch some compiler warnings.Guy Harris1-4/+4
svn path=/trunk/; revision=3874
2001-08-27Use the descriptor strings when dissecting remote APIs; this lets usGuy Harris1-2/+4
handle null pointer entries, and lets us make the dissection of those APIs more table-driven. svn path=/trunk/; revision=3873
2001-08-11Keep track of transaction replies that have continuations, and associateGuy Harris1-1/+20
continuations with the message to which they're a continuation. svn path=/trunk/; revision=3834
2001-08-07Tvbuffified SMB mailslot protocol dissector, from Ronnie Sahlberg.Guy Harris1-1/+2
svn path=/trunk/; revision=3832
2001-08-05Remote API protocol (that seems to be what it's called in a number ofGuy Harris1-1/+6
places) dissector tvbuffified, from Ronnie Sahlberg and me. Additional "are we past the end of the buffer" checks added, so that we don't hand random junk to the transaction and transact2 dissectors. svn path=/trunk/; revision=3824
2001-08-05Add a request/response flag to the "struct smb_info" structure, and useGuy Harris1-4/+5
that rather than passing another copy of that flag to dissectors of particular messages. Pass that structure to the pipe subdissector by making "pi.private" point to it, rather than by passing it as an explicit argument. Change more of the if (dirn == 1) { ... } if (dirn == 0) { ... } stuff to if (dirn == 1) { ... } else { ... } and then, as per the first paragraph, check the "request" flag in the "smb_info" structure rather than checking a "dirn" flag. Set "last_transact2_command" to -1 in the "smb_request_val" structures for TRANSACTION requests, as it doesn't apply to those requests. As "dissect_transact_params()" doesn't do any work if the "TransactName" argument is null, don't bother calling it for a reply if we don't have an "smb_request_val" for the corresponding request, as that means we can't find out the value to pass as the "TransactName" argument. svn path=/trunk/; revision=3822
2001-08-04Use "val_to_str()" to convert TRANSACT2 transaction codes to strings.Guy Harris1-7/+2
(This fixes an incorrect string for TRANS2_GET_DFS_REFERRAL, which has the code 0x10 according to the current SNIA CIFS draft spec; I've seen those in packet captures.) Create entries in the transaction hash tables only for requests, not for replies; this means a reply might not have an entry in the table, if the request didn't appear in the capture, so handle that case. Make the "last_transact2_command" field of a "smb_request_val" structure an "int", so it can be given the value -1, which is different from all the valid 16-bit unsigned values, to indicate that we couldn't get the transaction code from the request (e.g., because it's too short). Show the first Setup word in a TRANSACT2 request as the transaction code, as that's what it is. "dirn" is a Boolean, so if (dirn == 1) { ... } if (dirn == 0) { ... } is equivalent to if (dirn == 1) { ... } else { ... } and the latter is a bit clearer, so use it. Distinguish between a TRANSACTION or TRANSACT2 reply where we didn't see the request and one where we saw the request but didn't see the request path for TRANSACTION or the request code for TRANSACT2. Use "g_strdup()" rather than "g_malloc()" followed by "strcpy()". svn path=/trunk/; revision=3819
2001-08-02The "mid" field of the "smb_request_val" structure isn't used; eliminateGuy Harris1-2/+1
it. svn path=/trunk/; revision=3810
2001-01-29Added a new error code I just found ... no such share.Richard Sharpe1-1/+2
svn path=/trunk/; revision=2956
2000-02-14Jeff Foster's SMB Mailslot and Netlogin dissectors; he splitGuy Harris1-1/+19
"packet-smb.c" up into several files. svn path=/trunk/; revision=1629
2000-01-07Fix Gerald's e-mail address.Guy Harris1-2/+2
svn path=/trunk/; revision=1437
1999-07-13Added support for compiling on win32 with Visual C and 'nmake'. It compiles,Gilbert Ramirez1-1/+6
but does not link. Perhaps someone who understands the MS tools can help out. I made it link a few months ago, but with different version of glib/gtk+. I can't remember how I made it link. Most of the compatibility issues were resolved with adding #ifdef HAVE_UNISTD_H the the source code. Please be sure to add this to all future code. svn path=/trunk/; revision=359
1999-05-11Add some SMB codes and error codes from theGuy Harris1-1/+4
"draft-leach-cifs-v1-spec-01.txt" CIFS Internet draft. svn path=/trunk/; revision=274
1999-05-09Added new files for SMB decode: packet-smb.c, alignment.h, smb.hRichard Sharpe1-0/+626
svn path=/trunk/; revision=259