X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d775fa82354a1f8d5db87ad1d71ab00ef7d9123c..848332140be2d53aea32d0702f4c0e06c149d24b:/src/common/sckipc.cpp?ds=sidebyside diff --git a/src/common/sckipc.cpp b/src/common/sckipc.cpp index 2576b3dc14..9787f76858 100644 --- a/src/common/sckipc.cpp +++ b/src/common/sckipc.cpp @@ -22,10 +22,6 @@ // headers // -------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "sckipc.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -86,10 +82,10 @@ enum // get the address object for the given server name, the caller must delete it static wxSockAddress * -GetAddressFromName(const wxString& serverName, const wxString& host = _T("")) +GetAddressFromName(const wxString& serverName, const wxString& host = wxEmptyString) { // we always use INET sockets under non-Unix systems -#if defined(__UNIX__) && !defined(__WXMAC__) && !defined(__WINE__) +#if defined(__UNIX__) && !defined(__WINDOWS__) && !defined(__WINE__) && (!defined(__WXMAC__) || defined(__DARWIN__)) // under Unix, if the server name looks like a path, create a AF_UNIX // socket instead of AF_INET one if ( serverName.Find(_T('/')) != wxNOT_FOUND ) @@ -119,7 +115,7 @@ GetAddressFromName(const wxString& serverName, const wxString& host = _T("")) class wxTCPEventHandler : public wxEvtHandler { public: - wxTCPEventHandler() : wxEvtHandler() {}; + wxTCPEventHandler() : wxEvtHandler() {} void Client_OnRequest(wxSocketEvent& event); void Server_OnRequest(wxSocketEvent& event); @@ -167,15 +163,15 @@ wxConnectionBase *wxTCPClient::MakeConnection (const wxString& host, const wxString& serverName, const wxString& topic) { + wxSockAddress *addr = GetAddressFromName(serverName, host); + if ( !addr ) + return NULL; + wxSocketClient *client = new wxSocketClient(SCKIPC_FLAGS); wxSocketStream *stream = new wxSocketStream(*client); wxDataInputStream *data_is = new wxDataInputStream(*stream); wxDataOutputStream *data_os = new wxDataOutputStream(*stream); - wxSockAddress *addr = GetAddressFromName(serverName, host); - if ( !addr ) - return NULL; - bool ok = client->Connect(*addr); delete addr; @@ -399,7 +395,7 @@ bool wxTCPConnection::Execute(const wxChar *data, int size, wxIPCFormat format) m_codeco->Write8(format); if (size < 0) - size = wxStrlen(data) + 1; // includes final NUL + size = (wxStrlen(data) + 1) * sizeof(wxChar); // includes final NUL m_codeco->Write32(size); m_sockstrm->Write(data, size); @@ -448,7 +444,7 @@ bool wxTCPConnection::Poke (const wxString& item, wxChar *data, int size, wxIPCF m_codeco->Write8(format); if (size < 0) - size = wxStrlen(data) + 1; // includes final NUL + size = (wxStrlen(data) + 1) * sizeof(wxChar); // includes final NUL m_codeco->Write32(size); m_sockstrm->Write(data, size); @@ -504,7 +500,7 @@ bool wxTCPConnection::Advise (const wxString& item, m_codeco->Write8(format); if (size < 0) - size = wxStrlen(data) + 1; // includes final NUL + size = (wxStrlen(data) + 1) * sizeof(wxChar); // includes final NUL m_codeco->Write32(size); m_sockstrm->Write(data, size); @@ -646,7 +642,7 @@ void wxTCPEventHandler::Client_OnRequest(wxSocketEvent &event) codeco->Write8(IPC_REQUEST_REPLY); if (user_size == -1) - user_size = wxStrlen(user_data) + 1; // includes final NUL + user_size = (wxStrlen(user_data) + 1) * sizeof(wxChar); // includes final NUL codeco->Write32(user_size); sockstrm->Write(user_data, user_size);