diff --git a/server/masterserver/GGListener.cc b/server/masterserver/GGListener.cc index bccb20d..6129e3c 100644 --- a/server/masterserver/GGListener.cc +++ b/server/masterserver/GGListener.cc @@ -5,6 +5,7 @@ #include #include +#include #include "app.h" #include "GGListener.h" @@ -50,25 +51,29 @@ public: virtual void OnRawHttpGet(const std::string& url, const std::string& querystr, std::string& response) override { - #if 0 - App::Instance()->AddIMMsg(IM_ExecGM, - a8::XParams() - .SetSender(socket_handle) - .SetParam1(url) - .SetParam2(querystr) - .SetParam3(saddr) - ); - #endif + f8::MsgQueue::Instance()->PostMsg + (IM_ExecGM, + a8::Args + ( + { + socket_handle, + a8::XValue(url).GetString(), + a8::XValue(querystr).GetString(), + saddr + } + )); } virtual void OnDisConnect() override { - #if 0 - App::Instance()->AddIMMsg(IM_ClientSocketDisconnect, - a8::XParams() - .SetSender(socket_handle) - .SetParam1(1)); - #endif + f8::MsgQueue::Instance()->PostMsg + (IM_ClientSocketDisconnect, + a8::Args + ( + { + socket_handle + } + )); } }; diff --git a/server/masterserver/handlermgr.cc b/server/masterserver/handlermgr.cc index 76753d7..c8660ae 100644 --- a/server/masterserver/handlermgr.cc +++ b/server/masterserver/handlermgr.cc @@ -2,6 +2,7 @@ #include #include +#include #include "handlermgr.h" @@ -34,6 +35,24 @@ void HandlerMgr::Init() { GSMgr::Instance()->___GSList(request); }); + f8::MsgQueue::Instance()->RegisterCallBack + ( + IM_ExecGM, + [] (const a8::Args& args) + { + int socket_handle = args.Get(0); + std::string url = args.Get(1); + std::string query_str = args.Get(2); + unsigned long saddr = args.Get(3); + + HandlerMgr::Instance()->ProcGMMsg + ( + saddr, + socket_handle, + url, + query_str + ); + }); } void HandlerMgr::UnInit()