@@ -139,7 +139,13 @@ static char *cached_accept_language;
139
139
140
140
static char * http_ssl_backend ;
141
141
142
- static int http_schannel_check_revoke = 1 ;
142
+ static int http_schannel_check_revoke_mode =
143
+ #ifdef CURLSSLOPT_REVOKE_BEST_EFFORT
144
+ CURLSSLOPT_REVOKE_BEST_EFFORT ;
145
+ #else
146
+ CURLSSLOPT_NO_REVOKE ;
147
+ #endif
148
+
143
149
/*
144
150
* With the backend being set to `schannel`, setting sslCAinfo would override
145
151
* the Certificate Store in cURL v7.60.0 and later, which is not what we want
@@ -403,7 +409,19 @@ static int http_options(const char *var, const char *value,
403
409
}
404
410
405
411
if (!strcmp ("http.schannelcheckrevoke" , var )) {
406
- http_schannel_check_revoke = git_config_bool (var , value );
412
+ if (value && !strcmp (value , "best-effort" )) {
413
+ http_schannel_check_revoke_mode =
414
+ #ifdef CURLSSLOPT_REVOKE_BEST_EFFORT
415
+ CURLSSLOPT_REVOKE_BEST_EFFORT ;
416
+ #else
417
+ CURLSSLOPT_NO_REVOKE ;
418
+ warning (_ ("%s=%s unsupported by current cURL" ),
419
+ var , value );
420
+ #endif
421
+ } else
422
+ http_schannel_check_revoke_mode =
423
+ (git_config_bool (var , value ) ?
424
+ 0 : CURLSSLOPT_NO_REVOKE );
407
425
return 0 ;
408
426
}
409
427
@@ -1015,9 +1033,9 @@ static CURL *get_curl_handle(void)
1015
1033
#endif
1016
1034
1017
1035
if (http_ssl_backend && !strcmp ("schannel" , http_ssl_backend ) &&
1018
- ! http_schannel_check_revoke ) {
1036
+ http_schannel_check_revoke_mode ) {
1019
1037
#ifdef GIT_CURL_HAVE_CURLSSLOPT_NO_REVOKE
1020
- curl_easy_setopt (result , CURLOPT_SSL_OPTIONS , CURLSSLOPT_NO_REVOKE );
1038
+ curl_easy_setopt (result , CURLOPT_SSL_OPTIONS , http_schannel_check_revoke_mode );
1021
1039
#else
1022
1040
warning (_ ("CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0" ));
1023
1041
#endif
0 commit comments