[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