RSSyl: Use our CA certificate bundle on Windows.
authorAndrej Kacian <ticho@claws-mail.org>
Thu, 18 Jun 2015 21:39:12 +0000 (23:39 +0200)
committerAndrej Kacian <ticho@claws-mail.org>
Thu, 18 Jun 2015 21:53:08 +0000 (23:53 +0200)
Libcurl seems to want a CA cert bundle for any https connection,
even if verification is disabled. On Windows, there is no default
bundle or directory libcurl knows about, so we give it our own,
pointed to by claws_ssl_get_cert_file().

src/plugins/rssyl/rssyl_update_feed.c

index 51d6c97f60a334a9f79681ebe8fdf97c31cfb56c..0f336169063de2b09f959cbad633721d09d7d6bc 100644 (file)
@@ -169,6 +169,12 @@ RFetchCtx *rssyl_prep_fetchctx_from_item(RFolderItem *ritem)
        feed_set_cookies_path(ctx->feed, rssyl_prefs_get()->cookies_path);
        feed_set_ssl_verify_peer(ctx->feed, ritem->ssl_verify_peer);
        feed_set_auth(ctx->feed, ritem->auth);
+#ifdef G_OS_WIN32
+       if (!g_ascii_strncasecmp(ritem->url, "https", 5)) {
+               feed_set_cacert_file(ctx->feed, claws_ssl_get_cert_file());
+               debug_print("RSSyl: using cert file '%s'\n", feed_get_cacert_file(ctx->feed));
+       }
+#endif
 
        return ctx;
 }
@@ -188,6 +194,12 @@ RFetchCtx *rssyl_prep_fetchctx_from_url(gchar *url)
        feed_set_timeout(ctx->feed, prefs_common.io_timeout_secs);
        feed_set_cookies_path(ctx->feed, rssyl_prefs_get()->cookies_path);
        feed_set_ssl_verify_peer(ctx->feed, rssyl_prefs_get()->ssl_verify_peer);
+#ifdef G_OS_WIN32
+       if (!g_ascii_strncasecmp(ritem->url, "https", 5)) {
+               feed_set_cacert_file(ctx->feed, claws_ssl_get_cert_file());
+               debug_print("RSSyl: using cert file '%s'\n", feed_get_cacert_file(ctx->feed));
+       }
+#endif
 
        return ctx;
 }