summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2013-10-31 02:35:31 -0400
committerJunio C Hamano <gitster@pobox.com>2013-10-31 10:05:55 -0700
commit0972ccd97cc8f913ea828a1e03ef3652fc1ff514 (patch)
tree7f4855620b5553fa21c3e8c302f356e96168ca68
parent02a110ad435a6ccda648f09f94e546dfd7bdd0ac (diff)
downloadgit-0972ccd97cc8f913ea828a1e03ef3652fc1ff514.tar.gz
http: return curl's AUTHAVAIL via slot_results
Callers of the http code may want to know which auth types were available for the previous request. But after finishing with the curl slot, they are not supposed to look at the curl handle again. We already handle returning other information via the slot_results struct; let's add a flag to check the available auth. Note that older versions of curl did not support this, so we simply return 0 (something like "-1" would be worse, as the value is a bitflag and we might accidentally set a flag). This is sufficient for the callers planned in this series, who only trigger some optional behavior if particular bits are set, and can live with a fake "no bits" answer. Signed-off-by: Jeff King <peff@peff.net>
-rw-r--r--http.c6
-rw-r--r--http.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/http.c b/http.c
index 2d086aedfa..1ea62fad4f 100644
--- a/http.c
+++ b/http.c
@@ -706,6 +706,12 @@ void finish_active_slot(struct active_request_slot *slot)
if (slot->results != NULL) {
slot->results->curl_result = slot->curl_result;
slot->results->http_code = slot->http_code;
+#if LIBCURL_VERSION_NUM >= 0x070a08
+ curl_easy_getinfo(slot->curl, CURLINFO_HTTPAUTH_AVAIL,
+ &slot->results->auth_avail);
+#else
+ slot->results->auth_avail = 0;
+#endif
}
/* Run callback if appropriate */
diff --git a/http.h b/http.h
index d77c1b54f2..81d4843293 100644
--- a/http.h
+++ b/http.h
@@ -54,6 +54,7 @@
struct slot_results {
CURLcode curl_result;
long http_code;
+ long auth_avail;
};
struct active_request_slot {