about summary refs log tree commit diff stats
path: root/WWW/Library/Implementation/HTTCP.c
diff options
context:
space:
mode:
Diffstat (limited to 'WWW/Library/Implementation/HTTCP.c')
-rw-r--r--WWW/Library/Implementation/HTTCP.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/WWW/Library/Implementation/HTTCP.c b/WWW/Library/Implementation/HTTCP.c
index bd68d5be..46c85034 100644
--- a/WWW/Library/Implementation/HTTCP.c
+++ b/WWW/Library/Implementation/HTTCP.c
@@ -1776,6 +1776,10 @@ PUBLIC int HTDoRead ARGS3(
     fd_set readfds;
     struct timeval timeout;
     int tries=0;
+#ifdef EXP_READPROGRESS
+    int otries = 0;
+    time_t otime = time((time_t *)0);
+#endif
 #if defined(UNIX) || defined(UCX)
     int nb;
 #endif /* UCX, BSN */
@@ -1823,6 +1827,18 @@ PUBLIC int HTDoRead ARGS3(
 	    return HT_INTERRUPTED;
 	}
 
+#ifdef EXP_READPROGRESS
+	if (tries - otries > 10) {
+	    time_t t = time((time_t *)0);
+
+	    otries = tries;
+	    if (t - otime >= 5) {
+		otime = t;
+		HTReadProgress(-1, 0);	/* Put "stalled" message */
+	    }
+	}
+#endif
+
 	/*
 	**  If we suspend, then it is possible that select will be
 	**  interrupted.  Allow for this possibility. - JED