} 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:
if( ctx->error != NULL ) {
/* libcurl wasn't happy */
debug_print("RSSyl: Error: %s\n", ctx->error);
- if( verbose )
- alertpanel_error(g_markup_printf_escaped(C_("First parameter is URL, second is error text",
+ if( verbose ) {
+ gchar *msg = g_markup_printf_escaped(
+ (const char *) C_("First parameter is URL, second is error text",
"Error fetching feed at\n<b>%s</b>:\n\n%s"),
- feed_get_url(ctx->feed), ctx->error));
+ feed_get_url(ctx->feed), ctx->error);
+ alertpanel_error("%s", msg);
+ g_free(msg);
+ }
log_error(LOG_PROTOCOL, RSSYL_LOG_ERROR_FETCH, ctx->feed->url, ctx->error);
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( verbose )
- alertpanel_error(g_markup_printf_escaped(_("No valid feed found at\n<b>%s</b>"),
- feed_get_url(ctx->feed)));
+ 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));
+ alertpanel_error("%s", msg);
+ g_free(msg);
+ }
log_error(LOG_PROTOCOL, RSSYL_LOG_ERROR_NOFEED,
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,
+ _("RSSyl: 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;
}
if( ctx->success && !(ctx->success = rssyl_parse_feed(ritem, ctx->feed)) ) {
/* both libcurl and libfeed were happy, but we weren't */
debug_print("RSSyl: Error processing feed\n");
- if( verbose )
- alertpanel_error(g_markup_printf_escaped(_("Couldn't process feed at\n<b>%s</b>\n\nPlease contact developers, this should not happen."),
- feed_get_url(ctx->feed)));
+ if( verbose ) {
+ gchar *msg = g_markup_printf_escaped(
+ (const char *) _("Couldn't process feed at\n<b>%s</b>\n\n"
+ "Please contact developers, this should not happen."),
+ feed_get_url(ctx->feed));
+ alertpanel_error("%s", msg);
+ g_free(msg);
+ }
log_error(LOG_PROTOCOL, RSSYL_LOG_ERROR_PROC, ctx->feed->url);
}
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;