projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Trying to fix dialog close/focus_widget problem.
[wxWidgets.git]
/
src
/
common
/
http.cpp
diff --git
a/src/common/http.cpp
b/src/common/http.cpp
index 606bc340ecd08e7a588ae59caa98be1b2a18f5f8..4bcfd768704fc7616f11407c44eec2e315960f6c 100644
(file)
--- a/
src/common/http.cpp
+++ b/
src/common/http.cpp
@@
-20,7
+20,7
@@
#pragma hdrstop
#endif
#pragma hdrstop
#endif
-#if wxUSE_SOCKETS
+#if wxUSE_SOCKETS
&& wxUSE_STREAMS
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
@@
-116,7
+116,7
@@
void wxHTTP::SendHeaders()
wxString *str = (wxString *)head->Data();
wxString buf;
wxString *str = (wxString *)head->Data();
wxString buf;
- buf.Printf(wxT("%s: %s\
n\r
"), head->GetKeyString(), str->GetData());
+ buf.Printf(wxT("%s: %s\
r\n
"), head->GetKeyString(), str->GetData());
const wxWX2MBbuf cbuf = buf.mb_str();
Write(cbuf, strlen(cbuf));
const wxWX2MBbuf cbuf = buf.mb_str();
Write(cbuf, strlen(cbuf));
@@
-147,8
+147,8
@@
bool wxHTTP::ParseHeaders()
if (line.Length() == 0)
break;
if (line.Length() == 0)
break;
-
wxString left_str = line.BeforeFirst(':');
-
wxString *str = new wxString(line.AfterFirst(':').Strip(wxString::both));
+ wxString left_str = line.BeforeFirst(':');
+ wxString *str = new wxString(line.AfterFirst(':').Strip(wxString::both));
left_str.MakeUpper();
m_headers.Append(left_str, (wxObject *) str);
left_str.MakeUpper();
m_headers.Append(left_str, (wxObject *) str);
@@
-196,12
+196,6
@@
bool wxHTTP::Connect(wxSockAddress& addr, bool WXUNUSED(wait))
bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req)
{
wxChar *tmp_buf;
bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req)
{
wxChar *tmp_buf;
- 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:
switch (req) {
case wxHTTP_GET:
@@
-211,16
+205,22
@@
bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req)
return FALSE;
}
return FALSE;
}
+ // If there is no User-Agent defined, define it.
+ if (GetHeader(wxT("User-Agent")).IsNull())
+ SetHeader(wxT("User-Agent"), wxT("wxWindows 2.x"));
+
SaveState();
SetFlags(wxSOCKET_NONE);
Notify(FALSE);
SaveState();
SetFlags(wxSOCKET_NONE);
Notify(FALSE);
- wxSprintf(buf, wxT("%s %s HTTP/1.0\n\r"), tmp_buf, tmp_str.GetData());
+ wxString buf;
+ buf.Printf(wxT("%s %s HTTP/1.0\r\n"), tmp_buf, path.c_str());
const wxWX2MBbuf pathbuf = wxConvLibc.cWX2MB(buf);
Write(pathbuf, strlen(wxMBSTRINGCAST pathbuf));
SendHeaders();
const wxWX2MBbuf pathbuf = wxConvLibc.cWX2MB(buf);
Write(pathbuf, strlen(wxMBSTRINGCAST pathbuf));
SendHeaders();
- Write("\
n\r
", 2);
+ Write("\
r\n
", 2);
+ wxString tmp_str;
m_perr = GetLine(this, tmp_str);
if (m_perr != wxPROTO_NOERR) {
RestoreState();
m_perr = GetLine(this, tmp_str);
if (m_perr != wxPROTO_NOERR) {
RestoreState();
@@
-243,7
+243,7
@@
bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req)
token.NextToken();
tmp_str2 = token.NextToken();
token.NextToken();
tmp_str2 = token.NextToken();
- switch (tmp_str2[
(unsigned int) 0
]) {
+ switch (tmp_str2[
0u
]) {
case wxT('1'):
/* INFORMATION / SUCCESS */
break;
case wxT('1'):
/* INFORMATION / SUCCESS */
break;
@@
-299,7
+299,8
@@
bool wxHTTP::Abort(void)
wxInputStream *wxHTTP::GetInputStream(const wxString& path)
{
wxInputStream *wxHTTP::GetInputStream(const wxString& path)
{
- wxHTTPStream *inp_stream = new wxHTTPStream(this);
+ wxHTTPStream *inp_stream;
+
wxString new_path;
m_perr = wxPROTO_CONNERR;
wxString new_path;
m_perr = wxPROTO_CONNERR;
@@
-307,12
+308,22
@@
wxInputStream *wxHTTP::GetInputStream(const wxString& path)
return NULL;
// We set m_connected back to FALSE so wxSocketBase will know what to do.
return NULL;
// We set m_connected back to FALSE so wxSocketBase will know what to do.
+#ifdef __WXMAC__
+ wxSocketClient::Connect(*m_addr , FALSE );
+ wxSocketClient::WaitOnConnect(10);
+
+ if (!wxSocketClient::IsConnected())
+ return NULL;
+#else
if (!wxProtocol::Connect(*m_addr))
return NULL;
if (!wxProtocol::Connect(*m_addr))
return NULL;
+#endif
if (!BuildRequest(path, wxHTTP_GET))
return NULL;
if (!BuildRequest(path, wxHTTP_GET))
return NULL;
+ inp_stream = new wxHTTPStream(this);
+
if (!GetHeader(wxT("Content-Length")).IsEmpty())
inp_stream->m_httpsize = wxAtoi(WXSTRINGCAST GetHeader(wxT("Content-Length")));
else
if (!GetHeader(wxT("Content-Length")).IsEmpty())
inp_stream->m_httpsize = wxAtoi(WXSTRINGCAST GetHeader(wxT("Content-Length")));
else