[Orxonox-commit 5796] r10456 - in code/branches/multiplayerFS15/src/libraries/network: . packet
frovelli at orxonox.net
frovelli at orxonox.net
Sat May 23 21:47:30 CEST 2015
Author: frovelli
Date: 2015-05-23 21:47:30 +0200 (Sat, 23 May 2015)
New Revision: 10456
Modified:
code/branches/multiplayerFS15/src/libraries/network/LANDiscoverable.cc
code/branches/multiplayerFS15/src/libraries/network/LANDiscovery.cc
code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.cc
code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.h
Log:
Transmit client count in LAN by evil hack
Modified: code/branches/multiplayerFS15/src/libraries/network/LANDiscoverable.cc
===================================================================
--- code/branches/multiplayerFS15/src/libraries/network/LANDiscoverable.cc 2015-05-23 17:33:37 UTC (rev 10455)
+++ code/branches/multiplayerFS15/src/libraries/network/LANDiscoverable.cc 2015-05-23 19:47:30 UTC (rev 10456)
@@ -119,7 +119,7 @@
orxout(internal_info, context::network) << "Received LAN discovery message from client " << event.peer->host->receivedAddress << endl;
packet::ServerInformation info;
info.setServerName(this->ownName);
- info.setClientNumber(this->clientNumber);
+ info.setClientNumber(5);
info.send(event.peer);
// ENetPacket* packet = enet_packet_create( LAN_DISCOVERY_ACK, strlen(LAN_DISCOVERY_ACK)+1, ENET_PACKET_FLAG_RELIABLE );
// enet_peer_send(event.peer, 0, packet );
Modified: code/branches/multiplayerFS15/src/libraries/network/LANDiscovery.cc
===================================================================
--- code/branches/multiplayerFS15/src/libraries/network/LANDiscovery.cc 2015-05-23 17:33:37 UTC (rev 10455)
+++ code/branches/multiplayerFS15/src/libraries/network/LANDiscovery.cc 2015-05-23 19:47:30 UTC (rev 10456)
@@ -88,6 +88,9 @@
case ENET_EVENT_TYPE_RECEIVE:
{
packet::ServerInformation info(&event);
+ std::string payload = info.getServerName();
+ info.setServerName(payload.substr(0,payload.length()-2));
+ info.setClientNumber( Ogre::StringConverter::parseInt(payload.substr(payload.length()-1)));
orxout(internal_info, context::network) << "Received LAN discovery server information; Name: " << info.getServerName() << ", Address: " << info.getServerIP() << ", Players: " << info.getClientNumber() << ", RTT: " << info.getServerRTT() << endl;
std::vector<packet::ServerInformation>::iterator it;
for( it=this->servers_.begin(); it!=this->servers_.end(); ++it )
Modified: code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.cc
===================================================================
--- code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.cc 2015-05-23 17:33:37 UTC (rev 10455)
+++ code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.cc 2015-05-23 19:47:30 UTC (rev 10456)
@@ -72,11 +72,12 @@
void ServerInformation::send(ENetPeer* peer)
{
- uint32_t size = returnSize((char*&)LAN_DISCOVERY_ACK) + returnSize(this->serverName_);
+ std::string payload = this->serverName_ + Ogre::StringConverter::toString(this->clientNumber_);
+ uint32_t size = returnSize((char*&)LAN_DISCOVERY_ACK) + returnSize(payload);
uint8_t* temp = new uint8_t[size];
uint8_t* temp2 = temp;
saveAndIncrease((char*&)LAN_DISCOVERY_ACK, temp2);
- saveAndIncrease(this->serverName_, temp2);
+ saveAndIncrease(payload, temp2);
ENetPacket* packet = enet_packet_create( temp, size, 0 );
enet_peer_send(peer, 0, packet);
Modified: code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.h
===================================================================
--- code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.h 2015-05-23 17:33:37 UTC (rev 10455)
+++ code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.h 2015-05-23 19:47:30 UTC (rev 10456)
@@ -29,7 +29,9 @@
#include "../NetworkPrereqs.h"
#include <string>
+#include <OgreStringConverter.h>
+
#ifndef SERVERINFORMATION_H
#define SERVERINFORMATION_H
@@ -56,9 +58,9 @@
private:
std::string serverName_;
+ int clientNumber_;
std::string serverIP_;
uint32_t serverRTT_;
- int clientNumber_;
};
}
More information about the Orxonox-commit
mailing list