43
43
const char *const *args;
44
44
/* args including -options */
45
45
const char *const *full_args;
46
/* connection via doveadm-server */
47
struct client_connection *conn;
47
49
const char *getopt_args;
48
50
const struct doveadm_settings *set;
49
51
enum mail_storage_service_flags service_flags;
50
52
struct mail_storage_service_ctx *storage_service;
53
struct mail_storage_service_input storage_service_input;
51
54
/* search args aren't set for all mail commands */
52
55
struct mail_search_args *search_args;
57
struct ip_addr cur_client_ip;
54
58
const char *cur_username;
55
59
struct mail_storage_service_user *cur_service_user;
56
60
struct mail_user *cur_mail_user;
57
61
struct doveadm_mail_cmd_vfuncs v;
59
ARRAY_DEFINE(module_contexts, union doveadm_mail_cmd_module_context *);
63
ARRAY(union doveadm_mail_cmd_module_context *) module_contexts;
61
65
/* if non-zero, exit with this code */
68
/* This command is being called by a remote doveadm client. */
69
unsigned int proxying:1;
64
70
/* We're handling only a single user */
65
71
unsigned int iterate_single_user:1;
66
72
/* We're going through all users (not set for wildcard usernames) */
92
98
void doveadm_mail_init(void);
93
99
void doveadm_mail_deinit(void);
101
const struct doveadm_mail_cmd *
102
doveadm_mail_cmd_find_from_argv(const char *cmd_name, int *argc,
103
const char *const **argv);
95
104
struct doveadm_mail_cmd_context *
96
105
doveadm_mail_cmd_init(const struct doveadm_mail_cmd *cmd,
97
106
const struct doveadm_settings *set);
127
136
void doveadm_mail_failed_mailbox(struct doveadm_mail_cmd_context *ctx,
128
137
struct mailbox *box);
130
struct doveadm_mail_cmd cmd_expunge;
131
struct doveadm_mail_cmd cmd_search;
132
struct doveadm_mail_cmd cmd_fetch;
133
struct doveadm_mail_cmd cmd_import;
134
struct doveadm_mail_cmd cmd_index;
135
struct doveadm_mail_cmd cmd_altmove;
136
struct doveadm_mail_cmd cmd_move;
137
struct doveadm_mail_cmd cmd_mailbox_list;
138
struct doveadm_mail_cmd cmd_mailbox_create;
139
struct doveadm_mail_cmd cmd_mailbox_delete;
140
struct doveadm_mail_cmd cmd_mailbox_rename;
141
struct doveadm_mail_cmd cmd_mailbox_subscribe;
142
struct doveadm_mail_cmd cmd_mailbox_unsubscribe;
143
struct doveadm_mail_cmd cmd_mailbox_status;
139
extern struct doveadm_mail_cmd cmd_expunge;
140
extern struct doveadm_mail_cmd cmd_search;
141
extern struct doveadm_mail_cmd cmd_fetch;
142
extern struct doveadm_mail_cmd cmd_flags_add;
143
extern struct doveadm_mail_cmd cmd_flags_remove;
144
extern struct doveadm_mail_cmd cmd_flags_replace;
145
extern struct doveadm_mail_cmd cmd_import;
146
extern struct doveadm_mail_cmd cmd_index;
147
extern struct doveadm_mail_cmd cmd_altmove;
148
extern struct doveadm_mail_cmd cmd_copy;
149
extern struct doveadm_mail_cmd cmd_deduplicate;
150
extern struct doveadm_mail_cmd cmd_move;
151
extern struct doveadm_mail_cmd cmd_mailbox_list;
152
extern struct doveadm_mail_cmd cmd_mailbox_create;
153
extern struct doveadm_mail_cmd cmd_mailbox_delete;
154
extern struct doveadm_mail_cmd cmd_mailbox_rename;
155
extern struct doveadm_mail_cmd cmd_mailbox_subscribe;
156
extern struct doveadm_mail_cmd cmd_mailbox_unsubscribe;
157
extern struct doveadm_mail_cmd cmd_mailbox_status;
158
extern struct doveadm_mail_cmd cmd_batch;