-/* $Id$
-
-This file is part of libmspnet
-Copyright © 2008 Mikkosoft Productions, Mikko Rasa
-Distributed under the LGPL
-*/
-
-#include <msp/strings/formatter.h>
+#include <msp/strings/format.h>
#include "inet.h"
using namespace std;
port(0)
{ }
-InetAddr::InetAddr(sockaddr_in &sa):
+InetAddr::InetAddr(const sockaddr_in &sa):
addr(sa.sin_addr.s_addr),
port(sa.sin_port)
{ }
string InetAddr::str() const
{
- const unsigned char *ptr=reinterpret_cast<const unsigned char *>(&addr);
- return format("%d.%d.%d.%d:%d", static_cast<int>(ptr[0]), static_cast<int>(ptr[1]), static_cast<int>(ptr[2]), static_cast<int>(ptr[3]), ntohs(port));
+ const unsigned char *ptr = reinterpret_cast<const unsigned char *>(&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<sockaddr_in &>(sa);
- sai.sin_family=AF_INET;
- sai.sin_addr.s_addr=addr;
- sai.sin_port=port;
+ sockaddr_in &sai = reinterpret_cast<sockaddr_in &>(sa);
+ sai.sin_family = AF_INET;
+ sai.sin_addr.s_addr = addr;
+ sai.sin_port = port;
return sizeof(sockaddr_in);
}