]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/private/sckaddr.h
Add WXK_NONE symbolic constant indicating absence of a key.
[wxWidgets.git] / include / wx / private / sckaddr.h
index 1fd89a3b98217dfd362234396bf585ebb22bc8c9..a0e0ec4ee1f05901ee2b350e1562376f6e4fce96 100644 (file)
@@ -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; }