summaryrefslogtreecommitdiff
path: root/plugins/mms
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/mms')
-rw-r--r--plugins/mms/libmms/mms.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/plugins/mms/libmms/mms.c b/plugins/mms/libmms/mms.c
index 222a82b9..8ffccc79 100644
--- a/plugins/mms/libmms/mms.c
+++ b/plugins/mms/libmms/mms.c
@@ -159,7 +159,8 @@ static off_t fallback_io_read(void *data, int socket, char *buf, off_t num)
off_t len = 0, ret;
/* lprintf("%d\n", fallback_io_select(data, socket, MMS_IO_READ_READY, 1000)); */
errno = 0;
- while (len < num)
+ int nretry = 5;
+ while (len < num && nretry > 0)
{
ret = (off_t)read(socket, buf + len, num - len);
if(ret == 0)
@@ -170,6 +171,7 @@ static off_t fallback_io_read(void *data, int socket, char *buf, off_t num)
switch(errno)
{
case EAGAIN:
+ nretry--;
continue;
default:
/* if already read something, return it, we will fail next time */