- wxString temp_url;
- int pos, pos2;
-
- if ((url.GetChar(0) != '/') || (url.GetChar(1) != '/'))
- return FALSE;
-
- url = url(2, url.Length());
-
- pos = url.Find(wxT('/'));
- if (pos == -1)
- 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 != -1 && 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 -1, this code is right.
- m_hostname = temp_url(pos2+1, temp_url.Length());
-
- m_user = wxT("");
- m_password = wxT("");
-
- if (pos2 == -1)
- return TRUE;
-
- temp_url = temp_url(0, pos2);
- pos2 = temp_url.Find(wxT(':'));
-
- if (pos2 == -1)
- return FALSE;
-
- m_user = temp_url(0, pos2);
- m_password = temp_url(pos2+1, url.Length());
-
- return TRUE;