]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/private/sckaddr.h
Add RunScript and implement on all backends. Document and add a very simple unit...
[wxWidgets.git] / include / wx / private / sckaddr.h
index eafa8fdccb0d652d0b8841f091649a989408de49..2ad7b6b2df0f898ac19902b8ca87a34905e24980 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
 // Purpose:     wxSockAddressImpl
 // Author:      Vadim Zeitlin
 // Created:     2008-12-28
 
 #ifdef __WXMSW__
     #include "wx/msw/wrapwin.h"
 
 #ifdef __WXMSW__
     #include "wx/msw/wrapwin.h"
+
+    #if wxUSE_IPV6
+        #include <ws2tcpip.h>
+    #endif
 #elif defined(__VMS__)
     #include <socket.h>
 
 #elif defined(__VMS__)
     #include <socket.h>
 
@@ -22,6 +26,7 @@
         u_char  sun_family;     /* AF_UNIX */
         char    sun_path[108];  /* path name (gag) */
     };
         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>
 #else // generic Unix
     #include <sys/types.h>
     #include <sys/socket.h>
@@ -132,10 +137,11 @@ public:
 
     wxSockAddressImpl& operator=(const wxSockAddressImpl& other)
     {
 
     wxSockAddressImpl& operator=(const wxSockAddressImpl& other)
     {
-        free(m_addr);
-
-        InitFromOther(other);
-
+        if (this != &other)
+        {
+            free(m_addr);
+            InitFromOther(other);
+        }
         return *this;
     }
 
         return *this;
     }
 
@@ -161,6 +167,30 @@ public:
 #ifdef wxHAS_UNIX_DOMAIN_SOCKETS
     void CreateUnix();
 #endif // wxHAS_UNIX_DOMAIN_SOCKETS
 #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; }
 
     // simple accessors
     Family GetFamily() const { return m_family; }