From 8b932677f54c636b2a5a027cf0b258e191265bd4 Mon Sep 17 00:00:00 2001 From: momo5502 Date: Mon, 15 Feb 2016 20:28:01 +0100 Subject: [PATCH] Fix bad addresses. --- src/Components/Modules/Network.cpp | 4 ++++ src/Components/Modules/Network.hpp | 3 ++- src/Components/Modules/Node.cpp | 11 ++++++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Components/Modules/Network.cpp b/src/Components/Modules/Network.cpp index 25a55b53..008bfa99 100644 --- a/src/Components/Modules/Network.cpp +++ b/src/Components/Modules/Network.cpp @@ -82,6 +82,10 @@ namespace Components return false; } + bool Network::Address::IsValid() + { + return (this->GetType() != Game::netadrtype_t::NA_BAD); + } void Network::Address::Serialize(Proto::Network::Address* protoAddress) { protoAddress->set_ip(this->GetIP().full); diff --git a/src/Components/Modules/Network.hpp b/src/Components/Modules/Network.hpp index 854d0b01..b8044564 100644 --- a/src/Components/Modules/Network.hpp +++ b/src/Components/Modules/Network.hpp @@ -6,7 +6,7 @@ namespace Components class Address { public: - Address() {}; + Address() { this->SetType(Game::netadrtype_t::NA_BAD); }; Address(std::string addrString); Address(Game::netadr_t addr) : address(addr) {} Address(Game::netadr_t* addr) : Address(*addr) {} @@ -30,6 +30,7 @@ namespace Components bool IsLocal(); bool IsSelf(); + bool IsValid(); void Serialize(Proto::Network::Address* protoAddress); void Deserialize(const Proto::Network::Address& protoAddress); diff --git a/src/Components/Modules/Node.cpp b/src/Components/Modules/Node.cpp index 6017a33c..0181a0a3 100644 --- a/src/Components/Modules/Node.cpp +++ b/src/Components/Modules/Node.cpp @@ -13,7 +13,10 @@ namespace Components FileSystem::File defaultNodes("default_nodes.dat"); if (!defaultNodes.Exists()) return; - auto nodes = Utils::Explode(defaultNodes.GetBuffer(), '\n'); + auto buffer = defaultNodes.GetBuffer(); + Utils::Replace(buffer, "\r", ""); + + auto nodes = Utils::Explode(buffer, '\n'); for (auto node : nodes) { if (!node.empty()) @@ -90,9 +93,9 @@ namespace Components void Node::AddNode(Network::Address address) { #ifdef DEBUG - if (address.IsSelf()) return; + if (!address.IsValid() || address.IsSelf()) return; #else - if (address.IsLocal() || address.IsSelf()) return; + if (!address.IsValid() || address.IsLocal() || address.IsSelf()) return; #endif Node::NodeEntry* existingEntry = Node::FindNode(address); @@ -112,6 +115,8 @@ namespace Components entry.address = address; Node::Nodes.push_back(entry); + + Logger::Print("Adding node %s...\n", address.GetString()); } }