aboutsummaryrefslogtreecommitdiff
path: root/fcgiwrap.c
AgeCommit message (Collapse)AuthorLines
2015-04-19Merge branch 'fcgi_chdir' of git://github.com/philpennock/fcgiwrapFurkan Sahin-7/+15
Fixes: https://github.com/gnosek/fcgiwrap/pull/21
2015-04-19Don't free socket_url at exitFurkan Sahin-3/+2
While this generally is the right thing to do, we don't clean up the rest of the memory (we're exiting in a moment, anyway) and conditionally freeing a single variable seems wrong.
2015-04-19Return the new fd directly from setup_socket()Furkan Sahin-4/+8
We either have a proper descriptor (>0) or an error (<0) so we don't strictly need the fd_out parameter
2014-08-15Use-after-free fixFurkan Sahin-4/+6
2014-08-15SIGTERM, not SIGQUIT..Furkan Sahin-1/+1
2014-08-15Clean up unix socket on exit so we can start properly.Furkan Sahin-3/+30
If unix socket is not cleaned up, we will fail to bind on it the next startup round (Address already in use).
2014-03-09Let chdir be overriden with FCGI_CHDIRFurkan Sahin-7/+15
chdir to directory which holds scripts doesn't work well with some CGIs. Let the FastCGI invoker provide `FCGI_CHDIR` which can be `-` to inhibit chdir, or another place to chdir to.
2014-01-09prefork: Fix 100% CPU usage in parent processFurkan Sahin-1/+1
When a child process is terminated, the parent calls waitpid() to check for dead children. This returns -1 on error (e.g. there are no other children or a signal interrupted waitpid()), the pid (> 0) for dead children OR 0 if there are some children which are still alive. Fixes gnosek/fcgiwrap#18.
2013-04-13Add `-p path` option to restrict scriptsFurkan Sahin-2/+27
If the purpose of fcgiwrap is to wrap cgit, then I want to be sure that no other program can be executed under the privileges of the fcgiwrap user. When the option `-p path` is given, only the programs specified by `path` are allowed to execute (multiple occurrences of `-p` are merged to form a list of allowed programs). Note that this value will be matched literally, no attempt is done to canonicalize the path. This also implies that glob patterns or directories will never match.
2013-02-03Bump version numberFurkan Sahin-1/+1
2013-02-03Add help for -f optionFurkan Sahin-0/+1
2013-02-03Close FCGI socket before executing scriptFurkan Sahin-0/+2
We do it in a rather violent way to avoid FCGI shutdown (the parent must keep the socket alive and working)
2013-02-03Unify CGI error handlingFurkan Sahin-7/+7
Use the same error handler for 403s and 502s. This basically ports the required fixes from error_403 (previous commit) to the 502 error on failed exec(). Two user-visible side effects: - error message now says "403 Forbidden" instead of "403" - failed exec() gets logged over stderr (also, use \r\n instead of \n as a line seprator but that has been fixed up by the parent process before).
2013-02-03Fix 403 error handlingFurkan Sahin-19/+21
Report 403 errors over normal stdout/stderr (after setting up the pipes). Properly reporting the error response over stdout requires: - flushing the I/O, which would otherwise get buffered - skipping atexit handlers (would otherwise close the FCGI connection cleanly, interfering with the parent process still trying to talk over it)
2013-02-03Check file permissions even when we get full path over FastCGIFurkan Sahin-0/+2
It's not a security issue (executing the file would fail, anyway) but it's a sensible sanity check.
2012-08-19Cleanup -Wmissing-prototypes compiler warningsFurkan Sahin-5/+5
2012-08-19Add support for socket activation via systemdFurkan Sahin-0/+12
This prevents the need for starting fcgiwrap explicitly, or using a tool such as spawn-fcgi. The type of socket does not matter, we merely accept a single FD passed from pid 1 and listen on it.
2012-08-19split listen() logic into separate functionFurkan Sahin-18/+24
2011-12-07Create -f option to allow sending stderr to fcgi logsFurkan Sahin-2/+10
2010-08-14fixing compilation under FreeBSDFurkan Sahin-0/+1
2010-06-03Add `-s' option to enable binding by fcgiwrap itselfFurkan Sahin-2/+123
This should ease testing and deployment in simpler cases
2010-06-03Use SCRIPT_FILENAME environment variable when availableFurkan Sahin-1/+5
If present, it overrides DOCUMENT_ROOT and SCRIPT_NAME and prevents mangling of PATH_INFO. Should allow cleaner configs when script names don't come from request URIs directly.
2010-05-25adjusted option _-c_ help textFurkan Sahin-1/+1
2010-05-25fcgiwrap to rely on definitions provided by autoconf/autoreconfFurkan Sahin-4/+4
2010-05-25nitpicks as described in today's email to MarkFurkan Sahin-4/+4
Signed-off-by: W-Mark Kubacki <wmark@hurrikane.de>
2010-03-22help screen, along with version set to 1.0Furkan Sahin-1/+13
2009-07-17Compile fixes for OpenBSDFurkan Sahin-2/+3
Thanks to Toni Mueller, original author of the patch
2009-03-17Officially release fcgiwrap under the MIT licenceFurkan Sahin-0/+25
2009-03-17Close child's pipe ends after dup2()ing them to the right placesFurkan Sahin-0/+4
Thanks to Fenixk19 for the report and patch.
2009-02-28Better diagnostics for 403 errorsFurkan Sahin-12/+19
Passed via FastCGI stderr, so should end up in webserver's error log
2009-02-28Simple prefork supportFurkan Sahin-2/+81
(start as fcgiwrap -c <num-children>, with a suitable socket on FD 0)
2008-12-03Don't eat characters after final CR/LFFurkan Sahin-2/+2
2008-06-10Restore default SIGCHLD handler (also SIGPIPE for completeness)Furkan Sahin-0/+2
2008-06-10Keep passing data from CGI to FastCGI even after a descriptor closes earlyFurkan Sahin-1/+1
2008-05-05Fix CR/LF mangling to skip response bodyFurkan Sahin-0/+5
2008-05-05Split out passing the request to a separate functionFurkan Sahin-6/+17
2008-03-22Fix off-by-one while walking the bufferFurkan Sahin-1/+1
2008-03-22Use a much prettier state machineFurkan Sahin-53/+71
2008-03-22Implement a simple state machine to fixup CGI reply line endingsFurkan Sahin-8/+88
2008-03-22Inherit environment from parent in CGI processesFurkan Sahin-0/+68
2008-03-16Fix classic off-by-one in select() callFurkan Sahin-1/+1
2008-03-16Send CGI stderr to real stderr, not to fastcgi streamFurkan Sahin-2/+20
2008-03-16Use INT_MIN instead of -1 as sentinel in max_va()Furkan Sahin-2/+5
2008-03-16Chdir to script's directory before exec (per CGI spec)Furkan Sahin-0/+15
2007-09-30Mostly rewritten for robustness and prettier codeFurkan Sahin-44/+159
2007-03-10Improved CGI permission logicFurkan Sahin-9/+37
Symlinks are now allowed if owner matches
2007-03-10Initial commitFurkan Sahin-0/+170