From: Stephan Bosch Date: Sun, 13 May 2018 09:33:03 +0000 (+0200) Subject: submission: Add support for module contexts to client. X-Git-Tag: 2.3.5~142 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3672ffa8ed665330caf561745a8a08d5031a5d3d;p=thirdparty%2Fdovecot%2Fcore.git submission: Add support for module contexts to client. --- diff --git a/src/submission/submission-client.c b/src/submission/submission-client.c index 92d10770a2..b08226f19d 100644 --- a/src/submission/submission-client.c +++ b/src/submission/submission-client.c @@ -44,6 +44,8 @@ static const struct smtp_server_callbacks smtp_callbacks; static const struct submission_client_vfuncs submission_client_vfuncs; +struct submission_module_register submission_module_register = { 0 }; + struct client *submission_clients; unsigned int submission_client_count; @@ -225,6 +227,8 @@ struct client *client_create(int fd_in, int fd_out, client_parse_backend_capabilities(client); + p_array_init(&client->module_contexts, client->pool, 5); + client->conn = smtp_server_connection_create(smtp_server, fd_in, fd_out, user->conn.remote_ip, user->conn.remote_port, FALSE, &smtp_set, &smtp_callbacks, client); diff --git a/src/submission/submission-client.h b/src/submission/submission-client.h index 64e6cc730b..a3a4bf1218 100644 --- a/src/submission/submission-client.h +++ b/src/submission/submission-client.h @@ -79,6 +79,9 @@ struct client { struct submission_backend *backends; unsigned int backends_count; + /* Module-specific contexts. */ + ARRAY(union submission_module_context *) module_contexts; + bool standalone:1; bool disconnected:1; bool destroyed:1; @@ -86,6 +89,16 @@ struct client { bool backend_capabilities_configured:1; }; +struct submission_module_register { + unsigned int id; +}; + +union submission_module_context { + struct submission_client_vfuncs super; + struct submission_module_register *reg; +}; +extern struct submission_module_register submission_module_register; + extern struct client *submission_clients; extern unsigned int submission_client_count;