diff options
author | Chris Wilson <chris+github@qwirx.com> | 2011-12-13 00:43:41 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2011-12-13 00:43:41 +0000 |
commit | dea24ce69f88e2e28dce35aacaba83c90adb6cff (patch) | |
tree | 0453cb9860330a2d33b12c2c2a4eaf9cf0c988c4 /lib/server/Socket.cpp | |
parent | 20a8c39aa25d454a3fa142f125003ad242d73ea0 (diff) |
Add remote host and port to post-login login message, requested by Pete Jalajas.
Diffstat (limited to 'lib/server/Socket.cpp')
-rw-r--r-- | lib/server/Socket.cpp | 38 |
1 files changed, 12 insertions, 26 deletions
diff --git a/lib/server/Socket.cpp b/lib/server/Socket.cpp index 4a83bdb0..f2a4996b 100644 --- a/lib/server/Socket.cpp +++ b/lib/server/Socket.cpp @@ -123,27 +123,8 @@ void Socket::NameLookupToSockAddr(SocketAllAddr &addr, int &sockDomain, // -------------------------------------------------------------------------- void Socket::LogIncomingConnection(const struct sockaddr *addr, socklen_t addrlen) { - if(addr == NULL) {THROW_EXCEPTION(CommonException, BadArguments)} - - switch(addr->sa_family) - { - case AF_UNIX: - BOX_INFO("Incoming connection from local (UNIX socket)"); - break; - - case AF_INET: - { - sockaddr_in *a = (sockaddr_in*)addr; - BOX_INFO("Incoming connection from " << - inet_ntoa(a->sin_addr) << " port " << - ntohs(a->sin_port)); - } - break; - - default: - BOX_WARNING("Incoming connection of unknown type"); - break; - } + BOX_INFO("Incoming connection from " << + IncomingConnectionLogMessage(addr, addrlen)); } // -------------------------------------------------------------------------- @@ -161,20 +142,25 @@ std::string Socket::IncomingConnectionLogMessage(const struct sockaddr *addr, so switch(addr->sa_family) { case AF_UNIX: - return std::string("Incoming connection from local (UNIX socket)"); + return std::string("local (UNIX socket)"); break; case AF_INET: { - char msg[256]; // more than enough sockaddr_in *a = (sockaddr_in*)addr; - sprintf(msg, "Incoming connection from %s port %d", inet_ntoa(a->sin_addr), ntohs(a->sin_port)); - return std::string(msg); + std::ostringstream oss; + oss << inet_ntoa(a->sin_addr) << " port " << + ntohs(a->sin_port); + return oss.str(); } break; default: - return std::string("Incoming connection of unknown type"); + { + std::ostringstream oss; + oss << "unknown socket type " << addr->sa_family; + return oss.str(); + } break; } |