]> git.0d.be Git - empathy.git/commitdiff
call-handler: check the state before deferring the accept()
authorDanielle Madeley <danielle.madeley@collabora.co.uk>
Thu, 12 Jan 2012 05:59:45 +0000 (16:59 +1100)
committerDanielle Madeley <danielle.madeley@collabora.co.uk>
Thu, 12 Jan 2012 05:59:45 +0000 (16:59 +1100)
Xavier's previous patch delayed calling accept() until the channel was
in the INITIALISED state, however, if the channel is already in the
INITIALISED state by the time we receive it, we should just accept
immediately. Otherwise we'll spend our lives waiting for a state
transition that will never occur.

src/empathy-call-handler.c

index 614b470c661e2ff49251d7f6d2dda3c75fe11622..703ed3299b74f0a25981dca1a1689c7fb1e2aae5 100644 (file)
@@ -910,7 +910,13 @@ empathy_call_handler_start_call (EmpathyCallHandler *handler,
   if (priv->call != NULL)
     {
       empathy_call_handler_start_tpfs (handler);
-      priv->accept_when_initialised = TRUE;
+
+      if (tp_call_channel_get_state (priv->call, NULL, NULL, NULL) ==
+          TP_CALL_STATE_INITIALISED)
+        tp_call_channel_accept_async (priv->call, on_call_accepted_cb, NULL);
+      else
+        priv->accept_when_initialised = TRUE;
+
       return;
     }