diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index ff75327..372754c 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -107,11 +107,13 @@ void Guild::Deserialize(const std::string& guild_data, const std::string& guild_ void Guild::_CMGuildInfo(f8::MsgHdr& hdr, const cs::CMGuildInfo& msg) { + ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data; + cs::SMGuildInfo respmsg; FillGuildBasic(respmsg.mutable_info()); - #if 0 - GuildMgr::Instance()->ForwardGuildSMMsg(socket_handle, context, respmsg); - #endif + GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, + forward_msg->context(), + respmsg); } void Guild::_CMGuildJoin(f8::MsgHdr& hdr, const cs::CMGuildJoin& msg) diff --git a/server/imserver/guildmgr.cc b/server/imserver/guildmgr.cc index 7d32d49..d0ac696 100644 --- a/server/imserver/guildmgr.cc +++ b/server/imserver/guildmgr.cc @@ -82,6 +82,9 @@ void GuildMgr::_SS_IM_ForwardGuildCMMsg(f8::MsgHdr& hdr, const ss::SS_IM_Forward ForwardGuildSMMsg(hdr.socket_handle, msg.context(), msg.msgid(), respmsg); return; } + AsyncGuildTask *task = new AsyncGuildTask(); + task->forward_msg = msg; + CreateAsyncTask(hdr.socket_handle, msg.guild_id(), task); } void GuildMgr::CreateAsyncTask(int socket_handle, long long guild_id, AsyncGuildTask* task)