doveadm_http_server_command_execute(struct client_connection_http *conn)
{
const struct doveadm_cmd_param *cpar;
- int rc;
/* final preflight check */
if (!doveadm_client_is_allowed_command(conn->client.set, conn->cmd->name))
ioloop = io_loop_create();
lib_signals_reset_ioloop();
doveadm_exit_code = 0;
- rc = conn->cmd->cmd(conn->cmd,pargc, cpar);
+ conn->cmd->cmd(conn->cmd,pargc, cpar);
io_loop_set_current(prev_ioloop);
lib_signals_reset_ioloop();
o_stream_nsend_str(conn->client.output,",");
}
- if (rc != 0 || doveadm_exit_code != 0) {
+ if (doveadm_exit_code != 0) {
if (doveadm_exit_code == 0 || doveadm_exit_code == EX_TEMPFAIL)
i_error("doveadm(%s): Command %s failed", i_stream_get_name(conn->client.input), conn->cmd->name);
doveadm_http_server_json_error(conn, "exitCode");
array_append_zero(argv);
}
-int
+void
doveadm_cmd_ver2_to_cmd_wrapper(const struct doveadm_cmd_ver2* cmd,
int argc, const struct doveadm_cmd_param* param)
{
pargv = array_get_modifiable(&nargv, &pargc);
i_getopt_reset();
cmd->old_cmd(pargc-1, (char**)pargv);
-
- return 0;
}
static void
param = array_get_modifiable(&pargv, &pargc);
- // FIXME: Unsure what do to with return value
cmd->cmd(cmd, pargc, param);
doveadm_cmd_params_clean(&pargv);
};
ARRAY_DEFINE_TYPE(doveadm_cmd_param_arr_t, struct doveadm_cmd_param);
-typedef int doveadm_command_ver2_t(const struct doveadm_cmd_ver2* cmd,
+typedef void doveadm_command_ver2_t(const struct doveadm_cmd_ver2* cmd,
int argc, const struct doveadm_cmd_param[]);
struct doveadm_cmd {
void doveadm_cmds_init(void);
void doveadm_cmds_deinit(void);
-int doveadm_cmd_ver2_to_cmd_wrapper(const struct doveadm_cmd_ver2* cmd,
+void doveadm_cmd_ver2_to_cmd_wrapper(const struct doveadm_cmd_ver2* cmd,
int argc, const struct doveadm_cmd_param[]);
-int doveadm_cmd_ver2_to_mail_cmd_wrapper(const struct doveadm_cmd_ver2* cmd,
+void doveadm_cmd_ver2_to_mail_cmd_wrapper(const struct doveadm_cmd_ver2* cmd,
int argc, const struct doveadm_cmd_param argv[]);
void doveadm_cmd_register_ver2(struct doveadm_cmd_ver2 *cmd);
array_free(&doveadm_mail_cmds);
}
-int
+void
doveadm_cmd_ver2_to_mail_cmd_wrapper(const struct doveadm_cmd_ver2* cmd,
int argc, const struct doveadm_cmd_param argv[])
{
if (ctx->cmd_input != NULL) {
i_error("Only one file input allowed: %s", argv[i].name);
doveadm_mail_cmd_free(ctx);
- return -1;
+ doveadm_exit_code = EX_USAGE;
+ return;
}
ctx->cmd_input = argv[i].value.v_istream;
i_stream_ref(ctx->cmd_input);
doveadm_exit_code = EX_USAGE;
i_error("invalid parameter: %s", argv[i].name);
doveadm_mail_cmd_free(ctx);
- return -1;
+ return;
}
}
doveadm_mail_cmd_exec(ctx, wildcard_user);
doveadm_mail_cmd_free(ctx);
- return 0;
}
i_stream_destroy(&input);
}
-static int
+static void
cmd2_stats_dump(const struct doveadm_cmd_ver2* dcmd ATTR_UNUSED, int argc, const struct doveadm_cmd_param *argv)
{
const char *path, *cmd;
if (!doveadm_cmd_param_str(argc, argv, "type", &args[0])) {
i_error("Missing type parameter");
- return -1;
+ doveadm_exit_code = EX_USAGE;
+ return;
}
/* purely optional */
doveadm_print_init(DOVEADM_PRINT_TYPE_TAB);
stats_dump(path, cmd);
- return 0;
+ return;
}
static void