1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-26 19:01:35 +03:00
Commit Graph

316 Commits

Author SHA1 Message Date
Bill Stoddard
8cb5dbee43 Out foul tabs. No function change.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93375 13f79535-47bb-0310-9956-ffa450edef68
2002-02-12 17:41:35 +00:00
Ryan Bloom
862f407872 Remove the install_transport_filters hook. The same function can be
acheived with the pre_connection hook.  I have added the socket to the
pre_connection phase to make this possible.
Reviewed by:	Bill Stoddard


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93259 13f79535-47bb-0310-9956-ffa450edef68
2002-02-05 22:18:49 +00:00
Martin Kraemer
34e0d8cf5d Oops. Use ftp_check_globbingchars().
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93217 13f79535-47bb-0310-9956-ffa450edef68
2002-02-04 10:11:29 +00:00
Martin Kraemer
c5ef15249d And update the year....
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93216 13f79535-47bb-0310-9956-ffa450edef68
2002-02-04 10:07:10 +00:00
Martin Kraemer
9f645d6622 React (in the dir lister) on the same globbing chars as used in the escaping routine
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93215 13f79535-47bb-0310-9956-ffa450edef68
2002-02-04 10:06:37 +00:00
Justin Erenkrantz
59874f5443 Make sure we include time.h if it is there. (Other mojo may be needed for
other platforms.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93201 13f79535-47bb-0310-9956-ffa450edef68
2002-02-03 17:18:18 +00:00
Bill Stoddard
bd3d360392 Reintroduce the create_connection hook. This hook is required to enable
modules to completely take over all network i/o from the core.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93171 13f79535-47bb-0310-9956-ffa450edef68
2002-02-01 22:16:31 +00:00
Ian Holsman
bf6f47a76d missed a '&'
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93147 13f79535-47bb-0310-9956-ffa450edef68
2002-02-01 04:07:48 +00:00
Martin Kraemer
5b7ceb18a9 Add MDTM support if supported by the FTP server, and if either
timegm() exists or struct tm has a tm_gmtoff field (needed for
easily converting the time string to a GMT timestamp).
Escaping for ftp path arguments now uses a dedicated escaping
routine (in order to only escape globbing characters, not all
shell meta characters).
Execute the SIZE query with the same TYPE setting as the RETR transfer,
because the SIZE may be calculated differently for ASCII files.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93128 13f79535-47bb-0310-9956-ffa450edef68
2002-01-31 14:48:51 +00:00
Martin Kraemer
f6e4afd31b Eliminate variables where unneeded; move ";type=" checking code to front;
drop redundant log messages (covered by proxy_ftp_command());
do checks for /%2f as in apache-1.3.24;
escape path argument in SIZE command


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93120 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 22:41:59 +00:00
Ian Holsman
8cf569593b add a ProxyTimeout directive
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93117 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 18:46:56 +00:00
Martin Kraemer
0a372f9393 Minor tipos
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93111 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 15:30:09 +00:00
Martin Kraemer
abf7e5464b Of course, more wildcard characters
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93110 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 15:14:39 +00:00
Martin Kraemer
de3c03c970 Port the "squid %2f hack" from apache_1.3.24.
It is now possible to browse the root directory by using a url
like:   ftp://user@host/%2f/
Also, the last path component may contain wildcard characters
'*' and '?', and if they do, a directory listing is created instead
of a file retrieval. Example: ftp://user@host/httpd/server/*.c


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93108 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 15:07:48 +00:00
Martin Kraemer
8ae6ee9022 Oops, sorry. Lost one line.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93107 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 14:59:46 +00:00
Martin Kraemer
1d76ccd517 Something sets the content_encoding, even if a directory listing
is going to be returned. Hack: unset the content_encoding if
dirlisting == TRUE.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93106 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 14:56:42 +00:00
Martin Kraemer
e135391780 For the ftp commands CWD and RETR, do escaping for the path elements,
because FTP servers do globbing, which we do not want for filenames
from the directory listing.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93105 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 14:54:18 +00:00
Martin Kraemer
08ff4a86f0 In the debug log, say 'decline' instead of 'reject' when DECLINEing
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93103 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 12:40:39 +00:00
Jeff Trawick
9b36512d5c zap a warning on AIX... given that time_t isn't an APR construct
I don't know of a better fix


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93100 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 11:54:15 +00:00
Martin Kraemer
b763128578 Oops: wrong variable
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93099 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 09:55:33 +00:00
Martin Kraemer
807fa07a94 Simplify the complexity by using a common proxy_ftp_command() routine.
Strip the ";type=X" suffix from the header generated in dir listings.
Set type to ASCII for directory listings. Use common get_PWD() routine.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93098 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 09:47:22 +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
Ian Holsman
c23a0b8732 new directive 'ProxyPreserveHost' which allows the incoming host line to
be sent to the proxied server.

Submitted by:	g.russell@ieee.org (1.3 version)
Reviewed by:	Ian Holsman/Graham Legget/Chuck Murcko


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93089 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 21:08:37 +00:00
Ian Holsman
25b86854e1 configuration change.
allow a '!' directive to stop proxying these requests
eg.

  ProxyPass /services/images/     !
  ProxyPass /services/            http://service-machine/services/

which will stop requests to /services/images/ from being proxied

Submitted by:	Jukka Pihl <jukka.pihl@entirem.com>
Reviewed by:	Ian Holsman, Graham Legget, Chuck Murcko


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93086 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 19:00:45 +00:00
Martin Kraemer
6452dfac8e If the ftp proxy could not guess the output format of the ftp server's
directory listing, it makes another attempt: it tries a format similar to
the output of "ls -s1" (optional whitespace followed by size, followed by
whitespace, followed by filename, where filename may contain no more whitespace).
This format works at least with one FTP server for which previously only
the (non-clickable) output was displayed.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93081 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 17:56:42 +00:00
Martin Kraemer
fef1548777 Fix handling of \r\n at the end of FTP directory listings (\r characters
were left in the output and would create additional line breaks in most
browsers)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93078 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 17:07:26 +00:00
Martin Kraemer
cdf7a56914 For NoProxy connections (when no backend->connection is needed), a NULL
pointer would be dereferenced. Check it more thoroughly.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93077 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 16:55:07 +00:00
Martin Kraemer
9e5f5087f1 * Prefer compatibility with both HTML-4 and XHTML (rather than XHTML only)
* Properly escape URIs and HTML in the FTP filename list
* Avoid a pointer underrun


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93075 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 15:31:28 +00:00
Martin Kraemer
4beff4570f Add some more apr_ types
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93074 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 15:27:30 +00:00
Martin Kraemer
7ec0ceeda8 First step: send proxy_ftp.c thru
indent | pr -e8 -t
(no other changes)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93059 13f79535-47bb-0310-9956-ffa450edef68
2002-01-28 16:54:05 +00:00
Bill Stoddard
327e4989d5 Remove the create_connection hook and put the client_socket back into the
conn_rec. The create_connection_hook has a design flaw that prevents it
from making decisions based on vhost information.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93050 13f79535-47bb-0310-9956-ffa450edef68
2002-01-27 12:52:08 +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
Jeff Trawick
cf5f58a851 Fix a problem in the parsing of the <Proxy foo> directive.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92882 13f79535-47bb-0310-9956-ffa450edef68
2002-01-17 02:22:22 +00:00
William A. Rowe Jr
7f6d76ce95 Follow our Unix bretherens' conventions, and name the sub-proxy modules
with the mod_ prefix (al la mod_dav_fs as a sub-dav module.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92876 13f79535-47bb-0310-9956-ffa450edef68
2002-01-17 01:05:23 +00:00
William A. Rowe Jr
aff1454d34 *) Split all Win32 modules [excluding the core components mod_core,
mod_so, mod_win32 and the winnt mpm] into individual loadable
     modules, so the administrator may individually disable the former
     compiled-in modules by simply commenting out their LoadModule
     directives.  [William Rowe]

  *) Saved Win32 module authors and porters many future headaches, by
     duplicating the appropriate .h files such as os.h into the include
     directory, including in the build tree.  [William Rowe]

  Also noticed that version stamp resources weren't generated for proxy
  modules, this too is now fixed.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92804 13f79535-47bb-0310-9956-ffa450edef68
2002-01-10 08:47:23 +00:00
Jeff Trawick
9757a232c4 for proxy CONNECT handling:
don't hard-code the address family of the target; respect
  what the resolver told us

  get a new socket each time we try to connect to one of the
  target addresses as reported by the resolver; you can't
  portably attempt to connect more than once on the same
  socket

this is the same fix committed to proxy http support yesterday


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92735 13f79535-47bb-0310-9956-ffa450edef68
2002-01-04 18:32:48 +00:00
Jeff Trawick
10406b4ad2 Fix a couple of mod_proxy problems forwarding HTTP connections:
(1) PR #9190  It failed to connect to IPv6 hosts.
(2) It failed to connect when the first IP address returned by
    the resolver was unreachable but a secondary IP address was.

PR:    9190 (partly)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92727 13f79535-47bb-0310-9956-ffa450edef68
2002-01-04 01:47:55 +00:00
Bill Stoddard
816e3717cf Keep my comments to myself.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92725 13f79535-47bb-0310-9956-ffa450edef68
2002-01-03 20:47:30 +00:00
Jeff Trawick
64a3040e8a get the declarations for strncasecmp() on AIX
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92724 13f79535-47bb-0310-9956-ffa450edef68
2002-01-03 20:42:08 +00:00
Bill Stoddard
dd4b6e71aa Use ap_getline() in favor of ap_proxy_string_read() in ap_proxy_http_process_response().
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92723 13f79535-47bb-0310-9956-ffa450edef68
2002-01-03 20:38:04 +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
bfa4490273 Fix mod_proxy seg fault when the proxied server returns
an HTTP/0.9 response or a bogus status line.

Submitted by: Adam Sussman
Reviewed by:	Bill Stoddard


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92693 13f79535-47bb-0310-9956-ffa450edef68
2001-12-31 21:03:12 +00:00
Bill Stoddard
dbdc5a2978 Prevent mod_proxy from truncating one character off the
end of the status line returned from the proxied server.
Note that buffer is NULL terminated by the call to
ap_proxy_string_read() so there is no need to terminate it
again.

Submitted by:	Adam Sussman
Reviewed by:	Bill Stoddard


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92692 13f79535-47bb-0310-9956-ffa450edef68
2001-12-31 20:53:28 +00:00
Bill Stoddard
826df1bb82 Change the call to be blocking to eliminate a loop caused when the upstream
host does not send any bytes back our way.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92691 13f79535-47bb-0310-9956-ffa450edef68
2001-12-31 20:46:22 +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
Ryan Bloom
57f5bf7a31 Remove an extra semi-colon.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92534 13f79535-47bb-0310-9956-ffa450edef68
2001-12-19 16:32:01 +00:00
Jeff Trawick
c85d4a7c86 get proxy in sync with the update to ap_run_create_connection
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92520 13f79535-47bb-0310-9956-ffa450edef68
2001-12-18 20:29:27 +00:00