aboutsummaryrefslogtreecommitdiffstats
path: root/packet-smb-browse.c
AgeCommit message (Collapse)AuthorFilesLines
2004-01-19char *drep -> guint8 *drepJörg Mayer1-6/+6
svn path=/trunk/; revision=9735
2004-01-10Eliminate "alignment.h" header - the stuff in it is no longer used.Guy Harris1-2/+1
svn path=/trunk/; revision=9625
2003-11-19"dissect_mailslot_browse()", "dissect_mailslot_lanman()", andGuy Harris1-9/+5
"dissect_smb_logon()" always return TRUE, so just get rid of their return value. "call_dissector()" automatically calls the data dissector if the protocol for the dissector being called is disabled, so we don't have to check its result and call the data dissector if it returns 0. svn path=/trunk/; revision=9027
2003-11-16Export "protocol_t" as an opaque type.Guy Harris1-15/+8
Make "proto_is_protocol_enabled()" and "proto_get_protocol_short_name()" take a "protocol_t *" as an argument, so they don't have to look up the "protocol_t" - this will probably speed them up considerably, and they're called on almost every dissector handoff. Get rid of a number of "proto_is_protocol_enabled()" calls that aren't necessary (dissectors called through handles, including those called through dissector tables, or called as heuristic dissectors, aren't even called if their protocol isn't enabled). Change some direct dissector calls to go through handles. svn path=/trunk/; revision=8979
2003-09-03Don't include <epan/conversation.h> if you don't need it.Guy Harris1-2/+1
svn path=/trunk/; revision=8361
2003-06-12Add new routines:Guy Harris1-10/+4
tvb_get_string() - takes a tvbuff, an offset, and a length as arguments, allocates a buffer big enough to hold a string with the specified number of bytes plus an added null terminator (i.e., length+1), copies the specified number of bytes from the tvbuff, at the specified offset, to that buffer and puts in a null terminator, and returns a pointer to that buffer (or throws an exception before allocating the buffer if that many bytes aren't available in the tvbuff); tvb_get_stringz() - takes a tvbuff, an offset, and a pointer to a "gint" as arguments, gets the size of the null-terminated string starting at the specified offset in the tvbuff (throwing an exception if the null terminator isn't found), allocates a buffer big enough to hold that string, copies the string to that buffer, and returns a pointer to that buffer and stores the length of the string (including the terminating null) in the variable pointed to by the "gint" pointer. Replace many pieces of code allocating a buffer and copying a string with calls to "tvb_get_string()" (for one thing, "tvb_get_string()" doesn't require you to remember that the argument to "tvb_get_nstringz0()" is the size of the buffer into which you're copying the string, which might be the length of the string to be copied *plus 1*). Don't use fixed-length buffers for null-terminated strings (even if the code that generates those packets has a #define to limit the length of the string). Use "tvb_get_stringz()", instead. In some cases where a value is fetched but is only used to pass an argument to a "proto_tree_add_XXX" routine, use "proto_tree_add_item()" instead. svn path=/trunk/; revision=7859
2003-04-30Modify tvb_get_nstringz*() to behave more like snprintf(). Make changesGerald Combs1-2/+2
where necessary to reflect the new behavior. svn path=/trunk/; revision=7607
2003-03-24Fix up the parsing of browser rest messages.Richard Sharpe1-7/+47
svn path=/trunk/; revision=7360
2003-03-21Add support for the missing ResetBrowserState announcement inRichard Sharpe1-1/+23
packet-smb-browse.c svn path=/trunk/; revision=7357
2003-02-20At least in regular SMB Browse and RAP messages, the server type mask isGuy Harris1-8/+25
not guaranteed to be aligned on a 4-byte boundary, so, if we're not dissecting a DCE RPC request or reply, don't use "dissect_ndr_uint32()" to extract the access mask. svn path=/trunk/; revision=7175
2003-02-17Dissect the server type bitfield in NetServerGetInfo for SERVER_INFO_101Tim Potter1-15/+19
and SERVER_INFO_102. Modify all callers to use the new interface. svn path=/trunk/; revision=7158
2003-01-30Put the computer_name in COL_INFO when dissecting aTim Potter1-2/+15
BROWSE_REQUEST_ANNOUNCE packet. svn path=/trunk/; revision=7036
2002-08-28Removed trailing whitespaces from .h and .c files using theJörg Mayer1-45/+45
winapi_cleanup tool written by Patrik Stridvall for the wine project. svn path=/trunk/; revision=6117
2002-08-02Replace the types from sys/types.h and netinet/in.h by their glib.hJörg Mayer1-9/+1
equivalents for the toplevel directory. The removal of winsock2.h will hopefully not cause any problems under MSVC++, as those files using struct timeval still include wtap.h, which still includes winsock2.h. svn path=/trunk/; revision=5932
2002-04-30Get rid of some unused arguments, and mark some others as unused.Guy Harris1-7/+7
Remove the declaration of "dissect_nt_sid()" from "packet-dcerpc-samr.c"; get it by including "packet-smb-common.h", instead. svn path=/trunk/; revision=5313
2002-01-24Replace a bunch of "tvb_length()" and "tvb_length_remaining()" calls inGuy Harris1-3/+3
arguments to "proto_tree_add_text()", and to "proto_tree_add_XXX()" calls that add FT_NONE or FT_PROTO items to the protocol tree, with -1. Replace some calls to "tvb_length()" or "tvb_length_remaining()" with calls to "tvb_reported_length()" and "tvb_reported_length_remaining()", as those give the actual length of the data in the packet, not just the data that happened to be captured. svn path=/trunk/; revision=4605
2002-01-21Include files from the "epan" directory and subdirectories thereof withGuy Harris1-3/+3
"epan/..." pathnames, so as to avoid collisions with header files in any of the directories in which we look (e.g., "proto.h", as some other package has its own "proto.h" file which it installs in the top-level include directory). Don't add "-I" flags to search "epan", as that's no longer necessary (and we want includes of "epan" headers to fail if the "epan/" is left out, so that we don't re-introduce includes lacking "epan/"). svn path=/trunk/; revision=4586
2001-12-10Move the pointer to the "column_info" structure in the "frame_data"Guy Harris1-19/+19
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
2001-11-19Make the register routines for the mailslot, pipe, browser, andGuy Harris1-2/+2
mailslot-based logon protocols just be regular register routines, detected by the script that generates the "register.c" file, rather than special stuff known to the SMB dissector. svn path=/trunk/; revision=4222
2001-08-05Remote API protocol (that seems to be what it's called in a number ofGuy Harris1-12/+20
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-01Put in the right URL for the browser spec on the Samba site.Guy Harris1-5/+5
The periodicity in \MAILSLOT\LANMAN browser packets appears to be in seconds, not milliseconds. svn path=/trunk/; revision=3805
2001-08-01Packets sent to \MAILSLOT\LANMAN appear to be browser announcements (forGuy Harris1-41/+137
an older version of the protocol than the one for packets sent to \MAILSLOT\BROWSE), rather than being LANMAN pipe packets. svn path=/trunk/; revision=3803
2001-07-30Use "tvb_strsize()" rather than "tvb_strnlen()" to get the sizeGuy Harris1-80/+8
(including the terminating null byte) of a null-terminated string; it includes the terminating null in the count, and throws an exception if the string goes past the end of the tvbuff, so we don't have to do either of those ourselves. svn path=/trunk/; revision=3797
2001-07-20Get rid of some unused variables.Guy Harris1-2/+1
svn path=/trunk/; revision=3744
2001-07-13Set "pinfo->current_proto" in the browsser dissector.Guy Harris1-19/+67
Set the protocol and info columns before fetching anything that might cause an exception. Add some more different fields for the different types of host names in browser packets. Force an exception to be thrown if there's no NUL terminator for a name in the tvbuff. svn path=/trunk/; revision=3711
2001-07-13Add a "time_msecs_to_str()" routine, to turn a time interval, expressedGuy Harris1-5/+9
as a 32-bit number of milliseconds, to a descriptive string. Use that in the MS Browser dissector. svn path=/trunk/; revision=3708
2001-07-13The 2 bytes in the middle of the election criteria field of an electionGuy Harris1-16/+35
request are the major and minor versions of the browser protocol. The 4 bytes that, in announcements other than domain/workgroup announcements, are the major and minor versions of the browser protocol and the signature constant, are something else mysterious in domain/workgroup announcements; stuff them in as a "Mysterious Field" for now. svn path=/trunk/; revision=3707
2001-07-12Tvbuffified SMB BROWSER dissector, from Ronnie Sahlberg.Guy Harris1-422/+826
svn path=/trunk/; revision=3706
2001-03-18Move the declaration of routines exported from "packet-smb-browse.c"Guy Harris1-8/+13
into a "packet-smb-browse.h" header file, and have modules that import those routines include "packet-smb-browse.h" rather than declaring the routines themselves; do the same for routines exported from "packet-smb-logon.c". Make routines and arrays not exported static, and make routines that return a true/false return value "gboolean" rather than "guint32". svn path=/trunk/; revision=3147
2001-01-03Have "proto_register_protocol()" build a list of data structures forGuy Harris1-2/+3
protocols, in addition to adding structures to the list of filterable fields. Give it an extra argument that specifies a "short name" for the protocol, for use in such places as pinfo->current_proto; the dialog box for constructing filters; the preferences tab for the protocol; and so on (although we're not yet using it in all those places). Make the preference name that appears in the preferences file and the command line for the DIAMETER protocol "diameter", not "Diameter"; the convention is that the name in question be all-lower-case. Make some routines and variables that aren't exported static. Update a comment in the ICP dissector to make it clear that the dissector won't see fragments other than the first fragment of a fragmented datagram. svn path=/trunk/; revision=2810
2000-11-19For each column, have both a buffer into which strings for that columnGuy Harris1-3/+3
can be put, and a pointer to the string for the column, which might or might not point to that buffer. Add a routine "col_set_str()", which sets the string for the column to the string passed to it as an argument; it should only be handed a static string (a string constant would be ideal). It doesn't do any copying, so it's faster than "col_add_str()". Make the routines that append to columns check whether the pointer to the string for the column points to the buffer for the column and, if not, copy the string for the column to the buffer for the column so that you can append to it (so you can use "col_set_str()" and then use "col_append_str()" or "col_append_fstr()"). Convert a bunch of "col_add_str()" calls that take a string constant as an argument to "col_set_str()" calls. Convert some "col_add_fstr()" calls that take a string constant as the only argument - i.e., the format string doesn't have any "%" slots into which to put strings for subsequent arguments to "col_set_str()" calls (those calls are just like "col_add_str()" calls). Replace an END_OF_FRAME reference in a tvbuffified dissector with a "tvb_length(tvb)" call. svn path=/trunk/; revision=2670
2000-08-13Add the "Edit:Protocols..." feature which currently only implementsLaurent Deniel1-1/+4
the following: It is now possible to enable/disable a particular protocol decoding (i.e. the protocol dissector is void or not). When a protocol is disabled, it is displayed as Data and of course, all linked sub-protocols are disabled as well. Disabling a protocol could be interesting: - in case of buggy dissectors - in case of wrong heuristics - for performance reasons - to decode the data as another protocol (TODO) Currently (if I am not wrong), all dissectors but NFS can be disabled (and dissectors that do not register protocols :-) I do not like the way the RPC sub-dissectors are disabled (in the sub-dissectors) since this could be done in the RPC dissector itself, knowing the sub-protocol hfinfo entry (this is why, I've not modified the NFS one yet). Two functions are added in proto.c : gboolean proto_is_protocol_enabled(int n); void proto_set_decoding(int n, gboolean enabled); and two MACROs which can be used in dissectors: OLD_CHECK_DISPLAY_AS_DATA(index, pd, offset, fd, tree) CHECK_DISPLAY_AS_DATA(index, tvb, pinfo, tree) See also the XXX in proto_dlg.c and proto.c around the new functions. svn path=/trunk/; revision=2267
2000-05-31Add routines for adding items to a protocol tree that take arguments ofGuy Harris1-2/+2
a particular type, rather than taking a varargs list, along the lines of the "proto_tree_add_XXX_format()" routines. Replace most calls to "proto_tree_add_item()" and "proto_tree_add_item_hidden()" with calls to those routines. Rename "proto_tree_add_item()" and "proto_tree_add_item_hidden()" to "proto_tree_add_item_old()" and "proto_tree_add_item_hidden_old()", and add new "proto_tree_add_item()" and "proto_tree_add_item_hidden()" routines that don't take the item to be added as an argument - instead, they fetch the argument from the packet whose tvbuff was handed to them, from the offset handed to them. svn path=/trunk/; revision=2031
2000-05-11Add tvbuff class.Gilbert Ramirez1-68/+68
Add exceptions routines. Convert proto_tree_add_*() routines to require tvbuff_t* argument. Convert all dissectors to pass NULL argument ("NullTVB" macro == NULL) as the tvbuff_t* argument to proto_tree_add_*() routines. dissect_packet() creates a tvbuff_t, wraps the next dissect call in a TRY block, will print "Short Frame" on the proto_tree if a BoundsError exception is caught. The FDDI dissector is converted to use tvbuff's. svn path=/trunk/; revision=1939
2000-04-08Minor update to SMB browse display code ...Richard Sharpe1-2/+2
svn path=/trunk/; revision=1821
2000-02-14Jeff Foster's SMB Mailslot and Netlogin dissectors; he splitGuy Harris1-0/+582
"packet-smb.c" up into several files. svn path=/trunk/; revision=1629