From: Pekka Riikonen Date: Sat, 30 Aug 2008 07:50:24 +0000 (+0300) Subject: Resolve channel in INVITE notify if we don't have it yet X-Git-Tag: silc.client.1.1.5~8 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=434015aa9a1ffc492116af219eba09e36188cbf9 Resolve channel in INVITE notify if we don't have it yet Fixes bug that user cannot se INVITE notifications sent by other users. --- diff --git a/lib/silcclient/client_notify.c b/lib/silcclient/client_notify.c index 64c041ea..2ccb574c 100644 --- a/lib/silcclient/client_notify.c +++ b/lib/silcclient/client_notify.c @@ -4,7 +4,7 @@ Author: Pekka Riikonen - Copyright (C) 1997 - 2007 Pekka Riikonen + Copyright (C) 1997 - 2008 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -298,8 +298,14 @@ SILC_FSM_STATE(silc_client_notify_invite) /* Get the channel entry */ channel = silc_client_get_channel_by_id(client, conn, &id.u.channel_id); - if (!channel) - goto out; + if (!channel) { + /** Resolve channel */ + SILC_FSM_CALL(silc_client_get_channel_by_id_resolve( + client, conn, &id.u.channel_id, + silc_client_notify_resolved, + notify)); + /* NOT REACHED */ + } /* If channel is being resolved handle notify after resolving */ if (channel->internal.resolve_cmd_ident) { @@ -529,7 +535,7 @@ SILC_FSM_STATE(silc_client_notify_signoff) if (tmp && tmp_len > 128) tmp[128] = '\0'; - if (packet->dst_id_type == SILC_ID_CHANNEL) + if (packet->dst_id_type == SILC_ID_CHANNEL) if (silc_id_str2id(packet->dst_id, packet->dst_id_len, SILC_ID_CHANNEL, &id.u.channel_id, sizeof(id.u.channel_id))) channel = silc_client_get_channel_by_id(client, conn, &id.u.channel_id);