X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Finet.cpp;h=41b5ae7cb0b232d847be91054e07e05319dfd397;hb=729a80158708fd499d942663eb5115d93d247f46;hp=181c73403cfa3606731d384abb90a056953f07b4;hpb=f59eded7c3e162bbdfc6db424c9badc730017698;p=libs%2Fnet.git diff --git a/source/inet.cpp b/source/inet.cpp index 181c734..41b5ae7 100644 --- a/source/inet.cpp +++ b/source/inet.cpp @@ -1,11 +1,4 @@ -/* $Id$ - -This file is part of libmspnet -Copyright © 2008 Mikkosoft Productions, Mikko Rasa -Distributed under the LGPL -*/ - -#include +#include #include "inet.h" using namespace std; @@ -18,7 +11,7 @@ InetAddr::InetAddr(): port(0) { } -InetAddr::InetAddr(sockaddr_in &sa): +InetAddr::InetAddr(const sockaddr_in &sa): addr(sa.sin_addr.s_addr), port(sa.sin_port) { } @@ -30,16 +23,19 @@ InetAddr::InetAddr(in_addr_t a, in_port_t p): string InetAddr::str() const { - const unsigned char *ptr=reinterpret_cast(&addr); - return format("%d.%d.%d.%d:%d", static_cast(ptr[0]), static_cast(ptr[1]), static_cast(ptr[2]), static_cast(ptr[3]), ntohs(port)); + const unsigned char *ptr = reinterpret_cast(&addr); + string result = format("%d.%d.%d.%d", ptr[0], ptr[1], ptr[2], ptr[3]); + if(port) + result += format(":%d", ntohs(port)); + return result; } unsigned InetAddr::fill_sockaddr(sockaddr &sa) const { - sockaddr_in &sai=reinterpret_cast(sa); - sai.sin_family=AF_INET; - sai.sin_addr.s_addr=addr; - sai.sin_port=port; + sockaddr_in &sai = reinterpret_cast(sa); + sai.sin_family = AF_INET; + sai.sin_addr.s_addr = addr; + sai.sin_port = port; return sizeof(sockaddr_in); }