summaryrefslogtreecommitdiffstats
path: root/include/ap_mmn.h
diff options
context:
space:
mode:
authorYann Ylavic <ylavic@apache.org>2024-06-11 16:46:29 +0200
committerYann Ylavic <ylavic@apache.org>2024-06-11 16:46:29 +0200
commit0d71da4bdfff4c18abcea77ffa76227f70be0f73 (patch)
tree86b029a563a1184b7f360049ece10348cc02f963 /include/ap_mmn.h
parentCI: Set the path to php-fpm so it's found by proxy_fcgi.t (after r1918149). (diff)
downloadapache2-0d71da4bdfff4c18abcea77ffa76227f70be0f73.tar.xz
apache2-0d71da4bdfff4c18abcea77ffa76227f70be0f73.zip
mpm_event,mod_http2: Keep compatibility with CONN_STATE_PROCESSING + OK
Before r1918022, returning OK with CONN_STATE_PROCESSING to mpm_event was handled like/by CONN_STATE_LINGER "to not break old or third-party modules which might return OK w/o touching the state and expect lingering close, like with worker or prefork MPMs". So we need a new return code to be allowed to apply the new POLLIN/POLLOUT behaviour for CONN_STATE_PROCESSING, thus revive AGAIN as introduced by Graham some times ago for a nonblocking WIP (moved to a branch/PR since then). MPM event will advertise its ability to handle CONN_STATE_PROCESSING + AGAIN with AP_MPMQ_CAN_AGAIN, and mod_http2 can use that to know how to return to the MPM as expected. When !AP_MPMQ_CAN_AGAIN modules/mod_http2 can still use CONN_STATE_WRITE_COMPLETION + CONN_SENSE_WANT_READ + c->clogging_input_filters which will work in mpm_even-2.4.x still. * include/ap_mmn.h: Bump MMN minor for AP_MPMQ_CAN_AGAIN and AGAIN. * include/ap_mpm.h: Define AP_MPMQ_CAN_AGAIN. * include/httpd.h: Define AGAIN. * modules/http2/h2.h: No need for H2_USE_STATE_PROCESSING anymore with AP_MPMQ_CAN_AGAIN. * modules/http2/h2_c1.c: For !keepalive case return to the MPM using CONN_STATE_PROCESSING + AGAIN or CONN_STATE_WRITE_COMPLETION + c->clogging_input_filters depending on AP_MPMQ_CAN_AGAIN only. * modules/http2/h2_session.c: Can return to the MPM for h2_send_flow_blocked() provided it's async only. * server/mpm/event/event.c: Rework process_socket()'s CONN_STATE_PROCESSING to handle AGAIN and preserve compatibility. Have a lingering_close label to goto there faster when process_lingering_close() is to be called. Improve relevant comments. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1918257 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'include/ap_mmn.h')
-rw-r--r--include/ap_mmn.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/ap_mmn.h b/include/ap_mmn.h
index 34abf61654..fcf98e8908 100644
--- a/include/ap_mmn.h
+++ b/include/ap_mmn.h
@@ -725,6 +725,7 @@
* 20211221.19 (2.5.1-dev) Add AP_REG_NOTEMPTY_ATSTART
* 20211221.20 (2.5.1-dev) Add CONN_STATE_KEEPALIVE and CONN_STATE_PROCESSING
* 20211221.21 (2.5.1-dev) Add processing field struct process_score
+ * 20211221.22 (2.5.1-dev) Add AGAIN, AP_MPMQ_CAN_AGAIN.
*/
#define MODULE_MAGIC_COOKIE 0x41503235UL /* "AP25" */
@@ -732,7 +733,7 @@
#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 20211221
#endif
-#define MODULE_MAGIC_NUMBER_MINOR 21 /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 22 /* 0...n */
/**
* Determine if the server's current MODULE_MAGIC_NUMBER is at least a