334 dav_cfg_string_set_node_value(config, &repo->cert, node); |
334 dav_cfg_string_set_node_value(config, &repo->cert, node); |
335 } else if(xstreq(key, "verification")) { |
335 } else if(xstreq(key, "verification")) { |
336 dav_cfg_bool_set_node_value(config, &repo->verification, node); |
336 dav_cfg_bool_set_node_value(config, &repo->verification, node); |
337 } else if(xstreq(key, "ssl-version")) { |
337 } else if(xstreq(key, "ssl-version")) { |
338 repo->ssl_version.node = node; |
338 repo->ssl_version.node = node; |
339 if(xstrEQ(value, "TLSv1")) { |
339 int ssl_version = dav_str2ssl_version((const char*)value); |
340 repo->ssl_version.value = CURL_SSLVERSION_TLSv1; |
340 if(ssl_version == -1) { |
341 } else if(xstrEQ(value, "SSLv2")) { |
|
342 repo->ssl_version.value = CURL_SSLVERSION_SSLv2; |
|
343 } else if(xstrEQ(value, "SSLv3")) { |
|
344 repo->ssl_version.value = CURL_SSLVERSION_SSLv3; |
|
345 } |
|
346 #if LIBCURL_VERSION_MAJOR * 1000 + LIBCURL_VERSION_MINOR >= 7034 |
|
347 else if(xstrEQ(value, "TLSv1.0")) { |
|
348 repo->ssl_version.value = CURL_SSLVERSION_TLSv1_0; |
|
349 } else if(xstrEQ(value, "TLSv1.1")) { |
|
350 repo->ssl_version.value = CURL_SSLVERSION_TLSv1_1; |
|
351 } else if(xstrEQ(value, "TLSv1.2")) { |
|
352 repo->ssl_version.value = CURL_SSLVERSION_TLSv1_2; |
|
353 } |
|
354 #endif |
|
355 #if LIBCURL_VERSION_MAJOR * 1000 + LIBCURL_VERSION_MINOR >= 7052 |
|
356 else if(xstrEQ(value, "TLSv1.3")) { |
|
357 repo->ssl_version.value = CURL_SSLVERSION_TLSv1_3; |
|
358 } |
|
359 #endif |
|
360 else { |
|
361 print_warning(lineno, "unknown ssl version: %s\n", value); |
341 print_warning(lineno, "unknown ssl version: %s\n", value); |
362 repo->ssl_version.value = CURL_SSLVERSION_DEFAULT; |
342 repo->ssl_version.value = CURL_SSLVERSION_DEFAULT; |
|
343 } else { |
|
344 repo->ssl_version.value = ssl_version; |
363 } |
345 } |
364 } else if(xstreq(key, "authmethods")) { |
346 } else if(xstreq(key, "authmethods")) { |
365 repo->authmethods.node = node; |
347 repo->authmethods.node = node; |
366 repo->authmethods.value = CURLAUTH_NONE; |
348 repo->authmethods.value = CURLAUTH_NONE; |
367 const char *delims = " \t\r\n"; |
349 const char *delims = " \t\r\n"; |
390 } else { |
372 } else { |
391 print_error(lineno, "unkown repository config element: %s\n", key); |
373 print_error(lineno, "unkown repository config element: %s\n", key); |
392 return 1; |
374 return 1; |
393 } |
375 } |
394 return 0; |
376 return 0; |
|
377 } |
|
378 |
|
379 int dav_str2ssl_version(const char *value) { |
|
380 if(xstrEQ(value, "TLSv1")) { |
|
381 return CURL_SSLVERSION_TLSv1; |
|
382 } else if(xstrEQ(value, "SSLv2")) { |
|
383 return CURL_SSLVERSION_SSLv2; |
|
384 } else if(xstrEQ(value, "SSLv3")) { |
|
385 return CURL_SSLVERSION_SSLv3; |
|
386 } |
|
387 #if LIBCURL_VERSION_MAJOR * 1000 + LIBCURL_VERSION_MINOR >= 7034 |
|
388 else if(xstrEQ(value, "TLSv1.0")) { |
|
389 return CURL_SSLVERSION_TLSv1_0; |
|
390 } else if(xstrEQ(value, "TLSv1.1")) { |
|
391 return CURL_SSLVERSION_TLSv1_1; |
|
392 } else if(xstrEQ(value, "TLSv1.2")) { |
|
393 return CURL_SSLVERSION_TLSv1_2; |
|
394 } |
|
395 #endif |
|
396 #if LIBCURL_VERSION_MAJOR * 1000 + LIBCURL_VERSION_MINOR >= 7052 |
|
397 else if(xstrEQ(value, "TLSv1.3")) { |
|
398 return CURL_SSLVERSION_TLSv1_3; |
|
399 } |
|
400 #endif |
|
401 return -1; |
395 } |
402 } |
396 |
403 |
397 static int load_repository( |
404 static int load_repository( |
398 DavConfig *config, |
405 DavConfig *config, |
399 DavCfgRepository **list_begin, |
406 DavCfgRepository **list_begin, |