- wxProtoInfo *info = g_protocols;
-
- while (info) {
- if (m_protoname == info->m_protoname) {
- if (m_servname.IsNull())
- m_servname = info->m_servname;
-
- m_protoinfo = info;
- m_protocol = (wxProtocol *)m_protoinfo->m_cinfo->CreateObject();
- wxSocketHandler::Master().Register(m_protocol);
- return TRUE;
+ if ( !url_proxy )
+ {
+ if ( ms_proxyDefault )
+ {
+ ms_proxyDefault->Close();
+ delete ms_proxyDefault;
+ ms_proxyDefault = NULL;
+ }
+ }
+ else
+ {
+ wxString tmp_str = url_proxy;
+ int pos = tmp_str.Find(wxT(':'));
+ if (pos == wxNOT_FOUND)
+ return;
+
+ wxString hostname = tmp_str(0, pos),
+ port = tmp_str(pos+1, tmp_str.length()-pos);
+ wxIPV4address addr;
+
+ if (!addr.Hostname(hostname))
+ return;
+ if (!addr.Service(port))
+ return;
+
+ if (ms_proxyDefault)
+ // Finally, when all is right, we connect the new proxy.
+ ms_proxyDefault->Close();
+ else
+ ms_proxyDefault = new wxHTTP();
+ ms_proxyDefault->Connect(addr, true); // Watcom needs the 2nd arg for some reason