diff options
author | Alan F <ajf@eth0.org.uk> | 2013-12-20 21:13:54 +0000 |
---|---|---|
committer | Alan F <ajf@eth0.org.uk> | 2013-12-20 21:13:54 +0000 |
commit | 0b0eb52a5b2c82a4bbcc0d04d523883623124c4f (patch) | |
tree | 1744137bc84649b0bfd26ad01950e20180793496 /src/trg-client.c | |
parent | 8064c4775c2ea89f9a01d342045e5d7d61717410 (diff) |
issue 235 - optional validation of SSL certificates
Diffstat (limited to 'src/trg-client.c')
-rw-r--r-- | src/trg-client.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/trg-client.c b/src/trg-client.c index f20677a..1ffde9b 100644 --- a/src/trg-client.c +++ b/src/trg-client.c @@ -71,6 +71,7 @@ struct _TrgClientPrivate { gint64 updateSerial; JsonObject *session; gboolean ssl; + gboolean ssl_validate; gdouble version; char *url; char *username; @@ -255,6 +256,9 @@ int trg_client_populate_with_settings(TrgClient * tc) #ifndef CURL_NO_SSL priv->ssl = trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SSL, TRG_PREFS_CONNECTION); + priv->ssl_validate = trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SSL_VALIDATE, + TRG_PREFS_CONNECTION); + #else priv->ssl = FALSE; #endif @@ -377,6 +381,11 @@ gboolean trg_client_get_ssl(TrgClient * tc) { return tc->priv->ssl; } + +gboolean trg_client_get_ssl_validate(TrgClient * tc) +{ + return tc->priv->ssl_validate; +} #endif gchar *trg_client_get_proxy(TrgClient * tc) @@ -485,8 +494,11 @@ static void trg_tls_update(TrgClient * tc, trg_tls * tls, gint serial) curl_easy_setopt(tls->curl, CURLOPT_URL, trg_client_get_url(tc)); #ifndef CURL_NO_SSL - if (trg_client_get_ssl(tc)) + if (trg_client_get_ssl(tc) && !trg_client_get_ssl_validate(tc)) { + + curl_easy_setopt(tls->curl, CURLOPT_SSL_VERIFYHOST, 0); curl_easy_setopt(tls->curl, CURLOPT_SSL_VERIFYPEER, 0); + } #endif proxy = trg_client_get_proxy(tc); |