diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index 00e09a3..0a7de0b 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -339,6 +339,20 @@ void Guild::_CMGuildAgree(f8::MsgHdr& hdr, const cs::CMGuildAgree& msg) void Guild::_CMGuildRefuse(f8::MsgHdr& hdr, const cs::CMGuildRefuse& msg) { + ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data; + + cs::SMGuildRefuse respmsg; + GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, + forward_msg->context(), + respmsg); + + DBHelper::Instance()->SetGuildApplyStatus + ( + msg.apply().base_data().account_id(), + guild_id_, + kGuildApplyReject + ); + ClearApplyByIdx(msg.apply().idx()); } void Guild::_CMGuildKick(f8::MsgHdr& hdr, const cs::CMGuildKick& msg)