[vlc-devel] [PATCH] http: don't try to re-open connection if it previously failed

Thomas Guillem thomas at gllm.fr
Wed Mar 30 09:44:44 CEST 2016


---
 modules/access/http/file.c | 7 +++++++
 modules/access/http/live.c | 7 +++++++
 2 files changed, 14 insertions(+)

diff --git a/modules/access/http/file.c b/modules/access/http/file.c
index 5695c7f..542e6a3 100644
--- a/modules/access/http/file.c
+++ b/modules/access/http/file.c
@@ -44,6 +44,7 @@ struct vlc_http_file
     struct vlc_http_resource resource;
     struct vlc_http_msg *resp;
     uintmax_t offset;
+    bool failed;
 };
 
 static int vlc_http_file_req(struct vlc_http_msg *req,
@@ -132,6 +133,7 @@ struct vlc_http_file *vlc_http_file_create(struct vlc_http_mgr *mgr,
 
     file->resp = NULL;
     file->offset = 0;
+    file->failed = false;
     return file;
 }
 
@@ -139,9 +141,14 @@ int vlc_http_file_get_status(struct vlc_http_file *file)
 {
     if (file->resp == NULL)
     {
+        if (file->failed)
+            return -1;
         file->resp = vlc_http_file_open(file, file->offset);
         if (file->resp == NULL)
+        {
+            file->failed = true;
             return -1;
+        }
     }
     return vlc_http_msg_get_status(file->resp);
 }
diff --git a/modules/access/http/live.c b/modules/access/http/live.c
index a1f44cd..8a620e8 100644
--- a/modules/access/http/live.c
+++ b/modules/access/http/live.c
@@ -35,6 +35,7 @@ struct vlc_http_live
 {
     struct vlc_http_resource resource;
     struct vlc_http_msg *resp;
+    bool failed;
 };
 
 static int vlc_http_live_req(struct vlc_http_msg *req,
@@ -74,6 +75,7 @@ struct vlc_http_live *vlc_http_live_create(struct vlc_http_mgr *mgr,
     }
 
     live->resp = NULL;
+    live->failed = false;
     return live;
 }
 
@@ -81,9 +83,14 @@ int vlc_http_live_get_status(struct vlc_http_live *live)
 {
     if (live->resp == NULL)
     {
+        if (live->failed)
+            return -1;
         live->resp = vlc_http_live_open(live);
         if (live->resp == NULL)
+        {
+            live->failed = true;
             return -1;
+        }
     }
     return vlc_http_msg_get_status(live->resp);
 }
-- 
2.8.0.rc3



More information about the vlc-devel mailing list