|
@@ -1,67 +0,0 @@
|
|
|
-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)
|
|
|
-
|