#include "submission-commands.h"
#include "submission-backend.h"
+struct submission_backend_module_register
+submission_backend_module_register = { 0 };
+
void submission_backend_init(struct submission_backend *backend,
pool_t pool, struct client *client,
const struct submission_backend_vfuncs *vfunc)
backend->client = client;
backend->v = *vfunc;
+ p_array_init(&backend->module_contexts, pool, 5);
+
client->backends_count++;
DLLIST_PREPEND(&client->backends, backend);
}
struct submission_recipient;
struct submission_backend;
+union submission_backend_module_context;
struct submission_backend_vfuncs {
void (*destroy)(struct submission_backend *backend);
char *fail_enh_code;
char *fail_reason;
+ /* Module-specific contexts. */
+ ARRAY(union submission_backend_module_context *) module_contexts;
+
bool started:1;
bool ready:1;
bool trans_started:1;
};
+struct submission_backend_module_register {
+ unsigned int id;
+};
+
+union submission_backend_module_context {
+ struct submission_backend_module_register *reg;
+};
+extern struct submission_backend_module_register
+submission_backend_module_register;
+
void submission_backend_init(struct submission_backend *backend,
pool_t pool, struct client *client,
const struct submission_backend_vfuncs *vfunc);