Commit graph

97 commits

Author SHA1 Message Date
Olivier Biot
9e77ad2862 From Jerry Talkington:
- Dissect chunked transfer-coded body in HTTP
- Update email address

svn path=/trunk/; revision=10710
2004-04-26 17:10:40 +00:00
Guy Harris
373572be13 Put in a comment noting a possible memory leak.
svn path=/trunk/; revision=10588
2004-04-12 22:14:37 +00:00
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