- Apr 13, 2006
-
-
Jim Jagielski authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@393955 13f79535-47bb-0310-9956-ffa450edef68
-
- Apr 01, 2006
-
-
Jim Jagielski authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@390571 13f79535-47bb-0310-9956-ffa450edef68
-
- Mar 29, 2006
-
-
Jim Jagielski authored
(which is currently 65535) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@389847 13f79535-47bb-0310-9956-ffa450edef68
-
- Mar 07, 2006
-
-
Garrett Rooney authored
given socket. This somewhat makes up for our lack of a good way to manage connections to a given proxy backend. * support/fcgistarter.c (main): Accept a new -N option that controls how many child procs we fork off. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@383774 13f79535-47bb-0310-9956-ffa450edef68
-
- Mar 05, 2006
-
-
Garrett Rooney authored
* support/fcgistarter.c (main): Give the usage message if we get a bogus port argument. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@383415 13f79535-47bb-0310-9956-ffa450edef68
-
Garrett Rooney authored
daemonization and sockets magic to let a standard fastcgi program listen on a TCP port. Unfortunately due to some requirements of the FastCGI libraries and the way APR process creation works this currently requires platform specific code and thus only works on Unix systems. * support/fcgistarter.c: New program. * support: Add fcgistarter to svn:ignore. * support/Makefile.in: Build fcgistarter. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@383414 13f79535-47bb-0310-9956-ffa450edef68
-
Garrett Rooney authored
* modules/proxy/mod_proxy_fcgi.c (dispatch): Use the worker timeout for our polls, falling back to the old behavior of 30 seconds if there is no worker timeout set. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@383292 13f79535-47bb-0310-9956-ffa450edef68
-
Garrett Rooney authored
fcgi backend. This lets Rails apps work under a balancer setup without any hacks to Rails itself. * modules/proxy/mod_proxy_balancer.c (proxy_balancer_canon): Set r->path_info based on the path we got from parsing the URL. * modules/proxy/mod_proxy_fcgi.c (proxy_fcgi_canon): Remove the comment about balancer not setting the path_info. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@383291 13f79535-47bb-0310-9956-ffa450edef68
-
Garrett Rooney authored
this point we lack a good way to manage them, and thus it's really easy to end up with situations where you get weird timeouts because other worker process are holding all the connections open. This allows Rails applications to reliably work with mod_proxy_fcgi. * modules/proxy/mod_proxy_fcgi.c (dispatch): Add a timeout for our poll. This should be controlled by a config option of some sort, but for now just hardcode it. (proxy_fcgi_handler): Set close_on_recycle to 1, so we don't hold open connections to the fastcgi processes. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@383278 13f79535-47bb-0310-9956-ffa450edef68
-
Garrett Rooney authored
actually being debugged at the moment. Also note a problem with the way we handle the path info setup. * modules/proxy/mod_proxy_fcgi.c (proxy_fcgi_canon): Log the filename and path info when we set them, add a note that the path info stuff isn't being set if we're run in a balancer setup, which needs to be fixed somehow. (send_environment): Add an (ifdefed) call to log the environment vars we send to the backend server. (dump_header_to_log): Default to ifdefing this out, we're a bit beyond bugs in the raw FCGI protocol at this point and it fills up the logs. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@383239 13f79535-47bb-0310-9956-ffa450edef68
-
- Feb 13, 2006
-
-
Garrett Rooney authored
(dispatch): Remove extra level of indentation. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@377284 13f79535-47bb-0310-9956-ffa450edef68
-
- Feb 09, 2006
-
-
Jim Jagielski authored
content passing, as compared to simply spooling all the content in until clen == 0. Also, we need to cleanup the brigade after each pass. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@376346 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
good idea to go ahead and pass the data along. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@376318 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
just better and more consistant. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@376297 13f79535-47bb-0310-9956-ffa450edef68
-
- Jan 29, 2006
-
-
Garrett Rooney authored
to create a long lived pool, we can use one that's local to the function. * modules/proxy/mod_proxy_fcgi.c (proxy_fcgi_baton_t): Removed. (dispatch): Use a local setaside pool instead of one from the baton. (proxy_fcgi_handler): Don't bother creating a baton. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@373269 13f79535-47bb-0310-9956-ffa450edef68
-
- Jan 24, 2006
-
-
Garrett Rooney authored
strange problems with really large numbers of headers, but I'm starting to suspect that it's a problem with my FastCGI lib, not this module, and this at least makes things shorter and a bit easier to read, along with fixing one bug. * modules/proxy/mod_proxy_fcgi.c (handle_headers): Get rid of some cases that were not strictly needed. Insert a case that was missed that screwed things up when there were more than one header. (dispatch): Move the 'done with headers' code into the preceding block, add a note about a case that needs to be investigated. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@371840 13f79535-47bb-0310-9956-ffa450edef68
-
- Jan 23, 2006
-
-
Garrett Rooney authored
end fastcgi process. * modules/proxy/mod_proxy_fcgi.c (send_data, get_data): New wrapper functions that do the sendv/recv stuff and then update the proper statistics. (send_begin_request, send_environment, dispatch): Use send_data/get_data. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@371560 13f79535-47bb-0310-9956-ffa450edef68
-
Garrett Rooney authored
* modules/proxy/mod_proxy_fcgi.c (proxy_fcgi_handler): Stop describing the old URL style, remove a stray empty line. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@371431 13f79535-47bb-0310-9956-ffa450edef68
-
Garrett Rooney authored
the old code, we'd fail to detect the end of the headers if they were split over multiple fastcgi records, or if the cgi script used \n at the end of each header instead of \r\n. * modules/proxy/mod_proxy_fcgi.c (HDR_STATE_READING_HEADERS, HDR_STATE_GOT_CR, HDR_STATE_GOT_CRLF, HDR_STATE_GOT_CRLFCR, HDR_STATE_GOT_LF, HDR_STATE_DONE_WITH_HEADERS): Constants to track where we are in parsing the end of the headers. (handle_headers): Take the current parsing state as an argument, use a state machine to detect the end of the headers instead of strstr. (dispatch): Pass the state to handle_headers. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@371428 13f79535-47bb-0310-9956-ffa450edef68
-
- Jan 11, 2006
-
-
Garrett Rooney authored
* modules/proxy/mod_proxy_fcgi.c (proxy_fcgi_canon): Stop pretending unix domain sockets will need their own url scheme. (FCGI_SCHEME): New constant to describe the FastCGI proxy backend. (proxy_fcgi_handler): Drop the fcgi-local stuff, use FCGI_SCHEME now that we aren't worrying about multiple types of FastCGI workers. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@367906 13f79535-47bb-0310-9956-ffa450edef68
-
- Jan 09, 2006
-
-
Jim Jagielski authored
still correctly handle cases where we need to ship those structs over the wire, by transforming them from FCGI structs to unsigned char arrays. Place the logic of mapping that struct to the arrays in distinct functions, isolating them. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@367300 13f79535-47bb-0310-9956-ffa450edef68
-
Garrett Rooney authored
it seems clear that we're going to need to be able to specify arbitrary portions of the URL that need to be added to the path info. Follow the lead of mod_proxy_http and add the calculation of this into the canon handler. * modules/proxy/mod_proxy_fcgi.c (proxy_fcgi_canon): Add the path portion of the back end URL to the path_info of the request, via the ap_proxy_canonenc function. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@367208 13f79535-47bb-0310-9956-ffa450edef68
-
Garrett Rooney authored
passed on to the back end FastCGI process. * modules/proxy/mod_proxy_fcgi.c (proxy_fcgi_canon): Use the post-hostname portion of the URL as the path info for the request. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@367170 13f79535-47bb-0310-9956-ffa450edef68
-
- Jan 08, 2006
-
-
Garrett Rooney authored
there's no reason that request ids wouldn't be matching up. Until we see an example of a request id mismatch error that is absolutely not caused by an error in our parsing of the FastCGI protocol, we should be able to go back to treating mismatches as errors. * modules/proxy/mod_proxy_fcgi.c (dispatch): Remove #ifdef that turned off treating rid mismatches as fatal errors. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@366985 13f79535-47bb-0310-9956-ffa450edef68
-
- Jan 07, 2006
-
-
Garrett Rooney authored
* modules/proxy/mod_proxy_fcgi.c (fcgi_do_request): We're no longer just handling STDIN in this call... git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@366927 13f79535-47bb-0310-9956-ffa450edef68
-
Garrett Rooney authored
used a struct to hold the data when writing it, but read it into an array when reading it. This meant that the knowledge of the header layout was in two places. This change moves both sides to using an array, and adds a set of #defines for the offsets into the array, so neither side can get out of sync. This also moves the logic for setting up the content length bytes into one place, where before we had it in several places. * modules/proxy/fcgi_protocol.h (fcgi_header): Removed. (FCGI_HDR_VERSION_OFFSET, FCGI_HDR_TYPE_OFFSET, FCGI_HDR_REQUEST_ID_B1_OFFSET, FCGI_HDR_REQUEST_ID_B0_OFFSET, FCGI_HDR_CONTENT_LEN_B1_OFFSET, FCGI_HDR_CONTENT_LEN_B0_OFFSET, FCGI_HDR_PADDING_LEN_OFFSET, FCGI_HDR_RESERVED_OFFSET): New constants. * modules/proxy/mod_proxy_fcgi.c (fill_in_header): Take an array, not a struct pointer, and handle all the contents of the header, not just the type and request id. (send_begin_request, send_environment, dispatch): Update for new way to fill in headers. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@366926 13f79535-47bb-0310-9956-ffa450edef68
-
- Jan 06, 2006
-
-
Garrett Rooney authored
makes everything consistent with regard to spacing, line length, etc. * modules/proxy/mod_proxy_fcgi.c (dump_header_to_log, dispatch, proxy_fcgi_handler): Clean up. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@366414 13f79535-47bb-0310-9956-ffa450edef68
-
Garrett Rooney authored
cleanup, but at least it keeps us from messing up the stream when we get stuff written to stderr by the fastcgi process. * modules/proxy/mod_proxy_fcgi.c (dispatch): Move the plen recv down after the switch, so it gets done for all cases that have padding. Read data for the FCGI_STDERR case just like we do for FCGI_STDOUT, but write it to the log instead of sending it to the client. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@366412 13f79535-47bb-0310-9956-ffa450edef68
-
- Jan 05, 2006
-
-
Garrett Rooney authored
down on some of the crazy verbose logging, since this seems to be the problem we were trying to find. * modules/proxy/mod_proxy_fcgi.c (dispatch): Remove really verbose logging, move reading of the padding bytes down to the end of the FCGI_STDOUT case. Tested By: iholsman git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@366086 13f79535-47bb-0310-9956-ffa450edef68
-
- Jan 04, 2006
-
-
Ian Holsman authored
right now it looks like for large requests it isn't reading enough off the wire. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@365863 13f79535-47bb-0310-9956-ffa450edef68
-
Ian Holsman authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@365824 13f79535-47bb-0310-9956-ffa450edef68
-
Garrett Rooney authored
people have seen where rid != request_id. * modules/proxy/mod_proxy_fcgi.c (dispatch): Stop initializing things we're just going to assign over them later, initialize all of the rid and clen variables, and fix a warning from passing an unsigned char array into apr_socket_recv by adding a cast to char *. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@365813 13f79535-47bb-0310-9956-ffa450edef68
-
- Jan 03, 2006
-
-
Jim Jagielski authored
struct, and assuming that it's following the correct format, we should be extra careful when rec'ing the header info, and ensure that each byte is followed one after another. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@365698 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@365643 13f79535-47bb-0310-9956-ffa450edef68
-
- Jan 02, 2006
-
-
Jim Jagielski authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@365432 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
other FCGI modules (like mod_fcgid) don't bother to test the return request_id... git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@365387 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
be explicit about it. Also removes the need to clean up the readbuf again, and any potential for confusion on what we are doing ;) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@365376 13f79535-47bb-0310-9956-ffa450edef68
-
- Dec 30, 2005
-
-
Paul Querna authored
When we get some kind of write failure or protocol problem, close the current socket, since we don't know if we are left in a working state. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@360174 13f79535-47bb-0310-9956-ffa450edef68
-
Paul Querna authored
* modules/proxy/mod_proxy_fcgi.c (proxy_fcgi_baton_t): New struct, holds per-connection data. (dispatch): Set buckets aside into the scratch pool in the baton, clearing it when we pass the baton on. Deal with the case where the content length is larger than AP_IOBUFSIZE. Consistently use sizeof when referring to the length of buffers. Explicitly null terminate the read buffer after reading. Read the padding bytes in a second pass to simplify logic. (proxy_fcgi_handler): Create our baton and stash it in the connection's data member. Submitted By: Garrett Rooney <rooneg apache.org> git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@360164 13f79535-47bb-0310-9956-ffa450edef68
-
- Dec 29, 2005
-
-
Paul Querna authored
back end fastcgi process. This includes switching to a poll based dispatch loop that handles interleaved reads and writes. * modules/proxy/mod_proxy_fcgi.c (MAX_INPUT_BYTES): Removed, we now use AP_IOBUFSIZE. (handle_headers): New helper function for parsing headers out of the response data. (send_stdin): Removed, code incorporated into dispatch routine. (dispatch): New, poll based dispatch loop that handles both reads and writes. (fcgi_do_request): Call new dispatch routine. Return OK if we get through without errors. Submitted By: Garrett Rooney <rooneg apache.org> git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev@359901 13f79535-47bb-0310-9956-ffa450edef68
-