} else if( ctx->response_code == FEED_ERR_FETCH ) {
debug_print("RSSyl: libfeed reports some other error from libcurl\n");
ctx->error = g_strdup(ctx->feed->fetcherr);
+ } else if( ctx->response_code == FEED_ERR_UNAUTH ) {
+ debug_print("RSSyl: URL authorization type is unknown\n");
+ ctx->error = g_strdup("Unknown value for URL authorization type");
} else if( ctx->response_code >= 400 && ctx->response_code < 500 ) {
switch( ctx->response_code ) {
case 401:
ctx->success = FALSE;
} else {
- if( feed_get_title(ctx->feed) == NULL ) {
- /* libcurl was happy, but libfeed wasn't */
- debug_print("RSSyl: Error reading feed\n");
+ if( ctx->feed == NULL ) {
if( verbose ) {
gchar *msg = g_markup_printf_escaped(
(const char *) _("No valid feed found at\n<b>%s</b>"),
feed_get_url(ctx->feed));
ctx->success = FALSE;
+ } else if (feed_get_title(ctx->feed) == NULL) {
+ /* We shouldn't do this, since a title is mandatory. */
+ feed_set_title(ctx->feed, _("Untitled feed"));
+ log_print(LOG_PROTOCOL, _("Possibly invalid feed without title at %s.\n"),
+ feed_get_url(ctx->feed));
}
}
}
ctx->success = TRUE;
ctx->ready = FALSE;
- feed_set_timeout(ctx->feed, prefs_common.io_timeout_secs);
+ feed_set_timeout(ctx->feed, prefs_common_get_prefs()->io_timeout_secs);
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;
}
ctx->success = TRUE;
ctx->ready = FALSE;
- feed_set_timeout(ctx->feed, prefs_common.io_timeout_secs);
+ feed_set_timeout(ctx->feed, prefs_common_get_prefs()->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(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;
}
void rssyl_update_all_feeds(void)
{
- if (prefs_common.work_offline &&
+ if (prefs_common_get_prefs()->work_offline &&
!inc_offline_should_override(TRUE,
_("Claws Mail needs network access in order to update your feeds.")) ) {
return;