1
0
mirror of https://github.com/apache/httpd.git synced 2025-11-06 16:49:32 +03:00
Commit Graph

287 Commits

Author SHA1 Message Date
Jeff Trawick
eab06b27db fix some abuse of apr_port_t (flagged by Sun WorkShop)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94142 13f79535-47bb-0310-9956-ffa450edef68
2002-03-22 21:41:14 +00:00
Graham Leggett
19c0213612 Change the header merging behaviour in proxy, as some headers
(like Set-Cookie) cannot be unmerged due to stray commas in
dates.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94083 13f79535-47bb-0310-9956-ffa450edef68
2002-03-21 12:05:45 +00:00
Roy T. Fielding
845cbfd508 Update our copyright for this year.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93918 13f79535-47bb-0310-9956-ffa450edef68
2002-03-13 20:48:07 +00:00
Jeff Trawick
1151bac94b implement a common function for getting a socket and trying to connect
to the target host; use that common function for proxy HTTP and proxy
CONNECT

In that new function, fix this problem:

     Proxy HTTP and CONNECT: Keep trying other addresses from the DNS
     when we can't get a socket in the specified address family.  We may
     have gotten back an IPv6 address first and yet our system is not
     configured to allow IPv6 sockets.

An example host is www.ipv6.org.  The first address I get back is
an IPv6 address, but my machine may not be configured to allow an
AF_INET6 socket.

Before the fix: The apr_socket() failure was fatal.
After the fix:  When apr_socket() fails, we go to the next address from
                the resolver, successfully create a socket in the
                specified family (AF_INET), and all is well.

(an unrelated fix in this commit was to pass a server_rec in a broken
ap_log_error() call)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93787 13f79535-47bb-0310-9956-ffa450edef68
2002-03-08 02:03:47 +00:00
Ryan Bloom
94c63c92a8 We need to setup protocol filters for the fake request. If we don't,
then when any request filters are added, the connection filters will be
lost.  This fixes the proxy.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93752 13f79535-47bb-0310-9956-ffa450edef68
2002-03-07 06:07:25 +00:00
Jeff Trawick
e8b6f67b6a fix the linkage of and add a prototype for ap_proxy_table_unmerge()
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93529 13f79535-47bb-0310-9956-ffa450edef68
2002-02-21 11:42:03 +00:00
Graham Leggett
23bad0a329 Some browsers ignore cookies that have been merged into a
single Set-Cookie header. Set-Cookie and Set-Cookie2 headers
are now unmerged in the http proxy before being sent to the
client.
Fix a problem with proxy where each entry of a duplicated
header such as Set-Cookie would overwrite and obliterate the
previous value of the header, resulting in multiple header
values (like cookies) going missing.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93527 13f79535-47bb-0310-9956-ffa450edef68
2002-02-21 06:06:31 +00:00
Bill Stoddard
4bc1733b38 Cleanup some fallout from the recent install_transport_filters commit.
Deprecate ap_proxy_pre_http_connection.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93093 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 04:34:11 +00:00
Justin Erenkrantz
94d01b65aa Change ap_get_brigade prototype to remove *readbytes in favor of readbytes.
If you need the length, you should be using apr_brigade_length.  This is
much more consistent.  Of all the places that call ap_get_brigade, only
one (ap_http_filter) needs the length.  This makes it now possible to
pass constants down without assigning them to a temporary variable first.

Also:
- Change proxy_ftp to use EXHAUSTIVE mode (didn't catch its -1 before)
- Fix buglet in mod_ssl that would cause it to return too much data in
  some circumstances


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93014 13f79535-47bb-0310-9956-ffa450edef68
2002-01-25 01:11:47 +00:00
Justin Erenkrantz
7d32242a14 Input filtering prototype change: Socket blocking type should be
separate from the input filter mode type.

We also no longer look at readbytes to determine the method of
filter operation.  This makes the use of filters more obvious and
allows a wider range of options for input filters modes.

To start with, the new input filter modes are:

AP_MODE_READBYTES (no more than *readbytes returned)
AP_MODE_GETLINE (old *readbytes == 0 case)
AP_MODE_EATCRLF (old AP_MODE_PEEK)
AP_MODE_SPECULATIVE (will be used in a future ap_getline rewrite)
AP_MODE_EXHAUSTIVE (old *readbytes == -1 case)
AP_MODE_INIT (special case for NNTP over SSL)

The block parameter is an apr_read_type_e: APR_BLOCK_READ, APR_NONBLOCK_READ

This also allows cleanup of mod_ssl's handling in the getline case.

Reviewed by:	Ryan Bloom (concept), Greg Stein (concept)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92928 13f79535-47bb-0310-9956-ffa450edef68
2002-01-19 07:45:18 +00:00
Bill Stoddard
59550522ce Fix seg fault in HTTP_IN when trying to handle the LimitRequestBody
directive when reading a proxy response. We should bypass LimitRequestBody
activities when handling a response from the proxied server.

I don't think this will circumvent requestbody checking on a large request
coming into the server that is destined to be proxied. (not tested though).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92722 13f79535-47bb-0310-9956-ffa450edef68
2002-01-03 19:20:54 +00:00
Bill Stoddard
55954a1d64 Change the return code from APR_TIMEUP to APR_ECONNABORTED, which seems
to be a bit more descriptive. Move the check to inside the inner while()
loop and add an additional check for eos. If we get an EOS bucket, there
is no point in going further. Hopefully this will fix the last seg fault
in the function.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92704 13f79535-47bb-0310-9956-ffa450edef68
2002-01-02 19:12:40 +00:00
Bill Stoddard
b9b1b1a76d Eliminate loop in ap_proxy_string_read(). Need to be able to handle
getting an empty brigade from ap_get_brigade(). Also made sure that
we always call ap_get_brigade() in readline mode.

Submitted/Reviewed by: Adam Sussman & Bill Stoddard


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92690 13f79535-47bb-0310-9956-ffa450edef68
2001-12-31 20:43:59 +00:00
Bill Stoddard
1741233a02 Detabify some functions. No functional change.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92651 13f79535-47bb-0310-9956-ffa450edef68
2001-12-29 20:32:52 +00:00
Ian Holsman
e1e621b3d4 make the proxy code spit out an error to the error log.
This bit me when I included a 11th file no error message, nothing.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92226 13f79535-47bb-0310-9956-ffa450edef68
2001-11-28 21:07:32 +00:00
William A. Rowe Jr
1eda89f095 Hmmm... mismatched namespaces :-?
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91489 13f79535-47bb-0310-9956-ffa450edef68
2001-10-16 14:45:56 +00:00
Ryan Bloom
e31a688ce5 Cleanup the proxy code that creates a request to the origin
server.  This change adds an optional hook, which allows modules
to gain control while the request is created if the proxy module
is loaded.  The purpose of this hook is to allow modules to add
input and/or output filters to the request to the origin.  While
I was at it, I made the core use this hook, so that proxy request
creation uses some of the code from the core.  This can still be
greatly improved, but this is a good start.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91486 13f79535-47bb-0310-9956-ffa450edef68
2001-10-16 05:18:39 +00:00
Ian Holsman
dd713bba3b dechunking filter removed.
add HTTP_IN filter after the headers have been parsed.
so that the HTTP_IN can check them ;-)
Still not 100% if this works properly, but I don't get
the chunking numbers displayed on my browser,
so it's better than what was there.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91370 13f79535-47bb-0310-9956-ffa450edef68
2001-10-08 21:49:17 +00:00
Ian Holsman
4bd8279a92 initial port of new Request-mode HTTP_IN filter to proxy.
Status: It serves a reverse-proxy page.. but SLOWLY.
VERY SLOWLY.
still looking at why, but now it serves pages instead of dumping core.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91363 13f79535-47bb-0310-9956-ffa450edef68
2001-10-08 19:25:35 +00:00
Ian Holsman
8f2a259fa5 change the parameter to ap_get_brigade from apr_site_t to apr_off_t, due to
a parameter change in the original filter.
PR:
Submitted by: barbee@veribox.net
Reviewed by: ianh@apache.org


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@90011 13f79535-47bb-0310-9956-ffa450edef68
2001-08-07 21:18:03 +00:00
Victor J. Orlikowski
3a3883d7e3 inet_addr and inet_network are not interchangable.
Furthermore, use apr_inet_addr, rather than ap_inet_addr (though they map
to the same thing).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89855 13f79535-47bb-0310-9956-ffa450edef68
2001-08-01 05:50:29 +00:00
Victor J. Orlikowski
7ca521dfdf After checking what this does with Bill Rowe, and discovering it to be dead
wood, I am tossing it.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89838 13f79535-47bb-0310-9956-ffa450edef68
2001-07-31 19:19:34 +00:00
Victor J. Orlikowski
5b38785f4b Being slightly picky: properly namespace protect make_fake_req()
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89837 13f79535-47bb-0310-9956-ffa450edef68
2001-07-31 19:12:56 +00:00
Victor J. Orlikowski
de5ebc3740 Nobody screamed. ;)
This gets rid of ap_proxy_host2addr, and a few other useless functions,
and allows us to be threadsafe when doing DNS resolution.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89829 13f79535-47bb-0310-9956-ffa450edef68
2001-07-31 16:25:18 +00:00
Chuck Murcko
77e6035975 Reorganize ap_proxy_string_read() internally to not process eos buckets.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89473 13f79535-47bb-0310-9956-ffa450edef68
2001-06-28 12:48:57 +00:00
Victor J. Orlikowski
79686d250b An EOS bucket doesn't contain anything, so why shouldn't we skip it?
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89471 13f79535-47bb-0310-9956-ffa450edef68
2001-06-28 07:05:18 +00:00
Chuck Murcko
bd71fdf9ac Use apr-util's date functions now
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89280 13f79535-47bb-0310-9956-ffa450edef68
2001-06-06 21:51:58 +00:00
Ian Holsman
3032fea185 Allows Mod_proxy to be dynamically loaded on win32 systems
PR:
Obtained from:
Submitted by:	ianh
Reviewed by:	Chuck Murcko, Graham


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89085 13f79535-47bb-0310-9956-ffa450edef68
2001-05-11 17:32:41 +00:00
Chuck Murcko
109f7ebf1d Crikey.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89044 13f79535-47bb-0310-9956-ffa450edef68
2001-05-07 02:47:51 +00:00
Chuck Murcko
ea5093e17f Track Greg's change to byte count for input filters
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89037 13f79535-47bb-0310-9956-ffa450edef68
2001-05-06 10:59:22 +00:00
Graham Leggett
8366898180 Made the variable naming the same as everywhere else in Apache for the
ap_get_brigade() fix.
PR:
Obtained from:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88927 13f79535-47bb-0310-9956-ffa450edef68
2001-04-24 04:38:53 +00:00
Victor J. Orlikowski
704054f6d9 Just for the sake of cleanliness ...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88926 13f79535-47bb-0310-9956-ffa450edef68
2001-04-24 02:50:19 +00:00
Graham Leggett
83e42d2157 Apply changes to ap_get_brigade() to the proxy code.
PR:
Obtained from:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88922 13f79535-47bb-0310-9956-ffa450edef68
2001-04-23 21:03:39 +00:00
Graham Leggett
f8425f7b81 Make hooks work for the *_canon() functions. Work continues.
PR:
Obtained from:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88854 13f79535-47bb-0310-9956-ffa450edef68
2001-04-14 07:03:00 +00:00
Graham Leggett
07e7e196f4 FTP directory filter works now.
Many FIXME notes added.
Much overhauling of proxy_ftp.c
PR:
Obtained from:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88817 13f79535-47bb-0310-9956-ffa450edef68
2001-04-12 01:57:48 +00:00
Graham Leggett
ce168dd27f Make sure the filter stack in a reused downstream connection is reset
so we don't get lots of DECHUNK filters when we don't want them.
PR:
Obtained from:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88797 13f79535-47bb-0310-9956-ffa450edef68
2001-04-10 20:44:16 +00:00
Graham Leggett
056f85fe07 We now keep the entire conn_rec across downstream keepalives, not
just the socket.
Made the "keepalive mismatch" message more accurate.
PR:
Obtained from:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88793 13f79535-47bb-0310-9956-ffa450edef68
2001-04-10 19:52:40 +00:00
Graham Leggett
10c533558e Compiler warnings - yuck!
Moved ap_proxy_string_read() to proxy_util.c so it can be used by
proxy_http.c
PR:
Obtained from:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88777 13f79535-47bb-0310-9956-ffa450edef68
2001-04-10 00:13:56 +00:00
Graham Leggett
7a742e7fd1 Bugfixes to proxy_ftp.c -> in some places uri_addr was used instead
of connect_addr - all hail cut and paste!
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88740 13f79535-47bb-0310-9956-ffa450edef68
2001-04-06 14:25:54 +00:00
Graham Leggett
5dd4149bc0 Converted send_dir() to ap_proxy_send_dir_filter() in proxy_ftp.c.
Fixed up the header files
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88739 13f79535-47bb-0310-9956-ffa450edef68
2001-04-06 10:44:08 +00:00
Graham Leggett
a43bb9db2e Cleanup of dead functions within proxy_util.c.
PR:
Obtained from:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88732 13f79535-47bb-0310-9956-ffa450edef68
2001-04-05 18:53:04 +00:00
Graham Leggett
5f3bc1ebc9 Some code rewriting in ap_proxy_connect_handler():
*) Fixed bug where a hostname without a "." in it (such as "localhost")
would not trigger an IP address check with ProxyBlock.
*) Fixed ProxyBlock bugs with ap_proxy_http_handler() and
ap_proxy_connect_handler().
*) Updated ap_proxy_connect_handler() to support APR, while
moving some common code between http_handler and connect_handler
to proxy_util.c.
PR:
Obtained from:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88721 13f79535-47bb-0310-9956-ffa450edef68
2001-04-04 18:47:42 +00:00
Graham Leggett
d72c7d938e *) Added support for downstream keepalives in mod_proxy.
*) Changed mod_proxy ap_proxy_http_handler() to support APR properly.
PR:
Obtained from:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88648 13f79535-47bb-0310-9956-ffa450edef68
2001-04-02 17:04:19 +00:00
Chuck Murcko
4fe4de4e33 reorganize STATUS; update copyright
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88534 13f79535-47bb-0310-9956-ffa450edef68
2001-03-19 08:54:41 +00:00
Chuck Murcko
448a3a6d3b change INADDR_NONE to APR_INADDR_NONE
Submitted by:	Ian Holsman <IanH@cnet.com>
Reviewed by:	Chuck Murcko


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88525 13f79535-47bb-0310-9956-ffa450edef68
2001-03-16 05:49:51 +00:00
Graham Leggett
7c80013588 Pull in the Connection handling part of the v1.3 patch for HTTP/1.1.
Some preliminary HTTP/1.1 work
Some comments and fixes
PR:
Obtained from:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88518 13f79535-47bb-0310-9956-ffa450edef68
2001-03-14 21:16:41 +00:00
Chuck Murcko
1dcf2f7754 Cache removed, with other spooge
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88487 13f79535-47bb-0310-9956-ffa450edef68
2001-03-11 10:42:14 +00:00
Ryan Bloom
9d85d10c10 Fix any compile breaks after moving apr_snprintf and apr_vsnprintf to
apr_strings.h


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88077 13f79535-47bb-0310-9956-ffa450edef68
2001-02-11 00:12:43 +00:00
Doug MacEachern
88d3406f9a renaming various functions for consistency sake
see: http://apr.apache.org/~dougm/apr_rename.pl
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88019 13f79535-47bb-0310-9956-ffa450edef68
2001-02-08 07:45:33 +00:00
Chuck Murcko
c9dc3847d2 Changes to get running on the current codebase
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88004 13f79535-47bb-0310-9956-ffa450edef68
2001-02-07 05:41:35 +00:00