X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f61815af20ebb943000d36ea01489f6115e4061c..f76dbc4d52c005b63745cf924efe30eece4c6f79:/src/common/http.cpp diff --git a/src/common/http.cpp b/src/common/http.cpp index fe883d2e22..9f7e3adabc 100644 --- a/src/common/http.cpp +++ b/src/common/http.cpp @@ -34,7 +34,7 @@ #if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxHTTP, wxProtocol) -IMPLEMENT_PROTOCOL(wxHTTP, _T("http"), _T("80"), TRUE) +IMPLEMENT_PROTOCOL(wxHTTP, wxT("http"), wxT("80"), TRUE) #endif #define HTTP_BSIZE 2048 @@ -65,7 +65,7 @@ wxHTTP::~wxHTTP() wxString wxHTTP::GetContentType() { - return GetHeader(_T("Content-Type")); + return GetHeader(wxT("Content-Type")); } void wxHTTP::SetProxyMode(bool on) @@ -113,7 +113,7 @@ void wxHTTP::SendHeaders() wxString *str = (wxString *)head->Data(); wxString buf; - buf.Printf(_T("%s: %s\n\r"), head->GetKeyString(), str->GetData()); + buf.Printf(wxT("%s: %s\n\r"), head->GetKeyString(), str->GetData()); const wxWX2MBbuf cbuf = buf.mb_str(); Write(cbuf, strlen(cbuf)); @@ -171,7 +171,7 @@ bool wxHTTP::Connect(const wxString& host) return FALSE; } - if (!addr->Service(_T("http"))) + if (!addr->Service(wxT("http"))) addr->Service(80); return TRUE; @@ -195,9 +195,13 @@ bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req) wxChar buf[200]; // 200 is arbitrary. wxString tmp_str = path; + // If there is no User-Agent defined, define it. + if (GetHeader(wxT("User-Agent")).IsNull()) + SetHeader(wxT("User-Agent"), wxT("wxWindows 2.x")); + switch (req) { case wxHTTP_GET: - tmp_buf = _T("GET"); + tmp_buf = wxT("GET"); break; default: return FALSE; @@ -207,9 +211,9 @@ bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req) SetFlags(NONE); Notify(FALSE); - wxSprintf(buf, _T("%s %s HTTP/1.0\n\r"), tmp_buf, tmp_str.GetData()); + wxSprintf(buf, wxT("%s %s HTTP/1.0\n\r"), tmp_buf, tmp_str.GetData()); const wxWX2MBbuf pathbuf = wxConvLibc.cWX2MB(buf); - Write(pathbuf, strlen(MBSTRINGCAST pathbuf)); + Write(pathbuf, strlen(wxMBSTRINGCAST pathbuf)); SendHeaders(); Write("\n\r", 2); @@ -219,23 +223,31 @@ bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req) return FALSE; } - if (!tmp_str.Contains(_T("HTTP/"))) { + if (!tmp_str.Contains(wxT("HTTP/"))) { // TODO: support HTTP v0.9 which can have no header. - SetHeader(_T("Content-Length"), _T("-1")); - SetHeader(_T("Content-Type"), _T("none/none")); + // FIXME: tmp_str is not put back in the in-queue of the socket. + SetHeader(wxT("Content-Length"), wxT("-1")); + SetHeader(wxT("Content-Type"), wxT("none/none")); RestoreState(); return TRUE; } - wxStringTokenizer token(tmp_str,_T(' ')); + wxStringTokenizer token(tmp_str,wxT(' ')); wxString tmp_str2; bool ret_value; token.NextToken(); tmp_str2 = token.NextToken(); - switch (wxAtoi(tmp_str2)) { - case 200: + switch (tmp_str2[(unsigned int) 0]) { + case wxT('1'): + /* INFORMATION / SUCCESS */ + break; + case wxT('2'): + /* SUCCESS */ + break; + case wxT('3'): + /* REDIRECTION */ break; default: m_perr = wxPROTO_NOFILE; @@ -277,7 +289,7 @@ size_t wxHTTPStream::OnSysRead(void *buffer, size_t bufsize) bool wxHTTP::Abort(void) { - bool ret, connected; + bool ret; ret = wxSocketClient::Close(); @@ -300,8 +312,8 @@ wxInputStream *wxHTTP::GetInputStream(const wxString& path) if (!BuildRequest(path, wxHTTP_GET)) return NULL; - if (!GetHeader(_T("Content-Length")).IsEmpty()) - inp_stream->m_httpsize = wxAtoi(WXSTRINGCAST GetHeader(_T("Content-Length"))); + if (!GetHeader(wxT("Content-Length")).IsEmpty()) + inp_stream->m_httpsize = wxAtoi(WXSTRINGCAST GetHeader(wxT("Content-Length"))); else inp_stream->m_httpsize = (size_t)-1;