]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
submission: Add support for module contexts to client.
authorStephan Bosch <stephan.bosch@dovecot.fi>
Sun, 13 May 2018 09:33:03 +0000 (11:33 +0200)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Tue, 12 Feb 2019 13:40:54 +0000 (15:40 +0200)
src/submission/submission-client.c
src/submission/submission-client.h

index 92d10770a235563727c6661e429f43eea1cbfe01..b08226f19d3f1b5c08b2d5fc936928ce02284837 100644 (file)
@@ -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);
index 64e6cc730b4f00eab9aaca1f70c3981679b3ff8a..a3a4bf12180ff9ef37deb71835ad2ded8be6983c 100644 (file)
@@ -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;