[PATCH 2/9] http_request: factor out curlinfo_strbuf
- From
Jeff King <peff@peff.net>
- Date
- Sep 28, 2013, 08:31 UTC
- Message-ID
- <20130928083111.GB2131@sigill.intra.peff.net>
- In-Reply-To
- <20130928082956.GA22610@sigill.intra.peff.net>
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> --- http.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/http.c b/http.c index a985c40..d325669 100644 --- a/http.c +++ b/http.c @@ -837,6 +837,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 @@ -895,13 +907,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);
-- 1.8.4.rc3.19.g9da5bf6