diff options
Diffstat (limited to 'src/xine-engine/io_helper.c')
-rw-r--r-- | src/xine-engine/io_helper.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/xine-engine/io_helper.c b/src/xine-engine/io_helper.c index ae57b6938..8f1a5ad70 100644 --- a/src/xine-engine/io_helper.c +++ b/src/xine-engine/io_helper.c @@ -315,18 +315,24 @@ static off_t xio_rw_abort(xine_stream_t *stream, int fd, int cmd, char *buf, off off_t total = 0; int sret; int state = 0; + xine_cfg_entry_t cfgentry; + unsigned int timeout; if ((cmd == XIO_TCP_READ) || (cmd == XIO_FILE_READ)) { state = XIO_READ_READY; } else { state = XIO_WRITE_READY; } + + if (xine_config_lookup_entry (stream->xine, "media.network.timeout", &cfgentry)) { + timeout = entry.num_value * 1000; + } else { + timeout = 30000; /* 30K msecs = 30 secs */ + } while (total < todo) { - do { - sret = _x_io_select(stream, fd, state, 500); /* 500 ms */ - } while (sret == XIO_TIMEOUT); + sret = _x_io_select(stream, fd, state, timeout); if (sret != XIO_READY) return -1; |