|
@@ -44,22 +44,25 @@ void net_service::on_message(std::shared_ptr<client> clt,const char*data,size_t
|
|
|
case CHAR_LOCATEDATA_TOF_EXTEND://tof-扩展
|
|
|
{
|
|
|
uint32_t site_id;
|
|
|
+ //is>>site_id>>skip(12);
|
|
|
message_siteinfo msgSiteInfo;
|
|
|
msgSiteInfo.load(is,false);
|
|
|
site_id = msgSiteInfo.m_site_id;
|
|
|
- task* t_site=task::alloc<message_locinfo>();
|
|
|
+ auto site_ptr = sit_list::instance()->get(static_cast<int32_t>(site_id));
|
|
|
+ if(!site_ptr)
|
|
|
+ {
|
|
|
+ log_error("在全局分站列表中找不到分站:分站id=%d", site_id);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //分站数据到队列
|
|
|
+ task* t_site=task::alloc<message_siteinfo>();
|
|
|
+ message_siteinfo &msg = t_site->body<message_siteinfo>();
|
|
|
+ msg = msgSiteInfo;
|
|
|
t_site->m_cmd_code=cmd;
|
|
|
t_site->m_hash_id=site_id;
|
|
|
t_site->m_site_data = 1;
|
|
|
m_loc_worker->request(t_site);
|
|
|
- //is>>site_id>>skip(12);
|
|
|
-
|
|
|
- auto site_ptr = sit_list::instance()->get(static_cast<int32_t>(site_id));
|
|
|
- if(!site_ptr)
|
|
|
- {
|
|
|
- log_error("在全局分站列表中找不到分站:分站id=%d", site_id);
|
|
|
- break;
|
|
|
- }
|
|
|
+ //设置连接到分站数据中
|
|
|
site_ptr->set_client(clt);
|
|
|
|
|
|
struct timeval tv;
|
|
@@ -75,6 +78,7 @@ void net_service::on_message(std::shared_ptr<client> clt,const char*data,size_t
|
|
|
m.load(is,cmd==0x863b);
|
|
|
m.m_time_stamp=tstamp;
|
|
|
m.m_site_id=site_id;
|
|
|
+ t_site->m_site_data = 0;
|
|
|
|
|
|
t->m_cmd_code=cmd;
|
|
|
t->m_hash_id=m.m_card_id;
|
|
@@ -85,8 +89,12 @@ void net_service::on_message(std::shared_ptr<client> clt,const char*data,size_t
|
|
|
case CHAR_LOCATEDATA_TDOA_EXTEND://tdoa
|
|
|
{
|
|
|
uint32_t site_id;
|
|
|
+ //is>>site_id>>skip(12);
|
|
|
+ //分站数据
|
|
|
message_siteinfo msgSiteInfo;
|
|
|
msgSiteInfo.load(is,false);
|
|
|
+ message_siteinfo &msg = t_site->body<message_siteinfo>();
|
|
|
+ msg = msgSiteInfo;
|
|
|
site_id = msgSiteInfo.m_site_id;
|
|
|
task*t_site=task::alloc<message_locinfo>();
|
|
|
t_site->m_cmd_code=cmd;
|
|
@@ -99,6 +107,7 @@ void net_service::on_message(std::shared_ptr<client> clt,const char*data,size_t
|
|
|
message_locinfo&m=t->body<message_locinfo>();
|
|
|
m.load(is,cmd==0x863b);
|
|
|
m.m_site_id=site_id;
|
|
|
+ t->m_site_data = 0;
|
|
|
t->m_cmd_code=cmd;
|
|
|
t->m_hash_id=m.m_card_id;
|
|
|
m_sync_worker->translate(m);
|