From: Marco Bettini Date: Thu, 1 Sep 2022 13:54:34 +0000 (+0000) Subject: doveadm: struct doveadm_cmd_dump - Add struct doveadm_cmd_context to test() and cmd... X-Git-Tag: 2.4.0~3570 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4012d938e31b7db1e070964c4c4f452436385d5d;p=thirdparty%2Fdovecot%2Fcore.git doveadm: struct doveadm_cmd_dump - Add struct doveadm_cmd_context to test() and cmd() APIs --- diff --git a/src/doveadm/doveadm-compress.c b/src/doveadm/doveadm-compress.c index 41aac0898b..583164b3c3 100644 --- a/src/doveadm/doveadm-compress.c +++ b/src/doveadm/doveadm-compress.c @@ -15,7 +15,8 @@ #include #include -static bool test_dump_imap_compress(const char *path) +static bool test_dump_imap_compress(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path) { const char *p; char buf[4096]; @@ -42,7 +43,8 @@ static bool test_dump_imap_compress(const char *path) } static void -cmd_dump_imap_compress(const char *path, const char *const *args ATTR_UNUSED) +cmd_dump_imap_compress(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path, const char *const *args ATTR_UNUSED) { struct istream *input, *input2; const unsigned char *data; diff --git a/src/doveadm/doveadm-dump-dbox.c b/src/doveadm/doveadm-dump-dbox.c index 16d8a0e9d2..0ddf6988a4 100644 --- a/src/doveadm/doveadm-dump-dbox.c +++ b/src/doveadm/doveadm-dump-dbox.c @@ -189,7 +189,8 @@ static bool dump_msg(struct istream *input, unsigned int hdr_size) return TRUE; } -static void cmd_dump_dbox(const char *path, const char *const *args ATTR_UNUSED) +static void cmd_dump_dbox(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path, const char *const *args ATTR_UNUSED) { struct istream *input; int fd; @@ -212,7 +213,8 @@ static void cmd_dump_dbox(const char *path, const char *const *args ATTR_UNUSED) i_stream_destroy(&input); } -static bool test_dump_dbox(const char *path) +static bool test_dump_dbox(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path) { const char *p; diff --git a/src/doveadm/doveadm-dump-dcrypt-file.c b/src/doveadm/doveadm-dump-dcrypt-file.c index 3703bf488e..79c3717852 100644 --- a/src/doveadm/doveadm-dump-dcrypt-file.c +++ b/src/doveadm/doveadm-dump-dcrypt-file.c @@ -69,7 +69,8 @@ static bool dcrypt_file_dump_metadata(const char *filename, bool print) return ret; } -static bool test_dump_dcrypt_file(const char *path) +static bool test_dump_dcrypt_file(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path) { if (!dcrypt_initialize("openssl", NULL, NULL)) return FALSE; @@ -78,7 +79,8 @@ static bool test_dump_dcrypt_file(const char *path) } static void -cmd_dump_dcrypt_file(const char *path, const char *const *args ATTR_UNUSED) +cmd_dump_dcrypt_file(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path, const char *const *args ATTR_UNUSED) { const char *error = NULL; if (!dcrypt_initialize("openssl", NULL, &error)) diff --git a/src/doveadm/doveadm-dump-dcrypt-key.c b/src/doveadm/doveadm-dump-dcrypt-key.c index cecd27f3d2..7df2ce5d9c 100644 --- a/src/doveadm/doveadm-dump-dcrypt-key.c +++ b/src/doveadm/doveadm-dump-dcrypt-key.c @@ -191,7 +191,8 @@ static bool dcrypt_key_dump_metadata(const char *filename, bool print) return TRUE; } -static bool test_dump_dcrypt_key(const char *path) +static bool test_dump_dcrypt_key(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path) { if (!dcrypt_initialize("openssl", NULL, NULL)) return FALSE; @@ -200,7 +201,8 @@ static bool test_dump_dcrypt_key(const char *path) } static void -cmd_dump_dcrypt_key(const char *path, const char *const *args ATTR_UNUSED) +cmd_dump_dcrypt_key(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path, const char *const *args ATTR_UNUSED) { const char *error = NULL; if (!dcrypt_initialize("openssl", NULL, &error)) diff --git a/src/doveadm/doveadm-dump-index.c b/src/doveadm/doveadm-dump-index.c index 940cff9fd8..2f2e1b9fbc 100644 --- a/src/doveadm/doveadm-dump-index.c +++ b/src/doveadm/doveadm-dump-index.c @@ -764,7 +764,8 @@ static struct mail_index *path_open_index(const char *path) } static void -cmd_dump_index(const char *path, const char *const *args) +cmd_dump_index(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path, const char *const *args) { struct mail_index *index; struct mail_index_view *view; @@ -809,7 +810,8 @@ cmd_dump_index(const char *path, const char *const *args) mail_index_free(&index); } -static bool test_dump_index(const char *path) +static bool test_dump_index(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path) { struct mail_index *index; bool ret; diff --git a/src/doveadm/doveadm-dump-log.c b/src/doveadm/doveadm-dump-log.c index 0725b289ee..67f3b43909 100644 --- a/src/doveadm/doveadm-dump-log.c +++ b/src/doveadm/doveadm-dump-log.c @@ -518,7 +518,8 @@ static int dump_record(struct istream *input, uint64_t *modseq, return 1; } -static void cmd_dump_log(const char *path, const char *const *args ATTR_UNUSED) +static void cmd_dump_log(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path, const char *const *args ATTR_UNUSED) { struct istream *input; uint64_t modseq; @@ -535,7 +536,8 @@ static void cmd_dump_log(const char *path, const char *const *args ATTR_UNUSED) i_stream_unref(&input); } -static bool test_dump_log(const char *path) +static bool test_dump_log(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path) { struct mail_transaction_log_header hdr; const char *p; diff --git a/src/doveadm/doveadm-dump-mailboxlog.c b/src/doveadm/doveadm-dump-mailboxlog.c index 8ff5a54176..702d0575c9 100644 --- a/src/doveadm/doveadm-dump-mailboxlog.c +++ b/src/doveadm/doveadm-dump-mailboxlog.c @@ -58,7 +58,8 @@ static int dump_record(int fd) } static void -cmd_dump_mailboxlog(const char *path, const char *const *args ATTR_UNUSED) +cmd_dump_mailboxlog(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path, const char *const *args ATTR_UNUSED) { int fd, ret; @@ -74,7 +75,8 @@ cmd_dump_mailboxlog(const char *path, const char *const *args ATTR_UNUSED) i_close_fd(&fd); } -static bool test_dump_mailboxlog(const char *path) +static bool test_dump_mailboxlog(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path) { const char *p; int fd; diff --git a/src/doveadm/doveadm-dump-thread.c b/src/doveadm/doveadm-dump-thread.c index 026b07fdb2..11d4e6dc74 100644 --- a/src/doveadm/doveadm-dump-thread.c +++ b/src/doveadm/doveadm-dump-thread.c @@ -92,7 +92,8 @@ static int dump_block(const uint8_t *data, const uint8_t *end, uint32_t *uid) } static void -cmd_dump_thread(const char *path, const char *const *args ATTR_UNUSED) +cmd_dump_thread(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path, const char *const *args ATTR_UNUSED) { unsigned int pos; const void *map, *end; @@ -124,7 +125,8 @@ cmd_dump_thread(const char *path, const char *const *args ATTR_UNUSED) i_close_fd(&fd); } -static bool test_dump_thread(const char *path) +static bool test_dump_thread(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path) { const char *p; diff --git a/src/doveadm/doveadm-dump.c b/src/doveadm/doveadm-dump.c index eb7091408e..871d1846f8 100644 --- a/src/doveadm/doveadm-dump.c +++ b/src/doveadm/doveadm-dump.c @@ -30,12 +30,12 @@ dump_find_name(const char *name) } static const struct doveadm_cmd_dump * -dump_find_test(const char *path) +dump_find_test(struct doveadm_cmd_context *cctx, const char *path) { const struct doveadm_cmd_dump *dump; array_foreach_elem(&dumps, dump) { - if (dump->test != NULL && dump->test(path)) + if (dump->test != NULL && dump->test(cctx, path)) return dump; } return NULL; @@ -52,7 +52,7 @@ static void cmd_dump(struct doveadm_cmd_context *cctx) (void)doveadm_cmd_param_str(cctx, "type", &type); (void)doveadm_cmd_param_array(cctx, "args", &args); - dump = type != NULL ? dump_find_name(type) : dump_find_test(path); + dump = type != NULL ? dump_find_name(type) : dump_find_test(cctx, path); if (dump == NULL) { if (type != NULL) { print_dump_types(); @@ -65,7 +65,7 @@ static void cmd_dump(struct doveadm_cmd_context *cctx) if (type == NULL) printf("Detected file type: %s\n", dump->name); } - dump->cmd(path, args != NULL ? args : &no_args); + dump->cmd(cctx, path, args != NULL ? args : &no_args); } struct doveadm_cmd_ver2 doveadm_cmd_dump = { @@ -80,7 +80,8 @@ DOVEADM_CMD_PARAMS_END }; static void -cmd_dump_multiplex(const char *path, const char *const *args ATTR_UNUSED) +cmd_dump_multiplex(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path, const char *const *args ATTR_UNUSED) { const unsigned int channels_count = 256; struct istream *file_input, *channels[channels_count]; diff --git a/src/doveadm/doveadm-dump.h b/src/doveadm/doveadm-dump.h index 24ca45aadc..c0bed8b4d9 100644 --- a/src/doveadm/doveadm-dump.h +++ b/src/doveadm/doveadm-dump.h @@ -5,8 +5,9 @@ struct doveadm_cmd_dump { const char *name; - bool (*test)(const char *path); - void (*cmd)(const char *path, const char *const *args); + bool (*test)(struct doveadm_cmd_context *cctx, const char *path); + void (*cmd)(struct doveadm_cmd_context *cctx, + const char *path, const char *const *args); }; extern struct doveadm_cmd_dump doveadm_cmd_dump_dbox; diff --git a/src/plugins/fts-flatcurve/doveadm-dump-flatcurve.c b/src/plugins/fts-flatcurve/doveadm-dump-flatcurve.c index 4835605cc8..022e1fe144 100644 --- a/src/plugins/fts-flatcurve/doveadm-dump-flatcurve.c +++ b/src/plugins/fts-flatcurve/doveadm-dump-flatcurve.c @@ -90,7 +90,8 @@ cmd_dump_fts_flatcurve_print_terms(ARRAY_TYPE(fts_flatcurve_dump_term) *terms) } static void -cmd_dump_fts_flatcurve_bundle(const char *arg_path, +cmd_dump_fts_flatcurve_bundle(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *arg_path, const char *const *args ATTR_UNUSED) { T_BEGIN { @@ -117,7 +118,8 @@ cmd_dump_fts_flatcurve_bundle(const char *arg_path, } static bool -test_dump_fts_flatcurve_bundle(const char *arg_path) +test_dump_fts_flatcurve_bundle(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *arg_path) { bool located; T_BEGIN { diff --git a/src/plugins/fts/doveadm-dump-fts-expunge-log.c b/src/plugins/fts/doveadm-dump-fts-expunge-log.c index 7438bca8ad..2de2c75c38 100644 --- a/src/plugins/fts/doveadm-dump-fts-expunge-log.c +++ b/src/plugins/fts/doveadm-dump-fts-expunge-log.c @@ -74,7 +74,8 @@ static int dump_record(int fd, buffer_t *buf) } static void -cmd_dump_fts_expunge_log(const char *path, const char *const *args ATTR_UNUSED) +cmd_dump_fts_expunge_log(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path, const char *const *args ATTR_UNUSED) { buffer_t *buf; int fd, ret; @@ -93,7 +94,8 @@ cmd_dump_fts_expunge_log(const char *path, const char *const *args ATTR_UNUSED) i_close_fd(&fd); } -static bool test_dump_fts_expunge_log(const char *path) +static bool test_dump_fts_expunge_log(struct doveadm_cmd_context *cctx ATTR_UNUSED, + const char *path) { const char *p;