Commit Graph

95 Commits

Author SHA1 Message Date
Guy Harris 58df4b6f4a Get the Content-Encoding and Transfer-Encoding headers and, for now,
don't try to dissect the body if there's any special encoding.

svn path=/trunk/; revision=10151
2004-02-21 01:31:56 +00:00
Jörg Mayer 38faa0f27b packet-dcerpc-afs4int.c
svn path=/trunk/; revision=9938
2004-02-01 06:49:25 +00:00
Guy Harris 956837bd3e From Yaniv Kaul: add Shoutcast's ICY as a response(?).
svn path=/trunk/; revision=9745
2004-01-19 23:57:11 +00:00
Ulf Lamping 8020cdf176 splitted some of the preferences texts into more than one line,
to reduce the size of the preferences dialog.
This becoming necessary, as some of the texts were huge

svn path=/trunk/; revision=9693
2004-01-17 12:51:00 +00:00
Olivier Biot 55f9271c3b Add support for MIME multipart dissection.
svn path=/trunk/; revision=9670
2004-01-16 01:32:20 +00:00
Olivier Biot f86edbffa1 Add support for a generic line-based text data dissector.
svn path=/trunk/; revision=9623
2004-01-10 02:38:39 +00:00
Olivier Biot 36e48a3322 Add support for the message/http media type defined in HTTP.
TODO: the HTTP dissector does not deal yet with chunked coding.

svn path=/trunk/; revision=9617
2004-01-09 21:45:29 +00:00
Guy Harris 5eceafcd70 Clean up the blank line handling a bit.
svn path=/trunk/; revision=9515
2004-01-01 23:34:06 +00:00
Guy Harris 75de95e784 Remove redundant protocol names from preference values.
svn path=/trunk/; revision=9505
2003-12-31 09:58:56 +00:00
Guy Harris c6852ab625 If we've seen an HTTP request or response or header line, and the line
we're looking at looks as if it could be the beginning of a header line
but stops at the end of the tvbuff before we see the colon for the
header line, throw an exception rather than treating it as "not HTTP".

svn path=/trunk/; revision=9458
2003-12-28 08:39:10 +00:00
Guy Harris 901a5a6160 Properly handle 1xx, 204, and 304 responses, which don't contain a
message body.

svn path=/trunk/; revision=9457
2003-12-27 18:45:48 +00:00
Guy Harris a777dd9394 Fix some comments.
svn path=/trunk/; revision=9455
2003-12-27 08:35:08 +00:00
Guy Harris d8358e41fc When testing the first line of HTTP data, process what data we have -
don't give up if we don't have the full line.

svn path=/trunk/; revision=9450
2003-12-27 01:42:56 +00:00
Guy Harris 3f05338503 In the loop that processes lines in HTTP requests and replies, loop as
long as there's reported data, don't just loop through the data in the
tvbuff.

Fix some problems with short frames.

svn path=/trunk/; revision=9438
2003-12-24 09:50:54 +00:00
Guy Harris 75d6b95de1 Not all headers in HTTP, RTSP, SIP, etc. are entity headers; rename some
files, routines, data structures, etc..

svn path=/trunk/; revision=9428
2003-12-23 02:29:11 +00:00
Guy Harris f75e257cbd In HTTP-over-TCP, handle more than one HTTP message in a TCP segment.
Don't do that for HTTP-over-UDP, however.

svn path=/trunk/; revision=9427
2003-12-23 02:02:09 +00:00
Guy Harris b7b8245ea5 Process the content length.
svn path=/trunk/; revision=9426
2003-12-23 01:42:48 +00:00
Guy Harris 5b3d2e36e4 Note that we should handle the Content-Length entity header.
svn path=/trunk/; revision=9424
2003-12-23 01:22:52 +00:00
Guy Harris 9ecc68568e Pull the code to do reassembly of the request/response line, entity
headers, and body into a separate routine, for use by other dissectors.

svn path=/trunk/; revision=9402
2003-12-22 00:57:34 +00:00
Guy Harris eb519c3e05 Use a cleanup handler to free the Content-Type header value, so it gets
freed even if we throw an exception after processing the Content-Type
header but before we call a subdissector.

svn path=/trunk/; revision=9191
2003-12-07 03:34:36 +00:00
Guy Harris a8f4f4b924 Change the name of the variable holding the dissector table pointer to
match the previous checkin.

svn path=/trunk/; revision=9190
2003-12-07 03:21:22 +00:00
Guy Harris 36d88b6618 Rename the "http.content_type" dissector table to "media_type", as it's
for use in any dissector that uses Internet media types.

svn path=/trunk/; revision=9189
2003-12-07 03:17:42 +00:00
Guy Harris 5867439498 Content-Type values are case-insensitive; force them to lower case
(subdissectors must register their Content-Type values as
all-lower-case).

Don't include parameters in the value we look up in the Content-Type
subdissector table.

svn path=/trunk/; revision=9000
2003-11-18 08:04:39 +00:00
Guy Harris 270f71cf40 Add an "http.content_type" dissector table,
Process the Content-Type header, and, if one is found, look up its value
in the aforementioned dissector table.

svn path=/trunk/; revision=8999
2003-11-18 07:49:52 +00:00
Guy Harris c4ffda6028 Make a field for the Content-Type entity header, and give it an EH_
value so it can be handled specially (with a string dissector table so
that subdissectors can register for particular content types).

svn path=/trunk/; revision=8903
2003-11-07 03:47:20 +00:00
Guy Harris fbbcf9f9e6 Add a mechanism to handle various entity headers, allowing their
(string) values to be put into the protocol tree as fields and allowing
some headers to get special treatment, and use it for Authorization,
Proxy-Authorization, WWW-Authenticate, and Proxy-Authenticate.

svn path=/trunk/; revision=8892
2003-11-06 08:54:31 +00:00
Guy Harris 82b4c946d1 If we've already constructed a subset tvbuff, don't construct an
identical one and throw away the first one.

svn path=/trunk/; revision=8876
2003-11-04 08:16:02 +00:00
Guy Harris 8d36cda948 From Lo�c Minier: HTTP header and payload desegmentation.
svn path=/trunk/; revision=8786
2003-10-27 09:17:21 +00:00
Guy Harris fdfd8b58af The code in an HTTP reply is a response code, not a response method.
svn path=/trunk/; revision=8346
2003-09-02 23:09:11 +00:00
Guy Harris 75ae0e30c7 From Jean-Michel Fayard: BOOTP/DHCP, HTTP, and WSP statistics taps.
svn path=/trunk/; revision=8345
2003-09-02 22:47:59 +00:00
Guy Harris fd3a3a0436 Get the right length for methods with an "M-" prefix.
svn path=/trunk/; revision=7837
2003-06-11 04:25:30 +00:00
Gilbert Ramirez debac46b66 Add http.request.method field, and a subtree under the HTTP Reqeust in which
to put the field, and any future field extracted from the HTTP Request
record.

svn path=/trunk/; revision=7834
2003-06-10 22:07:18 +00:00
Guy Harris c48ce9b402 From tz: decode the base-64 string for HTTP Basic authorization.
svn path=/trunk/; revision=7764
2003-05-30 03:11:45 +00:00
Tim Potter d3913cfdb1 Move the base64_decode() function somewhere where other dissectors can
use it.

svn path=/trunk/; revision=7723
2003-05-23 05:25:19 +00:00
Guy Harris 1c159b152b Non-ASCII characters can't be part of the name in a MIME header; if we
see one, assume we're dealing with data, not a MIME header.

Spaces are separators.

svn path=/trunk/; revision=7185
2003-02-24 01:17:45 +00:00
Guy Harris 59932f2722 Don't cast away constness, and fix variable and structure member
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
2002-12-02 23:43:30 +00:00
Guy Harris f0f2f07653 Call the NTLMSSP subdissector regardless of whether we're building a
protocol tree or not.

svn path=/trunk/; revision=6583
2002-11-08 05:06:36 +00:00
Guy Harris 103fafbb74 Make a routine to check for NTLMSSP authentication and to do the NTLMSSP
dissection if found, with a table of headers that indicate NTLMSSP
authentication.

Add some more headers to that table.

Constify the code a bit.

svn path=/trunk/; revision=6432
2002-10-15 22:28:35 +00:00
Tim Potter e8acbb4ebf For NTLM over HTTP the header strings can also be 'WWW-Authenticate: Negotiate'
or 'Authorization: Negotiate'.

svn path=/trunk/; revision=6326
2002-09-23 22:45:25 +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
Tim Potter ffa66bc078 Don't free a tvb that we add as a new data source. The NTLMSSP over
HTTP now works a treat!

Thanks again to Guy for the tip.

svn path=/trunk/; revision=5996
2002-08-14 23:34:20 +00:00
Tim Potter 51e4328d8e Fixed memory leak in creation of new tvb for ntlmssp data.
Call tvb_set_child_real_data_tvbuff() and add_new_data_source() to fix
the display problem when dissecting ntlmssp over http packets.  It
works better now, but for some reason the ntlmssp challenge packet is
still not displayed correctly.

Thanks to Guy for the tips.

svn path=/trunk/; revision=5991
2002-08-14 00:40:14 +00:00
Guy Harris 8098166c75 "base64_decode()" returns a "size_t", so make the variable to which that
return value is assigned a "size_t".  (For some reason, the file fails
to compile with MSVC++ 6.0, due to "ssize_t" not being defined, if it's
an "ssize_t", but works if it's a "size_t".)

svn path=/trunk/; revision=5989
2002-08-13 09:10:02 +00:00
Tim Potter c81559ffa3 Oops - forgot to remove debugging printf.
svn path=/trunk/; revision=5984
2002-08-13 05:38:04 +00:00
Tim Potter 510b3b73d7 Call the NTLMSSP dissector when we detect NTLMSSP over HTTP. This is
somewhat documented at http://www.innovation.ch/java/ntlm.html and
other places.

Ethereal handles it nicely, although the hex dump pane gets confused
because we create a new tvb containing base64 decoded data from the
HTTP header.  The hex dump thinks we are still looking at the data
from the packet.  I'm not sure how to fix this.

svn path=/trunk/; revision=5983
2002-08-13 05:36:02 +00:00
Jörg Mayer 173fe5aef4 Replace the types from sys/types.h and netinet/in.h by their glib.h
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-08-02 23:36:07 +00:00
Guy Harris 47b147ffd1 Add an extra argument to "tvb_find_line_end()", which specifies what it
should do if it doesn't find an EOL; if FALSE, it behaves as before,
returning values that treat the line as ending at the end of the tvbuff,
and if TRUE, it returns -1, so its caller can do segment reassembly
until it gets the EOL.

Add an option to the SMTP dissector to do segment reassembly, and do
segment reassembly of the first line.

svn path=/trunk/; revision=5891
2002-07-17 06:55:29 +00:00
Guy Harris 4401f1433f Don't pass "tvb_reported_length_remaining(tvb, offset)" as the fourth
argument to "tvb_new_subset()" - just use -1 if the subset tvbuff is to
run to the end of the parent tvbuff.

svn path=/trunk/; revision=5597
2002-05-30 01:56:55 +00:00
Guy Harris f969aba211 WebDAV support, and rewrite of the method-testing code to compute the
method length and use that in all comparisons, from Blair Cooper.

Fix the check for "M-" to check also whether there are at least two
characters in the line.

svn path=/trunk/; revision=5071
2002-04-01 21:12:31 +00:00
Guy Harris eb2d6593dc Replace a bunch of "tvb_length()" and "tvb_length_remaining()" calls in
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-24 09:20:54 +00:00