From: <sv...@ww...> - 2004-12-12 10:41:46
|
Author: mkrose Date: 2004-12-12 02:41:39 -0800 (Sun, 12 Dec 2004) New Revision: 1370 Modified: trunk/CSP/SimCore/Battlefield/GlobalBattlefield.h trunk/CSP/SimCore/Battlefield/LocalBattlefield.cpp Log: Make sure all server command responses are set to reliable. Fix an assert that fails when receiving duplicate id allocation packets. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1370 Modified: trunk/CSP/SimCore/Battlefield/GlobalBattlefield.h =================================================================== --- trunk/CSP/SimCore/Battlefield/GlobalBattlefield.h 2004-12-12 10:19:52 UTC (rev 1369) +++ trunk/CSP/SimCore/Battlefield/GlobalBattlefield.h 2004-12-12 10:41:39 UTC (rev 1370) @@ -78,6 +78,7 @@ public: ClientResponse(simnet::NetworkMessage::Ref const &request): m_Response(new MSG()) { m_Response->setReplyTo(request); + m_Response->setReliable(); m_Response->setRoutingType(ROUTE_COMMAND); } inline typename MSG::Ref const &operator->() { return m_Response; } Modified: trunk/CSP/SimCore/Battlefield/LocalBattlefield.cpp =================================================================== --- trunk/CSP/SimCore/Battlefield/LocalBattlefield.cpp 2004-12-12 10:19:52 UTC (rev 1369) +++ trunk/CSP/SimCore/Battlefield/LocalBattlefield.cpp 2004-12-12 10:41:39 UTC (rev 1370) @@ -459,6 +459,7 @@ void LocalBattlefield::onIdAllocationResponse(simdata::Ref<IdAllocationResponse> const &msg, simdata::Ref<simnet::MessageQueue> const &) { SIMNET_LOG(MESSAGE, INFO, *msg); + if (static_cast<ObjectId>(msg->first_id()) == m_LocalIdPool->reserve) return; // duplicate assert(m_LocalIdPool->reserve_limit == 0); m_LocalIdPool->reserve = msg->first_id(); m_LocalIdPool->reserve_limit = msg->first_id() + msg->id_count(); |