summaryrefslogtreecommitdiffstats
path: root/os/unix (follow)
Commit message (Collapse)AuthorAgeFilesLines
* mpm_{event,worker,prefork}: late stop of children processes on restart.Yann Ylavic2021-08-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change how the main process handles restarts, from: 0. <restart signal> 1. stop old generation of children processes (graceful or not) 2. reload new configuration 3. start new generation of children processes to: 0. <restart signal> 1. reload new configuration 2. stop old generation of children processes (graceful or not) 3. start new generation of children processes The delay between stop and start is now very short and does not depend on the reload time (which can be quite long with many vhosts and/or complex setups with regexps or whatever third party components to compile). Also, while reloading, the old generation of children processes keeps accepting and handling incoming connections until the new generation is up to take over. * os/unix/unixd.c (sig_term, sig_restart): Set AP_MPMQ_STOPPING only once. * server/listen.c (ap_duplicate_listeners): Use ap_log_error() the main server instead of ap_log_perror(). * server/mpm/{event,worker,prefork}/{event,worker,prefork}.c ({event,worker,prefork}_retained_data): Save the generation pool pointer (gen_pool) and all the buckets here, they won't be cleared before the reload like pconf so they need a persitent storage accross restarts (i.e. retained->gen_pool). * server/mpm/{event,worker,prefork}/{event,worker,prefork}.c (perform_idle_server_maintenance, child_main, make_child): Change usage of all_buckets (previously with global/static scope) to the new retained->buckets array. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1892587 13f79535-47bb-0310-9956-ffa450edef68
* Add optional options= argument to Listen to add listener-specificJoe Orton2020-04-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | socket options. Reimplement "use_specific_errors" listener flag under generic ap_listen_rec flags field holding all listener-specific options. * include/ap_listen.h: Add AP_LISTEN_* flags. (ap_listen_rec): Rename use_specific_errors to flags. * server/listen.c (make_sock): Set APR_SO_FREEBIND if AP_LISTEN_FREEBIND flag is set on listener; set APR_SO_REUSEPORT unconditionally if AP_LISTEN_REUSEPORT is set. (alloc_listener): Take flags argument. (ap_setup_listeners): Set AP_LISTEN_SPECIFIC_ERRORS flag here. (ap_set_listener): Parse optional options=... argument, catch typos and fail if protocol name contains a "=". (ap_duplicate_listeners): Duplicate flags. Submitted by: jkaluza, Lubos Uhliarik <luhliari redhat.com>, jorton PR: 61865 Github: closes #114 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1876865 13f79535-47bb-0310-9956-ffa450edef68
* Follow up to r1822537: replace static variable with pool userdata.Yann Ylavic2018-05-021-6/+9
| | | | | | | Also adds a comment and a CHANGES entry. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1830744 13f79535-47bb-0310-9956-ffa450edef68
* mpm_unix(es): cleanup properly on exit in one_process mode.Yann Ylavic2018-01-291-0/+15
| | | | | | | | | | | | We can't destroy ap_pglobal in the MPMs because clean_child_exit() runs in a DSO which would be unloaded under us. So we defer an ap_terminate() with atexit() in ap_unixd_mpm_set_signals(), all this is static/builtin code in "os/unix/unixd.c". git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1822537 13f79535-47bb-0310-9956-ffa450edef68
* Add "AcceptErrorsNonFatal" directiveEric Covener2018-01-041-0/+6
| | | | | | | | | | | | | | This tweaks accept() failure processing by having ap_unixd_accept pass more errors up, and having the MPM's check against a macro to see if they are in a whitelist of non ENETDOWN/EMFILE kind of potential process-wide errors. Default behavior is still to exit. edit: MMN bump in 1820099. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1820098 13f79535-47bb-0310-9956-ffa450edef68
* Fix compilation failure :Christophe Jaillet2017-10-241-1/+2
| | | | | | | | | | | | unixd.c: In function ‘ap_unixd_mpm_set_signals’: unixd.c:579:5: error: implicit declaration of function ‘apr_signal’; did you mean ‘strsignal’? [-Werror=implicit-function-declaration] apr_signal(SIGPIPE, SIG_IGN); ^~~~~~~~~~ strsignal Not sure where it comes from, maybe related to r1812301. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1813116 13f79535-47bb-0310-9956-ffa450edef68
* MPMs unix: follow up to r1809881 and r1809973.Yann Ylavic2017-09-281-0/+4
| | | | | | | | unset_signals() is called when ap_pglobal is destroyed too. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1809976 13f79535-47bb-0310-9956-ffa450edef68
* core, MPMs unix: follow up to r1809881.Yann Ylavic2017-09-281-0/+20
| | | | | | | | | | | | | | | | | | Deregister all hooks first (in pre_cleanup), by doing it last we could still have had them run when DSOs were unloaded. Likewise, avoid double faults when handling fatal signals by restoring the default handler before pconf is cleared (we can't ap_log_error there). Finally, we need to ignore sig_term/restart (do nothing) when the main process is exiting (i.e. ap_pglobal is destroyed), since retained_data are freed. Aimed to fix all faults in PR 61558. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1809973 13f79535-47bb-0310-9956-ffa450edef68
* MPMs unix: Place signals handlers and helpers out of DSOs to avoidYann Ylavic2017-02-212-0/+174
| | | | | | | | | a possible crash if a signal is caught during (graceful) restart. PR 60487. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1783849 13f79535-47bb-0310-9956-ffa450edef68
* Save a few bytes in conf pool when parsing some directives. Use temp_pool ↵Christophe Jaillet2015-02-051-2/+2
| | | | | | when applicable. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1657692 13f79535-47bb-0310-9956-ffa450edef68
* Add missing APLOGNO.Christophe Jaillet2014-07-201-2/+2
| | | | | | | | Refactor some lines to keep APLOGNO on the same line as ap_log_error, when applicable. Split lines longer than 80. Improve alignment. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1612068 13f79535-47bb-0310-9956-ffa450edef68
* 'ap_getword_conf' does not return NULL but an empty string if nothing could ↵Christophe Jaillet2013-12-151-2/+2
| | | | | | | | | | | be got. So the message 02173 can never trigger. Actually, this is not a problem because all calls to 'ap_unixd_set_rlimit' are done in configuration parsing functions guarded with AP_INIT_TAKE12, so we are guaranteed to have something. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1551005 13f79535-47bb-0310-9956-ffa450edef68
* Fix valgrind warning about uninitialized memory in argument to semctlStefan Fritsch2013-02-041-1/+1
| | | | | | | | PR: 53690 Submitted by: Mikhail T. <mi+apache aldan algebra com> git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1442326 13f79535-47bb-0310-9956-ffa450edef68
* Various code cleanup to avoid compiler, cppcheck, or clang warnings:Stefan Fritsch2011-12-181-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modules/debugging/mod_firehose.c: Make some internal functions static (to do: logs_cleanup() is unused) modules/filters/mod_charset_lite.c: Remove dead assignments modules/filters/mod_include.c: likewise modules/metadata/mod_usertrack.c: likewise modules/proxy/mod_proxy_ftp.c: likewise modules/ssl/ssl_engine_pphrase.c: likewise modules/proxy/mod_proxy_balancer.c: likewise; Remove NULL check that can never happen modules/proxy/proxy_util.c: Axe NULL-check that can never happen and if it would, it would just mask another bug os/unix/unixd.c: likewise modules/http/http_filters.c: Remove sub-condition that is always true modules/lua/mod_lua.c: Add default cases to switch statements modules/generators/mod_autoindex.c: Unsigned value can never be < 0 server/util_expr_eval.c: Fix compiler warnings with VC and on OS2 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1220493 13f79535-47bb-0310-9956-ffa450edef68
* Add lots of unique tags to error log messagesStefan Fritsch2011-12-031-10/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1209766 13f79535-47bb-0310-9956-ffa450edef68
* Add -D DUMP_RUN_CFG option to dump some configuration itemsStefan Fritsch2011-10-091-0/+1
| | | | | | | | | from the parsed (or default) config. This is useful for init scripts that need to setup temporary directories and permissions, for example if those temporary directories are located on a ram disk. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1180681 13f79535-47bb-0310-9956-ffa450edef68
* More cleanup: Expand tabs and some more indentation fixesStefan Fritsch2011-09-232-3/+3
| | | | | | | No functional change git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1174929 13f79535-47bb-0310-9956-ffa450edef68
* Cleanup effort in prep for GA push:Jim Jagielski2011-09-231-3/+3
| | | | | | | | Trim trailing whitespace... no func change git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1174748 13f79535-47bb-0310-9956-ffa450edef68
* We already have ap_str_tolower(), so also add ap_str_toupper() function and useStefan Fritsch2011-06-221-9/+0
| | | | | | | it where possible. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1138617 13f79535-47bb-0310-9956-ffa450edef68
* fix some logging calls to include the server_recJeff Trawick2011-02-261-2/+2
| | | | | | | (and even the conn_rec in a couple of places) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1074871 13f79535-47bb-0310-9956-ffa450edef68
* Per the existing comment and setrlimit() behavior -- only prevent attempts toEric Covener2010-12-041-1/+4
| | | | | | | | raise the hard limit, not to lower it, by nonroot users. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1042198 13f79535-47bb-0310-9956-ffa450edef68
* suEXEC: Add Suexec directive to disable suEXEC without renaming theJeff Trawick2010-11-101-0/+1
| | | | | | | | | | | | | binary (Suexec Off), or force startup failure if suEXEC is required but not supported (Suexec On). Change SuexecUserGroup to fail startup instead of just printing a warning if suEXEC is disabled. Additionally, ap_unixd_config.suexec_disabled_reason has a message, suitable for logging/messaging, explaining why the feature isn't available. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1033519 13f79535-47bb-0310-9956-ffa450edef68
* The directives "User", "Group" and "ChrootDir" haveRainer Jung2010-06-151-8/+0
| | | | | | | | been moved into mod_unixd. The old macro UNIX_DAEMON_COMMANDS is no longer in use. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@954783 13f79535-47bb-0310-9956-ffa450edef68
* Use the new APLOG_USE_MODULE/AP_DECLARE_MODULE macros everywhere to takeStefan Fritsch2010-06-061-0/+1
| | | | | | | advantage of per-module loglevels git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@951895 13f79535-47bb-0310-9956-ffa450edef68
* generalize the existing (r589761) platform- and errno-specificJeff Trawick2010-04-131-3/+4
| | | | | | | | | | | | logic to suppress an error message if accept() fails after the socket has been marked inactive a message will still be logged, but at debug level instead of error PR: 49058 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@933657 13f79535-47bb-0310-9956-ffa450edef68
* revert 759711 and 759713... don't require apr2Jim Jagielski2009-03-301-9/+60
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@760026 13f79535-47bb-0310-9956-ffa450edef68
* 0600 is UWRITE+UREADMladen Turk2009-03-291-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@759713 13f79535-47bb-0310-9956-ffa450edef68
* Use apr-2 object perms setterMladen Turk2009-03-291-60/+9
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@759711 13f79535-47bb-0310-9956-ffa450edef68
* Core can specify a platform-specific rewrite args hook. Use that on Unix.Jeff Trawick2009-03-291-0/+4
| | | | | | | | Windows continues to specify this in the MPM, at least until someone can separate out the MPM-specific bits. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@759699 13f79535-47bb-0310-9956-ffa450edef68
* remove TPF supportJeff Trawick2009-03-271-12/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@758936 13f79535-47bb-0310-9956-ffa450edef68
* use a local module header file to store the function prototypeRoy T. Fielding2009-01-311-2/+0
| | | | | | | | for ap_unixd_setup_child() that is used outside this module. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@739487 13f79535-47bb-0310-9956-ffa450edef68
* revert r711228: the ap_unixd_setup_child prototype needs to go somewhere.Roy T. Fielding2009-01-301-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@739150 13f79535-47bb-0310-9956-ffa450edef68
* API Cleanup in preperation for 2.4.x, make sure all exported functions or ↵Paul Querna2008-12-022-21/+23
| | | | | | variables contain an ap_ prefix. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@722399 13f79535-47bb-0310-9956-ffa450edef68
* * unixd_setup_child is no longer implemented by unixd.c.Ruediger Pluem2008-11-041-2/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@711228 13f79535-47bb-0310-9956-ffa450edef68
* Further unixd hacks to remove duplication between old-unixd and mod_unixd,Nick Kew2008-11-042-215/+2
| | | | | | | | | | | | and get it working with old MPMS[1] + mod_unixd. It's still an uneasy split, as some modules (mod_cgid, suexec)[2] also use unixd. More thinking+hacking due. [1] Should be prefork/worker/event, but only worker is tested. [2] cgid is OK, suexec is untested. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@711146 13f79535-47bb-0310-9956-ffa450edef68
* Also adjust unixd.c with changes from r709406Jim Jagielski2008-10-311-3/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@709407 13f79535-47bb-0310-9956-ffa450edef68
* Remove all references to CORE_PRIVATE.Paul Querna2008-04-071-1/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@645455 13f79535-47bb-0310-9956-ffa450edef68
* Support chroot on unix-family platformsNick Kew2008-01-122-1/+47
| | | | | | | PR 43596 (Dimitar Pashev) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@611483 13f79535-47bb-0310-9956-ffa450edef68
* After a stop or restart signal, the old listening socketsMartin Kraemer2007-10-291-0/+8
| | | | | | | | | are closed. "Some platforms" drop out of the accept() with an EBADF after the sockets have been closed. Such an error should not clutter the logs. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@589761 13f79535-47bb-0310-9956-ffa450edef68
* APR_HAVE/AP_HAVE are ALWAYS defined, not always 1.William A. Rowe Jr2006-12-131-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@486436 13f79535-47bb-0310-9956-ffa450edef68
* update license header textRoy T. Fielding2006-07-113-18/+18
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@420983 13f79535-47bb-0310-9956-ffa450edef68
* Update the copyright year in all .c, .h and .xml filesColm MacCarthaigh2006-04-193-3/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@395228 13f79535-47bb-0310-9956-ffa450edef68
* * os/unix/unixd.h: Use extern "C" linkage.Joe Orton2005-12-061-0/+8
| | | | | | | PR: 37357 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@354389 13f79535-47bb-0310-9956-ffa450edef68
* No functional Change: Removing trailing whitespace. This alsoJim Jagielski2005-11-101-7/+7
| | | | | | | | means that "blank" lines consisting of just spaces or tabs are now really blank lines git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@332306 13f79535-47bb-0310-9956-ffa450edef68
* No functional change: simple detabbing of indented code.Jim Jagielski2005-11-101-83/+83
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@332305 13f79535-47bb-0310-9956-ffa450edef68
* I'd prefer, before 2.2-final, to have AP_NEED_SET_MUTEX_PERMS definedWilliam A. Rowe Jr2005-09-161-1/+1
| | | | | | | | | across all architectures as 1|0. Comments? This simply ensures we can use the value in #if tests. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@289592 13f79535-47bb-0310-9956-ffa450edef68
* Doxygen fixup / cleanupIan Holsman2005-08-292-1/+21
| | | | | | | | | submited by: Neale Ranns neale ranns.org reviewed by: Ian Holsman git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@263931 13f79535-47bb-0310-9956-ffa450edef68
* Update copyright year to 2005 and standardize on current copyright owner line.Justin Erenkrantz2005-02-043-3/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@151408 13f79535-47bb-0310-9956-ffa450edef68
* Remove the .cvsignore files.Joe Orton2004-11-191-5/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105796 13f79535-47bb-0310-9956-ffa450edef68
* * os/unix/os.h: Define AP_NEED_SET_MUTEX_PERMS.Joe Orton2004-10-121-0/+5
| | | | | | | | | * modules/mappers/mod_rewrite.c, modules/ssl/ssl_engine_mutex.c: Use AP_NEED_SET_MUTEX_PERMS to determine whether unixd_set_*_mutex_perms calls are necessary. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105411 13f79535-47bb-0310-9956-ffa450edef68