Merge branch 'nm/imap-send-quote-server-folder-name'

"git imap-send" did not correctly quote the folder name when
making a request to the server, which has been corrected.

* nm/imap-send-quote-server-folder-name:
  imap-send: URI encode server folder
This commit is contained in:
Junio C Hamano 2017-12-28 14:08:48 -08:00
commit 9368a3d08e

View File

@ -1412,6 +1412,7 @@ static CURL *setup_curl(struct imap_server_conf *srvc, struct credential *cred)
{ {
CURL *curl; CURL *curl;
struct strbuf path = STRBUF_INIT; struct strbuf path = STRBUF_INIT;
char *uri_encoded_folder;
if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK)
die("curl_global_init failed"); die("curl_global_init failed");
@ -1429,7 +1430,12 @@ static CURL *setup_curl(struct imap_server_conf *srvc, struct credential *cred)
strbuf_addstr(&path, server.host); strbuf_addstr(&path, server.host);
if (!path.len || path.buf[path.len - 1] != '/') if (!path.len || path.buf[path.len - 1] != '/')
strbuf_addch(&path, '/'); strbuf_addch(&path, '/');
strbuf_addstr(&path, server.folder);
uri_encoded_folder = curl_easy_escape(curl, server.folder, 0);
if (!uri_encoded_folder)
die("failed to encode server folder");
strbuf_addstr(&path, uri_encoded_folder);
curl_free(uri_encoded_folder);
curl_easy_setopt(curl, CURLOPT_URL, path.buf); curl_easy_setopt(curl, CURLOPT_URL, path.buf);
strbuf_release(&path); strbuf_release(&path);