From 847ba2a30d7a787cd625e6d055c76eb66d535981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 10 Apr 2014 16:35:28 +0200 Subject: [PATCH] souphttpsrc: Also retry on unexpected network failures --- ext/soup/gstsouphttpsrc.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c index d3fb04b97a..4a058c7bc2 100644 --- a/ext/soup/gstsouphttpsrc.c +++ b/ext/soup/gstsouphttpsrc.c @@ -1343,8 +1343,9 @@ gst_soup_http_src_response_cb (SoupSession * session, SoupMessage * msg, * last location. */ src->retry = TRUE; src->retry_count++; - } else + } else { gst_soup_http_src_parse_status (msg, src); + } /* The session's SoupMessage object expires after this callback returns. */ src->msg = NULL; g_main_loop_quit (src->loop); @@ -1382,10 +1383,16 @@ gst_soup_http_src_parse_status (SoupMessage * msg, GstSoupHTTPSrc * src) src->ret = GST_FLOW_ERROR; break; case SOUP_STATUS_IO_ERROR: - SOUP_HTTP_SRC_ERROR (src, msg, RESOURCE, READ, - _("A network error occured, or the server closed the connection " - "unexpectedly.")); - src->ret = GST_FLOW_ERROR; + if (src->max_retries == -1 || src->retry_count < src->max_retries) { + src->retry = TRUE; + src->retry_count++; + src->ret = GST_FLOW_CUSTOM_ERROR; + } else { + SOUP_HTTP_SRC_ERROR (src, msg, RESOURCE, READ, + _("A network error occured, or the server closed the connection " + "unexpectedly.")); + src->ret = GST_FLOW_ERROR; + } break; case SOUP_STATUS_MALFORMED: SOUP_HTTP_SRC_ERROR (src, msg, RESOURCE, READ,