diff options
author | Yann Ylavic <ylavic@apache.org> | 2021-09-09 18:55:24 +0200 |
---|---|---|
committer | Yann Ylavic <ylavic@apache.org> | 2021-09-09 18:55:24 +0200 |
commit | 2b7f51ade70bf6d517b94311dda5250e2dca85a7 (patch) | |
tree | 2a72ec52aa4cdbe0f8446c15553b877d47abc61d /include | |
parent | * optimizing hook check as suggested by Yann. (diff) | |
download | apache2-2b7f51ade70bf6d517b94311dda5250e2dca85a7.tar.xz apache2-2b7f51ade70bf6d517b94311dda5250e2dca85a7.zip |
core: Add ap_create_connection() to create a server or client/proxy connection.
c->outgoing shouldn't be set by mod_ssl, ap_create_connection() allows that
and this commit also replaces all the calls to ap_run_create_connection() in
mod_proxy modules (not in the MPMs which create incoming connections only).
* include/http_connection.h, server/connection.c:
Declare and implement ap_create_connection().
* modules/proxy/proxy_util.c, modules/proxy/mod_proxy_connect.c,
modules/proxy/mod_proxy_ftp.c:
Use ap_create_connection() instead of ap_run_create_connection(), and don't
provide a connection_id a scoreboard handle for outgoing connection.
* server/log.c(do_errorlog_default):
Use c->outgoing instead of c->sbh to determine if it's a "client" or "remote"
connection.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893184 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'include')
-rw-r--r-- | include/ap_mmn.h | 3 | ||||
-rw-r--r-- | include/http_connection.h | 22 |
2 files changed, 24 insertions, 1 deletions
diff --git a/include/ap_mmn.h b/include/ap_mmn.h index 4686cd3cb4..349e56274c 100644 --- a/include/ap_mmn.h +++ b/include/ap_mmn.h @@ -679,6 +679,7 @@ * ap_proxy_define_worker_ex() to mod_proxy.h * 20210531.3 (2.5.1-dev) Add hook child_stopping to get informed that a child * is being shut down. + * 20210531.4 (2.5.1-dev) Add ap_create_connection */ #define MODULE_MAGIC_COOKIE 0x41503235UL /* "AP25" */ @@ -686,7 +687,7 @@ #ifndef MODULE_MAGIC_NUMBER_MAJOR #define MODULE_MAGIC_NUMBER_MAJOR 20210531 #endif -#define MODULE_MAGIC_NUMBER_MINOR 3 /* 0...n */ +#define MODULE_MAGIC_NUMBER_MINOR 4 /* 0...n */ /** * Determine if the server's current MODULE_MAGIC_NUMBER is at least a diff --git a/include/http_connection.h b/include/http_connection.h index 8bc009da3b..b49a2577c5 100644 --- a/include/http_connection.h +++ b/include/http_connection.h @@ -135,6 +135,28 @@ AP_DECLARE_HOOK(int,process_connection,(conn_rec *c)) */ AP_DECLARE_HOOK(int,pre_close_connection,(conn_rec *c)) +/** + * Create a new server/incoming or client/outgoing/proxy connection + * @param p The pool from which to allocate the connection record + * @param server The server record to create the connection too. + * @param csd The socket that has been accepted + * @param conn_id A unique identifier for this connection. The ID only + * needs to be unique at that time, not forever. + * @param sbh A handle to scoreboard information for this connection. + * @param alloc The bucket allocator to use for all bucket/brigade creations + * @param outgoing Whether it's an outgoing (client) connection + * @return An allocated connection record or NULL. + * @remark To allow for future flags, outgoing must be a boolean (0 or 1) + * for now, otherwise NULL is returned + */ +AP_DECLARE(conn_rec *) ap_create_connection(apr_pool_t *p, + server_rec *server, + apr_socket_t *csd, + long conn_id, void *sbh, + apr_bucket_alloc_t *alloc, + unsigned int outgoing); + + /** End Of Connection (EOC) bucket */ AP_DECLARE_DATA extern const apr_bucket_type_t ap_bucket_type_eoc; |