#include <fcntl.h>
#include <unistd.h>
-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];
}
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;
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;
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;
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;
}
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))
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;
}
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))
}
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;
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;
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;
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;
}
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;
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;
}
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;
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;
}
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;
(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();
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 = {
};
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];
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;
}
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 {
}
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 {
}
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;
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;