36 |
36 |
37 #include "config.h" |
37 #include "config.h" |
38 #include <libidav/utils.h> |
38 #include <libidav/utils.h> |
39 |
39 |
40 #define xstreq(a,b) xmlStrEqual(BAD_CAST a, BAD_CAST b) |
40 #define xstreq(a,b) xmlStrEqual(BAD_CAST a, BAD_CAST b) |
|
41 #define xstrEQ(a,b) !xmlStrcasecmp(BAD_CAST a, BAD_CAST b) |
41 |
42 |
42 #ifdef _WIN32 |
43 #ifdef _WIN32 |
43 #define ENV_HOME getenv("USERPROFILE") |
44 #define ENV_HOME getenv("USERPROFILE") |
44 #else |
45 #else |
45 #define ENV_HOME getenv("HOME") |
46 #define ENV_HOME getenv("HOME") |
113 Repository *repo = calloc(1, sizeof(Repository)); |
114 Repository *repo = calloc(1, sizeof(Repository)); |
114 repo->encrypt_name = false; |
115 repo->encrypt_name = false; |
115 repo->encrypt_content = false; |
116 repo->encrypt_content = false; |
116 repo->decrypt_name = false; |
117 repo->decrypt_name = false; |
117 repo->decrypt_content = true; |
118 repo->decrypt_content = true; |
|
119 repo->ssl_version = CURL_SSLVERSION_DEFAULT; |
118 while(node) { |
120 while(node) { |
119 if(node->type == XML_ELEMENT_NODE) { |
121 if(node->type == XML_ELEMENT_NODE) { |
120 char *value = util_xml_get_text(node); |
122 char *value = util_xml_get_text(node); |
121 if(!value) { |
123 if(!value) { |
122 // next |
124 // next |
146 } |
148 } |
147 } else if(xstreq(node->name, "decrypt-content")) { |
149 } else if(xstreq(node->name, "decrypt-content")) { |
148 repo->decrypt_content = util_getboolean(value); |
150 repo->decrypt_content = util_getboolean(value); |
149 } else if(xstreq(node->name, "decrypt-name")) { |
151 } else if(xstreq(node->name, "decrypt-name")) { |
150 repo->decrypt_name = util_getboolean(value); |
152 repo->decrypt_name = util_getboolean(value); |
|
153 } else if(xstreq(node->name, "ssl-version")) { |
|
154 if(xstrEQ(value, "TLSv1")) { |
|
155 repo->ssl_version = CURL_SSLVERSION_TLSv1; |
|
156 } else if(xstrEQ(value, "SSLv2")) { |
|
157 repo->ssl_version = CURL_SSLVERSION_SSLv2; |
|
158 } else if(xstrEQ(value, "SSLv3")) { |
|
159 repo->ssl_version = CURL_SSLVERSION_SSLv3; |
|
160 } |
|
161 #if LIBCURL_VERSION_MAJOR >= 7 |
|
162 #if LIBCURL_VERSION_MINOR >= 34 |
|
163 else if(xstrEQ(value, "TLSv1.0")) { |
|
164 repo->ssl_version = CURL_SSLVERSION_TLSv1_0; |
|
165 } else if(xstrEQ(value, "TLSv1.1")) { |
|
166 repo->ssl_version = CURL_SSLVERSION_TLSv1_1; |
|
167 } else if(xstrEQ(value, "TLSv1.2")) { |
|
168 repo->ssl_version = CURL_SSLVERSION_TLSv1_2; |
|
169 } |
|
170 #endif |
|
171 #endif |
|
172 else { |
|
173 fprintf(stderr, "Unknown ssl version: %s\n", value); |
|
174 } |
151 } else if(xstreq(node->name, "encrypt") || xstreq(node->name, "store-key-property") || xstreq(node->name, "decrypt")) { |
175 } else if(xstreq(node->name, "encrypt") || xstreq(node->name, "store-key-property") || xstreq(node->name, "decrypt")) { |
152 fprintf(stderr, "Error: config.xml contains deprecated elements\n"); |
176 fprintf(stderr, "Error: config.xml contains deprecated elements\n"); |
153 fprintf(stderr, "The elements <encrypt>, <decrypt> and <store-key-property> are removed\n"); |
177 fprintf(stderr, "The elements <encrypt>, <decrypt> and <store-key-property> are removed\n"); |
154 fprintf(stderr, "Use the following: \n\n"); |
178 fprintf(stderr, "Use the following: \n\n"); |
155 fprintf(stderr, "<content-encryption>true</content-encryption>\n"); |
179 fprintf(stderr, "<content-encryption>true</content-encryption>\n"); |