rebase socket activation patch to 2.4.17

This commit is contained in:
Jan Kaluza 2015-10-14 10:52:58 +02:00
parent 91a2788bce
commit c2c03777d6
2 changed files with 31 additions and 28 deletions

View File

@ -1,10 +1,10 @@
diff --git a/server/listen.c b/server/listen.c diff --git a/server/listen.c b/server/listen.c
index 7950a10..428fa5e 100644 index 1d9be83..f5f7754 100644
--- a/server/listen.c --- a/server/listen.c
+++ b/server/listen.c +++ b/server/listen.c
@@ -28,6 +28,10 @@ @@ -34,6 +34,10 @@
#include "http_log.h" #include <unistd.h>
#include "mpm_common.h" #endif
+#ifdef HAVE_SYSTEMD +#ifdef HAVE_SYSTEMD
+#include <systemd/sd-daemon.h> +#include <systemd/sd-daemon.h>
@ -13,8 +13,8 @@ index 7950a10..428fa5e 100644
/* we know core's module_index is 0 */ /* we know core's module_index is 0 */
#undef APLOG_MODULE_INDEX #undef APLOG_MODULE_INDEX
#define APLOG_MODULE_INDEX AP_CORE_MODULE_INDEX #define APLOG_MODULE_INDEX AP_CORE_MODULE_INDEX
@@ -38,9 +42,12 @@ static ap_listen_rec *old_listeners; @@ -59,9 +63,12 @@ static int ap_listenbacklog;
static int ap_listenbacklog; static int ap_listencbratio;
static int send_buffer_size; static int send_buffer_size;
static int receive_buffer_size; static int receive_buffer_size;
+#ifdef HAVE_SYSTEMD +#ifdef HAVE_SYSTEMD
@ -27,7 +27,7 @@ index 7950a10..428fa5e 100644
{ {
apr_socket_t *s = server->sd; apr_socket_t *s = server->sd;
int one = 1; int one = 1;
@@ -73,20 +80,6 @@ static apr_status_t make_sock(apr_pool_t *p, ap_listen_rec *server) @@ -94,20 +101,6 @@ static apr_status_t make_sock(apr_pool_t *p, ap_listen_rec *server)
return stat; return stat;
} }
@ -48,8 +48,8 @@ index 7950a10..428fa5e 100644
/* /*
* To send data over high bandwidth-delay connections at full * To send data over high bandwidth-delay connections at full
* speed we must force the TCP window to open wide enough to keep the * speed we must force the TCP window to open wide enough to keep the
@@ -131,21 +124,37 @@ static apr_status_t make_sock(apr_pool_t *p, ap_listen_rec *server) @@ -169,21 +162,37 @@ static apr_status_t make_sock(apr_pool_t *p, ap_listen_rec *server)
ap_sock_disable_nagle(s); }
#endif #endif
- if ((stat = apr_socket_bind(s, server->bind_addr)) != APR_SUCCESS) { - if ((stat = apr_socket_bind(s, server->bind_addr)) != APR_SUCCESS) {
@ -100,7 +100,7 @@ index 7950a10..428fa5e 100644
} }
#ifdef WIN32 #ifdef WIN32
@@ -239,6 +248,124 @@ static apr_status_t close_listeners_on_exec(void *v) @@ -277,6 +286,124 @@ static apr_status_t close_listeners_on_exec(void *v)
return APR_SUCCESS; return APR_SUCCESS;
} }
@ -225,7 +225,7 @@ index 7950a10..428fa5e 100644
static const char *alloc_listener(process_rec *process, char *addr, static const char *alloc_listener(process_rec *process, char *addr,
apr_port_t port, const char* proto, apr_port_t port, const char* proto,
void *slave) void *slave)
@@ -441,7 +568,7 @@ static int open_listeners(apr_pool_t *pool) @@ -479,7 +606,7 @@ static int open_listeners(apr_pool_t *pool)
} }
} }
#endif #endif
@ -234,13 +234,12 @@ index 7950a10..428fa5e 100644
++num_open; ++num_open;
} }
else { else {
@@ -557,8 +684,29 @@ AP_DECLARE(int) ap_setup_listeners(server_rec *s) @@ -591,8 +718,28 @@ AP_DECLARE(int) ap_setup_listeners(server_rec *s)
} }
} }
- if (open_listeners(s->process->pool)) { - if (open_listeners(s->process->pool)) {
- return 0; - return 0;
+
+#ifdef HAVE_SYSTEMD +#ifdef HAVE_SYSTEMD
+ if (use_systemd) { + if (use_systemd) {
+ const char *userdata_key = "ap_open_systemd_listeners"; + const char *userdata_key = "ap_open_systemd_listeners";
@ -266,15 +265,16 @@ index 7950a10..428fa5e 100644
} }
for (lr = ap_listeners; lr; lr = lr->next) { for (lr = ap_listeners; lr; lr = lr->next) {
@@ -591,6 +739,7 @@ AP_DECLARE_NONSTD(void) ap_close_listeners(void) @@ -682,7 +829,7 @@ AP_DECLARE(apr_status_t) ap_duplicate_listeners(apr_pool_t *p, server_rec *s,
lr->active = 0; duplr->bind_addr);
return stat;
} }
} - make_sock(p, duplr);
+ + make_sock(p, duplr, 1);
AP_DECLARE_NONSTD(int) ap_close_selected_listeners(ap_slave_t *slave) #if AP_NONBLOCK_WHEN_MULTI_LISTEN
{ use_nonblock = (ap_listeners && ap_listeners->next);
ap_listen_rec *lr; stat = apr_socket_opt_set(duplr->sd, APR_SO_NONBLOCK, use_nonblock);
@@ -630,6 +779,11 @@ AP_DECLARE_NONSTD(const char *) ap_set_listener(cmd_parms *cmd, void *dummy, @@ -809,6 +956,11 @@ AP_DECLARE_NONSTD(const char *) ap_set_listener(cmd_parms *cmd, void *dummy,
if (argc < 1 || argc > 2) { if (argc < 1 || argc > 2) {
return "Listen requires 1 or 2 arguments."; return "Listen requires 1 or 2 arguments.";
} }
@ -286,7 +286,7 @@ index 7950a10..428fa5e 100644
rv = apr_parse_addr_port(&host, &scope_id, &port, argv[0], cmd->pool); rv = apr_parse_addr_port(&host, &scope_id, &port, argv[0], cmd->pool);
if (rv != APR_SUCCESS) { if (rv != APR_SUCCESS) {
@@ -661,6 +815,12 @@ AP_DECLARE_NONSTD(const char *) ap_set_listener(cmd_parms *cmd, void *dummy, @@ -840,6 +992,12 @@ AP_DECLARE_NONSTD(const char *) ap_set_listener(cmd_parms *cmd, void *dummy,
ap_str_tolower(proto); ap_str_tolower(proto);
} }

View File

@ -8,7 +8,7 @@
Summary: Apache HTTP Server Summary: Apache HTTP Server
Name: httpd Name: httpd
Version: 2.4.17 Version: 2.4.17
Release: 1%{?dist} Release: 2%{?dist}
URL: http://httpd.apache.org/ URL: http://httpd.apache.org/
Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2 Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2
Source1: index.html Source1: index.html
@ -60,7 +60,7 @@ Patch27: httpd-2.4.2-icons.patch
Patch29: httpd-2.4.10-mod_systemd.patch Patch29: httpd-2.4.10-mod_systemd.patch
Patch30: httpd-2.4.4-cachehardmax.patch Patch30: httpd-2.4.4-cachehardmax.patch
Patch31: httpd-2.4.6-sslmultiproxy.patch Patch31: httpd-2.4.6-sslmultiproxy.patch
Patch34: httpd-2.4.9-socket-activation.patch Patch34: httpd-2.4.17-socket-activation.patch
Patch35: httpd-2.4.17-sslciphdefault.patch Patch35: httpd-2.4.17-sslciphdefault.patch
# Bug fixes # Bug fixes
Patch55: httpd-2.4.4-malformed-host.patch Patch55: httpd-2.4.4-malformed-host.patch
@ -204,7 +204,7 @@ interface for storing and accessing per-user session data.
%patch29 -p1 -b .systemd %patch29 -p1 -b .systemd
%patch30 -p1 -b .cachehardmax %patch30 -p1 -b .cachehardmax
%patch31 -p1 -b .sslmultiproxy %patch31 -p1 -b .sslmultiproxy
#patch34 -p1 -b .socketactivation %patch34 -p1 -b .socketactivation
%patch35 -p1 -b .sslciphdefault %patch35 -p1 -b .sslciphdefault
%patch55 -p1 -b .malformedhost %patch55 -p1 -b .malformedhost
@ -674,6 +674,9 @@ rm -rf $RPM_BUILD_ROOT
%{_rpmconfigdir}/macros.d/macros.httpd %{_rpmconfigdir}/macros.d/macros.httpd
%changelog %changelog
* Wed Oct 14 2015 Jan Kaluza <jkaluza@redhat.com> - 2.4.17-2
- rebase socket activation patch to 2.4.17
* Tue Oct 13 2015 Joe Orton <jorton@redhat.com> - 2.4.17-1 * Tue Oct 13 2015 Joe Orton <jorton@redhat.com> - 2.4.17-1
- update to 2.4.17 (#1271224) - update to 2.4.17 (#1271224)
- build, load mod_http2 - build, load mod_http2