* 20211221.17 (2.5.1-dev) Add ap_proxy_worker_get_name()
* 20211221.18 (2.5.1-dev) Add ap_regexec_ex()
* 20211221.19 (2.5.1-dev) Add AP_REG_NOTEMPTY_ATSTART
+ * 20211221.20 (2.5.1-dev) Add CONN_STATE_KEEPALIVE and CONN_STATE_PROCESS
*/
#define MODULE_MAGIC_COOKIE 0x41503235UL /* "AP25" */
#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 20211221
#endif
-#define MODULE_MAGIC_NUMBER_MINOR 19 /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 20 /* 0...n */
/**
* Determine if the server's current MODULE_MAGIC_NUMBER is at least a
#define H2_USE_WEBSOCKETS 0
#endif
+#if AP_MODULE_MAGIC_AT_LEAST(20211221, 20)
+#define H2_USE_STATE_PROCESS 1
+#else
+#define H2_USE_STATE_PROCESS 0
+#endif
+
/**
* The magic PRIamble of RFC 7540 that is always sent when starting
* a h2 communication.
* the Timeout behaviour instead of a KeepAliveTimeout
* See PR 63534.
*/
+#if H2_USE_STATE_PROCESS
c->cs->state = CONN_STATE_PROCESS;
+#else
+ c->cs->state = CONN_STATE_WRITE_COMPLETION;
+#endif
c->cs->sense = CONN_SENSE_WANT_READ;
}
break;
}
}
+#if H2_USE_STATE_PROCESS
static int h2_send_flow_blocked(h2_session *session)
{
/* We are completely send blocked if either the connection window
return ((nghttp2_session_get_remote_window_size(session->ngh2) <= 0) ||
h2_mplx_c1_all_streams_send_win_exhausted(session->mplx));
}
+#endif
apr_status_t h2_session_process(h2_session *session, int async,
int *pkeepalive)
break;
}
}
-#if AP_MODULE_MAGIC_AT_LEAST(20211221, 19)
+#if H2_USE_STATE_PROCESS
else if (async && h2_send_flow_blocked(session)) {
/* On a recent HTTPD, we can return to mpm c1 monitoring,
* as it does not treat all connections as having KeepAlive