From 05ac1f105db40c360508f324dd1af7f828024e94 Mon Sep 17 00:00:00 2001
From: Fredrik Tolf <fredrik@dolda2000.com>
Date: Fri, 31 Aug 2007 22:44:06 +0200
Subject: [PATCH] Fixed transfer stall detecion in dsh.

---
 clients/gui-shell/dsh.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/clients/gui-shell/dsh.c b/clients/gui-shell/dsh.c
index 332e0df..652e45e 100644
--- a/clients/gui-shell/dsh.c
+++ b/clients/gui-shell/dsh.c
@@ -48,6 +48,7 @@ struct trinfo {
     int ostate;
     int opos, spos, speed;
     time_t lastprog;
+    int warned;
     double sprog;
 };
 
@@ -287,11 +288,14 @@ void updatetrinfo(void)
 	    if(tri->opos != tr->curpos) {
 		tri->opos = tr->curpos;
 		tri->lastprog = now;
+		tri->warned = 0;
 	    }
-#ifdef NOTIFY
-	    if((tr->state = DC_TRNS_MAIN) && (now - tri->lastprog > 600)) {
-		if(dcpid == 0)
+#ifdef HAVE_NOTIFY
+	    if((tr->state = DC_TRNS_MAIN) && (now - tri->lastprog > 600) && !tri->warned) {
+		if(dcpid == 0) {
 		    notify(&trnote, "transfer.error", _("Transfer stalled"), _("The transfer of %ls from %ls has not made progress for 10 minutes"), getfilename(tr->path), tr->peernick);
+		    tri->warned = 1;
+		}
 	    }
 #endif
 	    if((tr->state == DC_TRNS_MAIN) && (dnow - tri->sprog > 10)) {
-- 
2.11.0