src/protocols/msn/slpcall.c

changeset 10296
9badf1cedc6e
parent 10225
0dfea1bc8695
child 10345
7d7f8cfa2b4f
--- a/src/protocols/msn/slpcall.c	Thu Dec 02 13:03:23 2004 +0000
+++ b/src/protocols/msn/slpcall.c	Thu Dec 02 16:07:26 2004 +0000
@@ -189,11 +189,21 @@
 gboolean
 msn_slp_call_timeout(gpointer data)
 {
+	MsnSlpCall *slpcall;
+
 	gaim_debug_info("msn", "slpcall timeout\n");
 
-	msn_slp_call_destroy(data);
+	slpcall = data;
 
-	return FALSE;
+	if (!slpcall->pending && !slpcall->progress)
+	{
+		msn_slp_call_destroy(slpcall);
+		return FALSE;
+	}
+
+	slpcall->progress = FALSE;
+
+	return TRUE;
 }
 
 MsnSlpCall *
@@ -241,14 +251,5 @@
 	}
 #endif
 
-	if (slpcall != NULL)
-	{
-		if (slpcall->timer)
-			gaim_timeout_remove(slpcall->timer);
-
-		slpcall->timer = gaim_timeout_add(MSN_SLPCALL_TIMEOUT,
-										  msn_slp_call_timeout, slpcall);
-	}
-
 	return slpcall;
 }

mercurial