1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-06-06 09:06:10 +02:00

http_request: factor out curlinfo_strbuf

When we retrieve the content-type of an http response, curl
gives us a pointer to internal storage, which we then copy
into a strbuf. Let's factor out the get-and-copy routine,
which can be used for getting other curl info.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
This commit is contained in:
Jeff King 2013-09-28 04:31:11 -04:00 committed by Jonathan Nieder
parent 3d1fb769b2
commit 132b70a2ed

21
http.c
View File

@ -820,6 +820,18 @@ int handle_curl_result(struct slot_results *results)
}
}
static CURLcode curlinfo_strbuf(CURL *curl, CURLINFO info, struct strbuf *buf)
{
char *ptr;
CURLcode ret;
strbuf_reset(buf);
ret = curl_easy_getinfo(curl, info, &ptr);
if (!ret && ptr)
strbuf_addstr(buf, ptr);
return ret;
}
/* http_request() targets */
#define HTTP_REQUEST_STRBUF 0
#define HTTP_REQUEST_FILE 1
@ -878,13 +890,8 @@ static int http_request(const char *url, struct strbuf *type,
ret = HTTP_START_FAILED;
}
if (type) {
char *t;
strbuf_reset(type);
curl_easy_getinfo(slot->curl, CURLINFO_CONTENT_TYPE, &t);
if (t)
strbuf_addstr(type, t);
}
if (type)
curlinfo_strbuf(slot->curl, CURLINFO_CONTENT_TYPE, type);
curl_slist_free_all(headers);
strbuf_release(&buf);