- g_proxy.Close();
-
- if (url_proxy.IsNull())
- return;
-
- wxString tmp_str = url_proxy;
- int pos = tmp_str.Find(':');
- wxString hostname = tmp_str(0, pos),
- port = tmp_str(pos, tmp_str.Length()-pos);
- wxIPV4address addr;
-
- addr.Hostname(hostname);
- addr.Service(port);
-
- g_proxy.Connect(addr);
+ 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
+ }