-/* $Id$
-
-This file is part of libmspnet
-Copyright © 2008 Mikkosoft Productions, Mikko Rasa
-Distributed under the LGPL
-*/
-
#ifndef MSP_NET_SOCKADDR_H_
#define MSP_NET_SOCKADDR_H_
+#include <string>
#ifndef WIN32
#include <sys/socket.h>
#endif
class SockAddr
{
public:
- virtual Family get_family() const =0;
- virtual std::string str() const =0;
+ virtual Family get_family() const = 0;
+ virtual std::string str() const = 0;
/**
Fills the given struct sockaddr with information from this SockAddr.
@return Number of bytes used
*/
- virtual unsigned fill_sockaddr(sockaddr &) const =0;
+ virtual unsigned fill_sockaddr(sockaddr &) const = 0;
+ virtual unsigned fill_sockaddr(sockaddr_storage &) const;
virtual SockAddr *copy() const =0;
virtual ~SockAddr() { }
- static SockAddr *create(sockaddr &);
+ static SockAddr *create(const sockaddr &sa) { return create(reinterpret_cast<const sockaddr_storage &>(sa)); }
+ static SockAddr *create(const sockaddr_storage &);
protected:
SockAddr() { }
};