Commit 78901c29 authored by David Fuhrmann's avatar David Fuhrmann

MVK: remove network timeout patch because it is broken

parent 7e648920
From ff1c0f6eea58903a6e89023f8d148f29d058f7ce Mon Sep 17 00:00:00 2001
From: Gleb Pinigin <gpinigin@gmail.com>
Date: Sun, 28 Jul 2013 18:32:51 +0700
Subject: [PATCH 09/23] io: implement network timeout(default 60s)
---
src/network/io.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/network/io.c b/src/network/io.c
index dc5ef12..effaf15 100644
--- a/src/network/io.c
+++ b/src/network/io.c
@@ -33,6 +33,7 @@
#endif
#include <vlc_common.h>
+#include <vlc_access.h>
#include <stdlib.h>
#include <stdio.h>
@@ -73,6 +74,9 @@
# define SOL_DCCP 269
#endif
+#define MAX_TIMEOUT 60000
+#define POLL_TIMEOUT 10000
+
#include "libvlc.h" /* vlc_object_waitpipe */
extern int rootwrap_bind (int family, int socktype, int protocol,
@@ -267,6 +271,7 @@ net_Read (vlc_object_t *restrict p_this, int fd, const v_socket_t *vs,
ufd[1].fd = vlc_object_waitpipe (p_this);
ufd[1].events = POLLIN;
+ int i_timepassed = 0;
size_t i_total = 0;
do
{
@@ -288,6 +293,13 @@ net_Read (vlc_object_t *restrict p_this, int fd, const v_socket_t *vs,
if (n < 0)
{
+ if (i_timepassed >= MAX_TIMEOUT && i_total == 0)
+ {
+ access_t *p_access = (access_t *)p_this;
+ p_access->info.b_eof = true;
+ goto error;
+ }
+
switch (net_errno)
{
case EAGAIN: /* no data */
@@ -326,8 +338,9 @@ net_Read (vlc_object_t *restrict p_this, int fd, const v_socket_t *vs,
return -1;
}
+ i_timepassed += POLL_TIMEOUT;
/* Wait for more data */
- if (poll (ufd, sizeof (ufd) / sizeof (ufd[0]), -1) < 0)
+ if (poll (ufd, sizeof (ufd) / sizeof (ufd[0]), POLL_TIMEOUT) < 0)
{
if (errno == EINTR)
continue;
--
1.8.3.4 (Apple Git-47)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment