]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/private/sckaddr.h
synchronize GTK2 minimum version in docs
[wxWidgets.git] / include / wx / private / sckaddr.h
index 1fd89a3b98217dfd362234396bf585ebb22bc8c9..bb6b30c6798502c1c29e527d544d4bee442a2608 100644 (file)
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        wx/private/sockaddr.h
+// Name:        wx/private/sckaddr.h
 // Purpose:     wxSockAddressImpl
 // Author:      Vadim Zeitlin
 // Created:     2008-12-28
@@ -11,7 +11,7 @@
 #ifndef _WX_PRIVATE_SOCKADDR_H_
 #define _WX_PRIVATE_SOCKADDR_H_
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__
     #include "wx/msw/wrapwin.h"
 
     #if wxUSE_IPV6
@@ -26,6 +26,7 @@
         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>
@@ -136,10 +137,11 @@ public:
 
     wxSockAddressImpl& operator=(const wxSockAddressImpl& other)
     {
-        free(m_addr);
-
-        InitFromOther(other);
-
+        if (this != &other)
+        {
+            free(m_addr);
+            InitFromOther(other);
+        }
         return *this;
     }
 
@@ -165,6 +167,30 @@ public:
 #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; }