1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-28 07:20:58 +03:00
Commit Graph

401 Commits

Author SHA1 Message Date
Jeff Trawick
e935210c99 Simplify the call to ap_send_fd().
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86888 13f79535-47bb-0310-9956-ffa450edef68
2000-11-09 13:36:01 +00:00
Greg Stein
820d6de59c byterange handling simply did not work for internal redirects.
(e.g. fetch /foo/ which redirects to /foo/index.html)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86883 13f79535-47bb-0310-9956-ffa450edef68
2000-11-09 10:45:01 +00:00
Greg Stein
6838403b9e minor tweaks, cleanup, comments.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86882 13f79535-47bb-0310-9956-ffa450edef68
2000-11-09 10:21:12 +00:00
Ryan Bloom
07390aa8cf Use the content-length filter to compute the content-length for byterange
requests.  This allows the byterange filter to work with the PDF plug-in.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86880 13f79535-47bb-0310-9956-ffa450edef68
2000-11-09 03:33:24 +00:00
Ryan Bloom
8dca57cccd The content-length filter needs to compute the length even if the
content-length has already been set.  If we don't, then we won't know if
the content-length has changed because some other filter changed the
length of the actual data.  We also ALWAYS want to calculate the content
length if we get the whole brigade in the first call to this function.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86879 13f79535-47bb-0310-9956-ffa450edef68
2000-11-09 03:00:00 +00:00
Ryan Bloom
4ee1d8eb59 Remove BUFF from the main server. :-) The buff code needs to remain as
a part of the server until the proxy is purged of BUFF however.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86878 13f79535-47bb-0310-9956-ffa450edef68
2000-11-09 00:37:06 +00:00
Jeff Trawick
b0f2ef3556 In the content-length+bytes-sent filter, only set the content length
if we decided to do so initially *and* we've seen all the data.

Prior to this change, for a http/1.1 request to mod_autoindex, the
unconditional call to ap_set_content_length() gave us the wrong
value (only taking into account the first brigade) and disabled
chunking.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86874 13f79535-47bb-0310-9956-ffa450edef68
2000-11-08 20:00:35 +00:00
David Reid
ee4d19790d This adds the APR_LOCAL/APR_REMOTE to APR and changes the apr_get/set_port
functions to use it.  This is onyl the start and I'll pause a while before
I continue in case people really hate this.  The patch can be backed out and
all evidence will be removed, but I think this makes maintaining/developing
the code easier in the long term.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86870 13f79535-47bb-0310-9956-ffa450edef68
2000-11-08 14:47:33 +00:00
David Reid
73a6c4c81f Doh! Missed this from the last commit...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86868 13f79535-47bb-0310-9956-ffa450edef68
2000-11-08 11:48:09 +00:00
David Reid
33aabfee3f Start of moving to apr_port_t in the server code. This will probably the first
of a few...


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86866 13f79535-47bb-0310-9956-ffa450edef68
2000-11-08 11:35:38 +00:00
Greg Stein
2b00b3a71c fix the byterange filter.
there is still some bogosity in there (huge buffer allocs!), and some
optimizations to be made, but this appears to fix byterange handling.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86865 13f79535-47bb-0310-9956-ffa450edef68
2000-11-08 11:22:07 +00:00
Ryan Bloom
16d27f0da6 The byte-ranges filter. This looks like it should work, but the
Acrobat plug-in doesn't like it for some reason.  This does work better
than what we currently have, because at least it returns all of the
requested data.  This basically removes all BUFFs from the byte-range
code and removes all of the byte-range code from the default-handler.

Byte-ranges are now handled by a filter, which makes sense, and it allows
us to handle byte-ranges for all requests, not just files.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86864 13f79535-47bb-0310-9956-ffa450edef68
2000-11-08 06:24:47 +00:00
Ryan Bloom
0225f3424a Fix a compile break. ap_set_content_length is a void function now, so we
can't check the return code.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86862 13f79535-47bb-0310-9956-ffa450edef68
2000-11-08 02:46:00 +00:00
Greg Stein
754480fd2d Use apr_off_t for the content length, rather than long. Propagate through
the byterange handling and ap_set_content_length().

[ ap_each_byterange() remains as an apr_size_t* so we don't mess up callers ]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86860 13f79535-47bb-0310-9956-ffa450edef68
2000-11-07 22:41:09 +00:00
Ryan Bloom
134dbc9e7a Convert a lot of apr_ssize_t to apr_size_t. We don't ever accept or return
signed values in these integers, and we return the error codes directly,
so we should always report the number of bytes read/written correctly.  If
we have an error, that is 0 bytes.  If that is true, then using signed
values doesn't make any sense.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86857 13f79535-47bb-0310-9956-ffa450edef68
2000-11-07 20:21:55 +00:00
Ryan Bloom
b6f8c9c68a Remove the original ap_send_fd code. The filters have been working for a
while, and this is cluttering up the code.  If it is really needed, it
can be found in CVS


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86856 13f79535-47bb-0310-9956-ffa450edef68
2000-11-07 18:09:47 +00:00
Jeff Trawick
4cb7090063 Get rid of unused variable zero in ap_send_http_options().
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86854 13f79535-47bb-0310-9956-ffa450edef68
2000-11-07 12:18:45 +00:00
Ryan Bloom
d6cf339824 Always compute the content-length regardless of whether it is sent to the
client or not.  The reason for this, is that it allows us to log the
bytes sent to the client correctly.  This also simplifies the
content-length filter a bit, by making it a single pass through the
brigade.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86852 13f79535-47bb-0310-9956-ffa450edef68
2000-11-07 00:58:49 +00:00
Ryan Bloom
895794d262 ap_send_fd should not be sending an EOS bucket, so we should remove any
trace of that possibility from the code.  First of all, there is nothing
that says you can only send one file bucket in a response, and second,
even if a handler sends a file, nothing says that it can't add text before
or after it too.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86846 13f79535-47bb-0310-9956-ffa450edef68
2000-11-06 20:43:19 +00:00
Jeff Trawick
d1e7726a30 Make the desired evaluation explicit to keep gcc -Wall happy.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86844 13f79535-47bb-0310-9956-ffa450edef68
2000-11-06 17:32:13 +00:00
Ryan Bloom
3f0129d314 Allow the core_output_filter to save data in the filter past the end of
the first request if this is a keepalive connection.  This allows us to
save the end of the first request until we have enough data from the
second request to make it worthwhile to send the responses.  In order
to do this, we need to allocate mmap's from the connection pool instead
of the request pool.  If we don't use the connection pool, then the mmap
is freed before the data is sent, because the mmap is freed at the end of
the first request.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86840 13f79535-47bb-0310-9956-ffa450edef68
2000-11-05 04:06:17 +00:00
Ryan Bloom
231c702237 Clean up blocking and non-blocking reads from buckets. The only bucket
that works correctly right now is sockets, but pipes are coming next.
This also makes the http_header_filter do AP_MODE_PEEK correctly.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86830 13f79535-47bb-0310-9956-ffa450edef68
2000-11-04 01:30:37 +00:00
Ryan Bloom
7a1ec9c35c Sub requests should never get into the http headers filter, so we remove
the check for it, and through in an ASSERT.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86829 13f79535-47bb-0310-9956-ffa450edef68
2000-11-03 22:35:52 +00:00
Sascha Schumann
6d89d14d4e Remove REQUEST_CHUNKED_PASS and change ap_discard_request_body()
to use REQUEST_CHUNKED_DECHUNK.

Because of this change, the need for handle_request_body() is gone,
so we remove that as well.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86827 13f79535-47bb-0310-9956-ffa450edef68
2000-11-03 17:34:59 +00:00
Jeff Trawick
fdfcc2df5a Change the content-length filter to give up (i.e., not provide content-length)
if it gets a flush bucket.  A generator of streaming content needs to send down
a flush bucket (e.g., by calling ap_rflush()) if it wants to send a partial
response to the client immediately.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86826 13f79535-47bb-0310-9956-ffa450edef68
2000-11-03 16:38:28 +00:00
Jeff Trawick
d7430d77c2 Axe a couple of newly-unused variables.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86825 13f79535-47bb-0310-9956-ffa450edef68
2000-11-03 15:56:42 +00:00
David Reid
bd165c3eea More removal of raw sockaddr references. This shouldn't cause any problems,
but folks may want to test it :)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86823 13f79535-47bb-0310-9956-ffa450edef68
2000-11-03 15:08:06 +00:00
David Reid
23b9976221 Another removal of using raw sockaddr where we should be using APR.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86822 13f79535-47bb-0310-9956-ffa450edef68
2000-11-03 14:48:40 +00:00
Ryan Bloom
4cc33e90f7 It doesn't make any sense to set a CHUNK flag in the BUFF, because the
BUFF isn't used for output anymore.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86811 13f79535-47bb-0310-9956-ffa450edef68
2000-11-02 22:53:57 +00:00
Sascha Schumann
f397734b03 Fix last commit which was done from the wrong tree which contained
an incomplete version of the default_handler change.

This version gets always rid of the request body, regardless of the
method.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86809 13f79535-47bb-0310-9956-ffa450edef68
2000-11-02 21:31:37 +00:00
Ryan Bloom
5e747a7d64 Remove some more BUFF code. This makes the 100 continue code use buckets
instead of BUFF.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86807 13f79535-47bb-0310-9956-ffa450edef68
2000-11-02 21:10:29 +00:00
Sascha Schumann
0e6c7a8b3b Make the default handler read the dechunked request body on a POST request.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86806 13f79535-47bb-0310-9956-ffa450edef68
2000-11-02 20:48:48 +00:00
Ryan Bloom
f46ebf0d3e Fix the core_output_filter to work with FLUSH buckets. With this change,
when the core sees a FLUSH bucket, we automatically send everything to the
network.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86805 13f79535-47bb-0310-9956-ffa450edef68
2000-11-02 20:33:48 +00:00
Jeff Trawick
7bf310d027 ap_http_header_filter() can't remove itself until after we the
CHUNK filter has been added.  Otherwise, f->next won't be the
CHUNK filter and thus the first brigade won't be chunked
properly.
Reported by:	wrowe


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86799 13f79535-47bb-0310-9956-ffa450edef68
2000-11-02 15:42:56 +00:00
Jeff Trawick
1cd4c73541 In writev_it_all(), tell the caller how many bytes were sent.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86798 13f79535-47bb-0310-9956-ffa450edef68
2000-11-02 12:27:05 +00:00
Jeff Trawick
46c701dc7f Create the pool bucket after we know the true length, because
(currently) we can't shorten the length of such a bucket by
setting e->length.  (We could split and then remove the extra
bucket, but this seems cleaner.  We may still want to have a
way to shorten a bucket, but there isn't a pressing need for
that at the moment.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86790 13f79535-47bb-0310-9956-ffa450edef68
2000-11-01 18:42:55 +00:00
Jeff Trawick
339bd0b7e4 Don't include a '\0' in the header. (I'm still seeing more binary stuff
in the header, but one fix at a time...)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86789 13f79535-47bb-0310-9956-ffa450edef68
2000-11-01 18:24:11 +00:00
Jeff Trawick
906a993109 Get rid of a couple of buff calls by manipulating the APR socket
timeout directly.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86786 13f79535-47bb-0310-9956-ffa450edef68
2000-11-01 15:44:42 +00:00
Ryan Bloom
6f896b6d55 Forgot one variable when I re-created the patch.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86783 13f79535-47bb-0310-9956-ffa450edef68
2000-11-01 06:05:00 +00:00
Ryan Bloom
223355decb Fix canned-errors and OPTIONS requests, so that we don't allocate 8k
for the headers.  We count the number of bytes we expect to get and only
allocation that many bytes.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86782 13f79535-47bb-0310-9956-ffa450edef68
2000-11-01 06:02:22 +00:00
Ryan Bloom
7998ed4b01 Stop always allocating 8k for each request. We now count the number
of bytes required for the headers for each request, and we just allocate
that number of bytes plus 100 extra.  The extra 100 are a fudge factor,
because it is a bit difficult to compute the exact length for the
basic HTTP headers like date and the status line.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86781 13f79535-47bb-0310-9956-ffa450edef68
2000-11-01 05:15:25 +00:00
Ryan Bloom
4b1eefe1f4 Clean up the http filter a lot. Instead of sending a bucket per header,
we now create a single bucket that has all of the headers and send that.
One known issue is that this limits the headers to 8k, but it is a minor
patch to fix that.

This also stops us from exporting ap_send_header_field.  This function no
longer makes sense to export.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86780 13f79535-47bb-0310-9956-ffa450edef68
2000-11-01 00:52:06 +00:00
Ryan Bloom
8ef77218c1 Remove a BUFF function that isn't used anyplace.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86779 13f79535-47bb-0310-9956-ffa450edef68
2000-11-01 00:08:33 +00:00
Jeff Trawick
7ccd0d2605 a couple of fixes for byte ranges:
. use %qx format instead of %llx for 64-bit integer (apr_time_t);
  %llx prints as "%llx"
. pass offset and length to ap_bucket_create_mmap() so that byte
  ranges work with mmaps (at least for a single range)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86777 13f79535-47bb-0310-9956-ffa450edef68
2000-10-31 19:59:09 +00:00
Jeff Trawick
ad7545f0b4 Compute the content length (and add appropriate header field) for
the response when no content length is available and we can't use
chunked encoding.

This is going to be painful when the response body is huge, so I
suspect we'll have additional criteria in the future.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86775 13f79535-47bb-0310-9956-ffa450edef68
2000-10-31 12:30:22 +00:00
Jeff Trawick
9fd450b8ec Clean up a few incompatible pointer types (int * vs. unsigned int *).
Submitted by:	Cliff Woolley <cliffwoolley@yahoo.com>
Reviewed by:	Jeff Trawick


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86755 13f79535-47bb-0310-9956-ffa450edef68
2000-10-26 12:03:07 +00:00
Jeff Trawick
bd8f8930e6 EBCDIC support: convert protocol data in getline() and
ap_send_header_field(); change terminate_header() to build the
CRLF in ASCII to begin with.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86752 13f79535-47bb-0310-9956-ffa450edef68
2000-10-26 11:05:07 +00:00
Jeff Trawick
6217bc8f88 Introduce ap_xlate_proto_{to|from}_ascii() to clean up some of
the EBCDIC support.  They are noops on ASCII machines, so this
type of translation doesn't have to be surrounded by #ifdef
CHARSET_EBCDIC.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86751 13f79535-47bb-0310-9956-ffa450edef68
2000-10-26 10:48:28 +00:00
Jeff Trawick
66f97567e9 Get rid of the xlate version of ap_md5_digest()
since we don't compute digests of filtered (e.g., translated)
response bodies this way anymore.  (Note that we don't do it at
all at the present; somebody needs to write a filter to do so.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86750 13f79535-47bb-0310-9956-ffa450edef68
2000-10-25 18:54:20 +00:00
Jeff Trawick
d2ee323dc2 EBCDIC: Make chunk_filter() write chunk headers/trailers in ASCII.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86747 13f79535-47bb-0310-9956-ffa450edef68
2000-10-25 15:42:38 +00:00