From bc61f6c86f85200abc1605b454854ace343f4863 Mon Sep 17 00:00:00 2001 From: Stefan Becker Date: Wed, 4 May 2011 10:39:56 +0300 Subject: [PATCH] im: fix response/timeout for multiparty/conference messages Chat messages for multiparty/conference sessions are sent using the IM message handling, i.e. they are also added to the unconfirmed message queue. But in process_message_response/timeout() we were only handling IM sessions, so those messages were incorrectly left on the queue and therefore after the session was closed we printed error messages in the chat. --- src/core/sipe-im.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/core/sipe-im.c b/src/core/sipe-im.c index 7b39965b..9e9ee775 100644 --- a/src/core/sipe-im.c +++ b/src/core/sipe-im.c @@ -438,7 +438,8 @@ process_message_response(struct sipe_core_private *sipe_private, { gboolean ret = TRUE; gchar *with = parse_from(sipmsg_find_header(msg, "To")); - struct sip_session *session = sipe_session_find_im(sipe_private, with); + const gchar *callid = sipmsg_find_header(msg, "Call-ID"); + struct sip_session *session = sipe_session_find_chat_or_im(sipe_private, callid, with); struct sip_dialog *dialog; gchar *key; struct queued_message *message; @@ -516,7 +517,8 @@ process_message_timeout(struct sipe_core_private *sipe_private, SIPE_UNUSED_PARAMETER struct transaction *trans) { gchar *with = parse_from(sipmsg_find_header(msg, "To")); - struct sip_session *session = sipe_session_find_im(sipe_private, with); + const gchar *callid = sipmsg_find_header(msg, "Call-ID"); + struct sip_session *session = sipe_session_find_chat_or_im(sipe_private, callid, with); gchar *key; gboolean found; -- 2.11.4.GIT