- wxString temp_url;
- int pos, pos2;
-
- if ((url.GetChar(0) != wxT('/')) || (url.GetChar(1) != wxT('/')))
- return false;
-
- url = url(2, url.Length());
-
- pos = url.Find(wxT('/'));
- if (pos == wxNOT_FOUND)
- pos = url.Length();
-
- if (pos == 0)
- return false;
-
- temp_url = url(0, pos);
- url = url(url.Find(wxT('/')), url.Length());
-
- // Retrieve service number
- pos2 = temp_url.Find(wxT(':'), true);
- if (pos2 != wxNOT_FOUND && pos2 < pos)
- {
- m_servname = temp_url(pos2+1, pos);
- if (!m_servname.IsNumber())
- return false;
- temp_url = temp_url(0, pos2);
- }
-
- // Retrieve user and password.
- pos2 = temp_url.Find(wxT('@'));
- // Even if pos2 equals wxNOT_FOUND, this code is right.
- m_hostname = temp_url(pos2+1, temp_url.Length());
-
- m_user = wxT("");
- m_password = wxT("");
-
- if (pos2 == wxNOT_FOUND)
- return true;
-
- temp_url = temp_url(0, pos2);
- pos2 = temp_url.Find(wxT(':'));
-
- if (pos2 == wxNOT_FOUND)
- return false;
-
- m_user = temp_url(0, pos2);
- m_password = temp_url(pos2+1, url.Length());
-
- return true;