X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f4ada568223b79c8a5769cc351c36a8e2ccd7841..6842d18650b487249b4ae29d0d7e17231b24cde8:/src/common/protocol.cpp diff --git a/src/common/protocol.cpp b/src/common/protocol.cpp index 21df7e8997..64939970e6 100644 --- a/src/common/protocol.cpp +++ b/src/common/protocol.cpp @@ -13,18 +13,18 @@ #pragma implementation "protocol.h" #endif -#ifdef WXPREC -#include -#else -#include +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop #endif #include "wx/protocol/protocol.h" #include "wx/url.h" +#include "wx/module.h" -#ifdef __BORLANDC__ -#pragma hdrstop -#endif +#include ///////////////////////////////////////////////////////////////// // wxProtoInfo @@ -36,7 +36,7 @@ * -------------------------------------------------------------- */ -wxProtoInfo::wxProtoInfo(const char *name, const char *serv, +wxProtoInfo::wxProtoInfo(const wxChar *name, const wxChar *serv, const bool need_host1, wxClassInfo *info) { m_protoname = name; @@ -51,13 +51,20 @@ wxProtoInfo::wxProtoInfo(const char *name, const char *serv, // wxProtocol /////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// +#if wxUSE_SOCKETS IMPLEMENT_ABSTRACT_CLASS(wxProtocol, wxSocketClient) +#else +IMPLEMENT_ABSTRACT_CLASS(wxProtocol, wxObject) +#endif wxProtocol::wxProtocol() +#if wxUSE_SOCKETS : wxSocketClient() +#endif { } +#if wxUSE_SOCKETS bool wxProtocol::Reconnect() { wxIPV4address addr; @@ -103,7 +110,49 @@ wxProtocolError GetLine(wxSocketBase *sock, wxString& result) { result = result.Left(result.Length()-1); size = ret-tmp_str+1; - sock->CreatePushbackBefore(&tmp_buf[size], avail-size); + sock->Unread(&tmp_buf[size], avail-size); return wxPROTO_NOERR; #undef PROTO_BSIZE } +#endif + +// ---------------------------------------------------------------------- +// Module +// ---------------------------------------------------------------------- + +class wxProtocolModule: public wxModule { + DECLARE_DYNAMIC_CLASS(wxProtocolModule) +public: + wxProtocolModule() {} + bool OnInit(); + void OnExit(); +}; + +#if !USE_SHARED_LIBRARY +IMPLEMENT_DYNAMIC_CLASS(wxProtocolModule, wxModule) +#endif + +bool wxProtocolModule::OnInit() +{ +#if wxUSE_SOCKETS + char *env_http_prox; + + wxURL::g_proxy = NULL; + // Initialize the proxy when HTTP_PROXY is defined + env_http_prox = getenv("HTTP_PROXY"); + if (env_http_prox) + wxURL::SetDefaultProxy(env_http_prox); +#endif + + return TRUE; +} + +void wxProtocolModule::OnExit() +{ +#if wxUSE_SOCKETS + if (wxURL::g_proxy) + delete wxURL::g_proxy; + wxURL::g_proxy = NULL; +#endif +} +