From b22a040754a7011cfbb4f5cca02fb525a496e73f Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Thu, 30 May 2013 18:04:58 +0300 Subject: [PATCH] lib-imap-urlauth: Added API for using the fetch interface with an already parsed IMAP URL object. --- src/lib-imap-urlauth/imap-urlauth-fetch.c | 13 ++++++++++++- src/lib-imap-urlauth/imap-urlauth-fetch.h | 4 ++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/lib-imap-urlauth/imap-urlauth-fetch.c b/src/lib-imap-urlauth/imap-urlauth-fetch.c index b0836bd468..0af33f65fc 100644 --- a/src/lib-imap-urlauth/imap-urlauth-fetch.c +++ b/src/lib-imap-urlauth/imap-urlauth-fetch.c @@ -348,7 +348,6 @@ int imap_urlauth_fetch_url(struct imap_urlauth_fetch *ufetch, const char *url, struct mail_user *mail_user = uctx->user; struct imap_url *imap_url; const char *error, *errormsg; - int ret = 0; /* parse the url */ if (imap_url_parse(url, NULL, url_parse_flags, &imap_url, &error) < 0) { @@ -363,6 +362,18 @@ int imap_urlauth_fetch_url(struct imap_urlauth_fetch *ufetch, const char *url, return 1; } + return imap_urlauth_fetch_url_parsed(ufetch, url, imap_url, url_flags); +} + +int imap_urlauth_fetch_url_parsed(struct imap_urlauth_fetch *ufetch, + const char *url, struct imap_url *imap_url, + enum imap_urlauth_fetch_flags url_flags) +{ + struct imap_urlauth_context *uctx = ufetch->uctx; + struct mail_user *mail_user = uctx->user; + const char *error, *errormsg; + int ret = 0; + ufetch->failed = FALSE; ufetch->pending_requests++; diff --git a/src/lib-imap-urlauth/imap-urlauth-fetch.h b/src/lib-imap-urlauth/imap-urlauth-fetch.h index 8d39381639..116a477fcf 100644 --- a/src/lib-imap-urlauth/imap-urlauth-fetch.h +++ b/src/lib-imap-urlauth/imap-urlauth-fetch.h @@ -1,6 +1,7 @@ #ifndef IMAP_URLAUTH_FETCH_H #define IMAP_URLAUTH_FETCH_H +struct imap_url; struct imap_urlauth_context; struct imap_urlauth_fetch; @@ -45,6 +46,9 @@ void imap_urlauth_fetch_deinit(struct imap_urlauth_fetch **ufetch); int imap_urlauth_fetch_url(struct imap_urlauth_fetch *ufetch, const char *url, enum imap_urlauth_fetch_flags url_flags); +int imap_urlauth_fetch_url_parsed(struct imap_urlauth_fetch *ufetch, + const char *url, struct imap_url *imap_url, + enum imap_urlauth_fetch_flags url_flags); bool imap_urlauth_fetch_continue(struct imap_urlauth_fetch *ufetch); bool imap_urlauth_fetch_is_pending(struct imap_urlauth_fetch *ufetch); -- 2.47.3