From: Timo Sirainen Date: Mon, 25 Jul 2022 16:26:47 +0000 (+0300) Subject: lib-imap-storage, imap: imap_msgpart_url_parse() - Change to return only 0/-1 X-Git-Tag: 2.4.0~3670 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bfbbac1053dc30a0596a09148df614ed0028cfbd;p=thirdparty%2Fdovecot%2Fcore.git lib-imap-storage, imap: imap_msgpart_url_parse() - Change to return only 0/-1 It was previously never returning -1. --- diff --git a/src/imap/cmd-append.c b/src/imap/cmd-append.c index 60b93b4248..92d43ba144 100644 --- a/src/imap/cmd-append.c +++ b/src/imap/cmd-append.c @@ -237,13 +237,8 @@ cmd_append_catenate_url(struct client_command_context *cmd, const char *caturl) if (ctx->failed) return -1; - ret = imap_msgpart_url_parse(cmd->client->user, cmd->client->mailbox, - caturl, &mpurl, &client_error); - if (ret < 0) { - client_send_box_error(cmd, ctx->box); - return -1; - } - if (ret == 0) { + if (imap_msgpart_url_parse(cmd->client->user, cmd->client->mailbox, + caturl, &mpurl, &client_error) < 0) { /* invalid url, abort */ client_send_tagline(cmd, t_strdup_printf("NO [BADURL %s] %s.", diff --git a/src/lib-imap-storage/imap-msgpart-url.c b/src/lib-imap-storage/imap-msgpart-url.c index 74982ed1bd..465c80f1ad 100644 --- a/src/lib-imap-storage/imap-msgpart-url.c +++ b/src/lib-imap-storage/imap-msgpart-url.c @@ -88,16 +88,16 @@ int imap_msgpart_url_parse(struct mail_user *user, struct mailbox *selected_box, if (imap_url_parse(urlstr, &base_url, IMAP_URL_PARSE_REQUIRE_RELATIVE, &url, &error) < 0) { *client_error_r = t_strconcat("Invalid IMAP URL: ", error, NULL); - return 0; + return -1; } if (url->mailbox == NULL) { *client_error_r = "Mailbox-relative IMAP URL, but no mailbox selected"; - return 0; + return -1; } if (imap_msgpart_url_create(user, url, mpurl_r, client_error_r) < 0) - return 0; + return -1; (*mpurl_r)->selected_box = selected_box; - return 1; + return 0; } struct mailbox *imap_msgpart_url_get_mailbox(struct imap_msgpart_url *mpurl) diff --git a/src/lib-imap-storage/imap-msgpart-url.h b/src/lib-imap-storage/imap-msgpart-url.h index 5bc72c2cb2..1d88662d8a 100644 --- a/src/lib-imap-storage/imap-msgpart-url.h +++ b/src/lib-imap-storage/imap-msgpart-url.h @@ -7,16 +7,17 @@ struct imap_url; struct imap_msgpart; struct imap_msgpart_url; -/* Functions returning int return 1 on success, 0 if URL doesn't point to - valid mail, -1 on storage error. */ - +/* Returns 0 = success, -1 = invalid URL */ int imap_msgpart_url_create(struct mail_user *user, const struct imap_url *url, struct imap_msgpart_url **url_r, const char **client_error_r); +/* Returns 0 = success, -1 = invalid URL */ int imap_msgpart_url_parse(struct mail_user *user, struct mailbox *selected_box, const char *urlstr, struct imap_msgpart_url **url_r, const char **client_error_r); +/* The following functions returning int return 1 on success, 0 if URL doesn't + point to valid mailbox/mail, -1 on storage error. */ int imap_msgpart_url_open_mailbox(struct imap_msgpart_url *mpurl, struct mailbox **box_r, enum mail_error *error_code_r, const char **client_error_r);