Guest User

Untitled

a guest
Jul 23rd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. diff --cc src/engine/Player.cpp
  2. index f160626,b6f9ab2..0000000
  3. --- a/src/engine/Player.cpp
  4. +++ b/src/engine/Player.cpp
  5. diff --cc src/engine/SDriver.cpp
  6. index 623c87c,07db559..0000000
  7. --- a/src/engine/SDriver.cpp
  8. +++ b/src/engine/SDriver.cpp
  9. @@@ -51,18 -51,18 +51,21 @@@ void SDriver::updatePlayer(Player* p1,
  10.  
  11. void SDriver::onUDPReceive(Stream* s) {
  12. Player* p = new Player();
  13. - Stream* out = new Stream;
  14. + Stream* out = new Stream();
  15. +
  16. + s->readByte(); /* Read the message ID */
  17.  
  18. - s->readByte();
  19. p->networkRead(s);
  20. +
  21. if(SDriver::connectedPlayers_.contains(p->getID())) {
  22. -- SDriver::updatePlayer(SDriver::connectedPlayers_.value(p->getID()), p);
  23. ++ Player* stored = this->connectedPlayers_.value(p->getID());
  24. ++ this->updatePlayer(stored, p);
  25. ++ p = stored;
  26. } else {
  27. SDriver::addPlayer(p->getID(), p);
  28. }
  29. p->networkWrite(out);
  30. -- NetworkServer::instance()->send(network::kServerUpdate, out->data());
  31. ++ NetworkServer::instance()->send(network::kPlayerPosition, out->data());
  32. delete out;
  33. }
  34. }
  35. diff --git a/src/network/netserver.cpp b/src/network/netserver.cpp
  36. index 25f08a0..d3b9499 100644
  37. --- a/src/network/netserver.cpp
  38. +++ b/src/network/netserver.cpp
  39. @@ -1,5 +1,6 @@
  40. #include "netserver.h"
  41. #include "../util/thread.h"
  42. +#include <QNetworkInterface>
  43.  
  44. namespace td {
  45.  
  46. @@ -65,8 +66,13 @@ void NetworkServer::onMsgQueued()
  47. void NetworkServer::onUDPReceive()
  48. {
  49. QByteArray datagram;
  50. + QHostAddress host;
  51. + QList<QHostAddress> i(QNetworkInterface::allAddresses());
  52. datagram.resize(udpSocket_->pendingDatagramSize());
  53. - udpSocket_->readDatagram(datagram.data(), datagram.size());
  54. + udpSocket_->readDatagram(datagram.data(), datagram.size(), &host);
  55. + if (i.contains(host)) {
  56. + return;
  57. + }
  58. Stream* s = new Stream(datagram);
  59.  
  60. emit UDPReceived(s);
Add Comment
Please, Sign In to add comment