X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f01bca89fd89e8b07061f96d4329bf6cebe6232e..4c43dd9078b2f9f8bb280020a878932272d0163e:/src/common/socket.cpp diff --git a/src/common/socket.cpp b/src/common/socket.cpp index 7285254c4b..05f337bfc3 100644 --- a/src/common/socket.cpp +++ b/src/common/socket.cpp @@ -1203,13 +1203,14 @@ bool wxSocketBase::SetOption(int level, int optname, const void *optval, return true; } -bool wxSocketBase::SetLocal(wxSockAddress& local) +bool wxSocketBase::SetLocal(wxIPV4address& local) { GAddress* la = local.GetAddress(); + // If the address is valid, save it for use when we call Connect if (la && la->m_addr) { - m_socket->SetLocal(la); + m_localAddress = local; return true; } @@ -1274,6 +1275,12 @@ bool wxSocketClient::DoConnect(wxSockAddress& addr_man, wxSockAddress* local, bo m_socket->SetReusable(); } + // If no local address was passed and one has been set, use the one that was Set + if (!local && m_localAddress.GetAddress()) + { + local = &m_localAddress; + } + // Bind to the local IP address and port, when provided if (local) {