]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/sckaddr.cpp
Ensure that size in the major direction of box sizer doesn't exceed the total.
[wxWidgets.git] / src / common / sckaddr.cpp
index 76e6163d22e95ce14dcd4ad05385fc64a6de98fe..5f2797cf5cdf966900d74502c70edd6bf959db34 100644 (file)
@@ -31,6 +31,7 @@
     #include "wx/object.h"
     #include "wx/log.h"
     #include "wx/intl.h"
+    #include "wx/thread.h"
 
     #include <stdio.h>
     #include <stdlib.h>
@@ -148,7 +149,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxUNIXaddress, wxSockAddress)
     typedef char wxGetservBuf[1024];
 #endif
 
-#ifdef wxHAS_MT_SAFE_GETBY_FUNCS || !wxUSE_THREADS
+#if defined(wxHAS_MT_SAFE_GETBY_FUNCS) || !wxUSE_THREADS
     #define wxLOCK_GETBY_MUTEX(name)
 #else // may need mutexes to protect getxxxbyxxx() calls
     #if defined(HAVE_GETHOSTBYNAME) || \
@@ -508,7 +509,7 @@ bool wxSockAddressImpl::SetHostName4(const wxString& name)
     if ( !addr )
         return false;
 
-    const wxUTF8Buf namebuf(name.utf8_str());
+    const wxScopedCharBuffer namebuf(name.utf8_str());
 
     // first check if this is an address in quad dotted notation
 #if defined(HAVE_INET_ATON)
@@ -695,7 +696,7 @@ bool wxSockAddressImpl::SetPath(const wxString& path)
     if ( !addr )
         return false;
 
-    const wxUTF8Buf buf(path.utf8_str());
+    const wxScopedCharBuffer buf(path.utf8_str());
     if ( strlen(buf) >= UNIX_PATH_MAX )
         return false;
 
@@ -722,9 +723,19 @@ wxString wxSockAddressImpl::GetPath() const
 // wxSockAddress
 // ----------------------------------------------------------------------------
 
+const sockaddr *wxSockAddress::GetAddressData() const
+{
+    return GetAddress().GetAddr();
+}
+
+int wxSockAddress::GetAddressDataLen() const
+{
+    return GetAddress().GetLen();
+}
+
 void wxSockAddress::Init()
 {
-    if ( !wxSocketBase::IsInitialized() )
+    if ( wxIsMainThread() && !wxSocketBase::IsInitialized() )
     {
         // we must do it before using any socket functions
         (void)wxSocketBase::Initialize();