X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/02761f6cd478e3c2c97cf6f93442747f7b029833..19c7ac3d3bf1ac2113505a805a79c40ce3db1f5b:/src/common/protocol.cpp diff --git a/src/common/protocol.cpp b/src/common/protocol.cpp index 7f1ba9d358..4a06cf857b 100644 --- a/src/common/protocol.cpp +++ b/src/common/protocol.cpp @@ -28,15 +28,9 @@ #include -///////////////////////////////////////////////////////////////// +// ---------------------------------------------------------------------------- // wxProtoInfo -///////////////////////////////////////////////////////////////// - -/* - * -------------------------------------------------------------- - * --------- wxProtoInfo CONSTRUCTOR ---------------------------- - * -------------------------------------------------------------- - */ +// ---------------------------------------------------------------------------- wxProtoInfo::wxProtoInfo(const wxChar *name, const wxChar *serv, const bool need_host1, wxClassInfo *info) @@ -53,9 +47,10 @@ wxProtoInfo::wxProtoInfo(const wxChar *name, const wxChar *serv, #endif } -///////////////////////////////////////////////////////////////// -// wxProtocol /////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////// + +// ---------------------------------------------------------------------------- +// wxProtocol +// ---------------------------------------------------------------------------- #if wxUSE_SOCKETS IMPLEMENT_ABSTRACT_CLASS(wxProtocol, wxSocketClient) @@ -68,6 +63,8 @@ wxProtocol::wxProtocol() : wxSocketClient() #endif { + m_lastError = wxPROTO_NOERR; + SetDefaultTimeout(60); // default timeout is 60 seconds } #if wxUSE_SOCKETS @@ -90,6 +87,15 @@ bool wxProtocol::Reconnect() return true; } +void wxProtocol::SetDefaultTimeout(wxUint32 Value) +{ + m_uiDefaultTimeout = Value; +#if wxUSE_SOCKETS + wxSocketBase::SetTimeout(Value); // sets it for this socket +#endif +} + + // ---------------------------------------------------------------------------- // Read a line from socket // ---------------------------------------------------------------------------- @@ -171,45 +177,6 @@ wxProtocolError wxProtocol::ReadLine(wxString& result) return ReadLine(this, result); } -// old function which only chops '\n' and not '\r\n' -wxProtocolError GetLine(wxSocketBase *sock, wxString& result) -{ -#define PROTO_BSIZE 2048 - size_t avail, size; - char tmp_buf[PROTO_BSIZE], tmp_str[PROTO_BSIZE]; - char *ret; - bool found; - - avail = sock->Read(tmp_buf, PROTO_BSIZE).LastCount(); - if (sock->Error() || avail == 0) - return wxPROTO_NETERR; - - memcpy(tmp_str, tmp_buf, avail); - - // Not implemented on all systems - // ret = (char *)memccpy(tmp_str, tmp_buf, '\n', avail); - found = false; - for (ret=tmp_str;ret < (tmp_str+avail); ret++) - if (*ret == '\n') - { - found = true; - break; - } - - if (!found) - return wxPROTO_PROTERR; - - *ret = 0; - - result = wxString::FromAscii( tmp_str ); - result = result.Left(result.length()-1); - - size = ret-tmp_str+1; - sock->Unread(&tmp_buf[size], avail-size); - - return wxPROTO_NOERR; -#undef PROTO_BSIZE -} #endif // wxUSE_SOCKETS #endif // wxUSE_PROTOCOL