libidav/config.c

changeset 838
d262210f8454
parent 837
b5984d5cc40c
equal deleted inserted replaced
837:b5984d5cc40c 838:d262210f8454
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,

mercurial