Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --cc src/engine/Player.cpp
- index f160626,b6f9ab2..0000000
- --- a/src/engine/Player.cpp
- +++ b/src/engine/Player.cpp
- diff --cc src/engine/SDriver.cpp
- index 623c87c,07db559..0000000
- --- a/src/engine/SDriver.cpp
- +++ b/src/engine/SDriver.cpp
- @@@ -51,18 -51,18 +51,21 @@@ void SDriver::updatePlayer(Player* p1,
- void SDriver::onUDPReceive(Stream* s) {
- Player* p = new Player();
- - Stream* out = new Stream;
- + Stream* out = new Stream();
- +
- + s->readByte(); /* Read the message ID */
- - s->readByte();
- p->networkRead(s);
- +
- if(SDriver::connectedPlayers_.contains(p->getID())) {
- -- SDriver::updatePlayer(SDriver::connectedPlayers_.value(p->getID()), p);
- ++ Player* stored = this->connectedPlayers_.value(p->getID());
- ++ this->updatePlayer(stored, p);
- ++ p = stored;
- } else {
- SDriver::addPlayer(p->getID(), p);
- }
- p->networkWrite(out);
- -- NetworkServer::instance()->send(network::kServerUpdate, out->data());
- ++ NetworkServer::instance()->send(network::kPlayerPosition, out->data());
- delete out;
- }
- }
- diff --git a/src/network/netserver.cpp b/src/network/netserver.cpp
- index 25f08a0..d3b9499 100644
- --- a/src/network/netserver.cpp
- +++ b/src/network/netserver.cpp
- @@ -1,5 +1,6 @@
- #include "netserver.h"
- #include "../util/thread.h"
- +#include <QNetworkInterface>
- namespace td {
- @@ -65,8 +66,13 @@ void NetworkServer::onMsgQueued()
- void NetworkServer::onUDPReceive()
- {
- QByteArray datagram;
- + QHostAddress host;
- + QList<QHostAddress> i(QNetworkInterface::allAddresses());
- datagram.resize(udpSocket_->pendingDatagramSize());
- - udpSocket_->readDatagram(datagram.data(), datagram.size());
- + udpSocket_->readDatagram(datagram.data(), datagram.size(), &host);
- + if (i.contains(host)) {
- + return;
- + }
- Stream* s = new Stream(datagram);
- emit UDPReceived(s);
Add Comment
Please, Sign In to add comment