From 30d192259e6913a210156da2abce16e05b5a5825 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 26 Aug 2006 17:40:12 +0000 Subject: Applied patch by Rogier, adding a stream operator to NetComputer for logging purposes. --- ChangeLog | 8 +++++++- src/connectionhandler.cpp | 10 +++------- src/netcomputer.cpp | 16 +++++++++++++--- src/netcomputer.h | 10 ++++++++++ 4 files changed, 33 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 20de303c..ac82ca27 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-08-26 Rogier Polak + + * src/netcomputer.h, src/netcomputer.cpp, src/connectionhandler.cpp: + Added private overloaded << operator to NetComputer, for logging of the + peers ip-address (patch applied by Bjørn Lindeijer). + 2006-08-26 Guillaume Melquiond * src/accounthandler.cpp: Set an arbitrary start position outside any @@ -262,7 +268,7 @@ * src/configuration.cpp, src/accounthandler.cpp, src/dalstorage.cpp, src/main.cpp, src/chathandler.cpp, src/messagehandler.cpp, src/utils/stringfilter.cpp, src/utils/logger.h, src/skill.cpp: Changed - LOG macros to have statement syntax. + LOG macros to have statement syntax. 2006-05-19 Guillaume Melquiond diff --git a/src/connectionhandler.cpp b/src/connectionhandler.cpp index 1c73d758..96affdc6 100644 --- a/src/connectionhandler.cpp +++ b/src/connectionhandler.cpp @@ -116,11 +116,7 @@ void ConnectionHandler::process() case ENET_EVENT_TYPE_RECEIVE: { - // Convert the client IP address to string - // representation - std::string ipaddr = ip4ToString(event.peer->address.host); - - NetComputer *comp = (NetComputer *)event.peer->data; + NetComputer *comp = (NetComputer*) event.peer->data; #ifdef SCRIPT_SUPPORT // This could be good if you wanted to extend the @@ -140,11 +136,11 @@ void ConnectionHandler::process() event.packet->dataLength); LOG_INFO("Received message " << msg.getId() << " (" << event.packet->dataLength << " B) from " - << ipaddr, 2); + << *comp, 2); processMessage(comp, msg); } else { - LOG_ERROR("Message too short from " << ipaddr, 0); + LOG_ERROR("Message too short from " << *comp, 0); } /* Clean up the packet now that we're done using it. */ diff --git a/src/netcomputer.cpp b/src/netcomputer.cpp index fd9bec5e..c27dd327 100644 --- a/src/netcomputer.cpp +++ b/src/netcomputer.cpp @@ -25,13 +25,11 @@ #include #include -#include #include #include "defines.h" #include "messageout.h" -#include "connectionhandler.h" #include "utils/logger.h" @@ -69,7 +67,7 @@ NetComputer::send(const MessageOut &msg, bool reliable, unsigned int channel) { LOG_INFO("Sending packet of length " << msg.getLength() << " to " - << ip4ToString(mPeer->address.host), 2); + << *this, 2); ENetPacket *packet; packet = enet_packet_create(msg.getData(), @@ -85,3 +83,15 @@ NetComputer::send(const MessageOut &msg, bool reliable, LOG_WARN("Failure to create packet!", 0); } } + +std::ostream& +operator <<(std::ostream &os, const NetComputer &comp) +{ + // address.host contains the ip-address in network-byte-order + + os << ((comp.mPeer->address.host & 0xff000000) >> 24) << "." + << ((comp.mPeer->address.host & 0x00ff0000) >> 16) << "." + << ((comp.mPeer->address.host & 0x0000ff00) >> 8) << "." + << ((comp.mPeer->address.host & 0x000000ff) >> 0); + return os; +} diff --git a/src/netcomputer.h b/src/netcomputer.h index 842d362b..5622e03c 100644 --- a/src/netcomputer.h +++ b/src/netcomputer.h @@ -26,6 +26,8 @@ #include +#include + class MessageOut; /** @@ -83,6 +85,14 @@ class NetComputer private: ENetPeer *mPeer; /**< Client peer */ + + /** + * Converts the ip-address of the peer to a stringstream. + * Example: + * std::cout << comp + */ + friend std::ostream& operator <<(std::ostream &os, + const NetComputer &comp); }; #endif // _TMWSERV_NETCOMPUTER_H_ -- cgit v1.2.3-60-g2f50