///////////////////////////////////////////////////////////////////////////////
-// Name: wx/private/sockaddr.h
+// Name: wx/private/sckaddr.h
// Purpose: wxSockAddressImpl
// Author: Vadim Zeitlin
// Created: 2008-12-28
-// RCS-ID: $Id$
// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_PRIVATE_SOCKADDR_H_
#define _WX_PRIVATE_SOCKADDR_H_
-#ifdef __WXMSW__
+#ifdef __WINDOWS__
#include "wx/msw/wrapwin.h"
#if wxUSE_IPV6
u_char sun_family; /* AF_UNIX */
char sun_path[108]; /* path name (gag) */
};
+ #include <in.h>
#else // generic Unix
#include <sys/types.h>
#include <sys/socket.h>
wxSockAddressImpl& operator=(const wxSockAddressImpl& other)
{
- free(m_addr);
-
- InitFromOther(other);
-
+ if (this != &other)
+ {
+ free(m_addr);
+ InitFromOther(other);
+ }
return *this;
}
#ifdef wxHAS_UNIX_DOMAIN_SOCKETS
void CreateUnix();
#endif // wxHAS_UNIX_DOMAIN_SOCKETS
+ void Create(Family family)
+ {
+ switch ( family )
+ {
+ case FAMILY_INET:
+ CreateINET();
+ break;
+
+#if wxUSE_IPV6
+ case FAMILY_INET6:
+ CreateINET6();
+ break;
+#endif // wxUSE_IPV6
+
+#ifdef wxHAS_UNIX_DOMAIN_SOCKETS
+ case FAMILY_UNIX:
+ CreateUnix();
+ break;
+#endif // wxHAS_UNIX_DOMAIN_SOCKETS
+
+ default:
+ wxFAIL_MSG( "unsupported socket address family" );
+ }
+ }
// simple accessors
Family GetFamily() const { return m_family; }