From baf289d6d1b8d2bc12f60e4a6307ef0ae9f2f950 Mon Sep 17 00:00:00 2001 From: Szymon Tomasz Stefanek Date: Thu, 30 Dec 2010 03:00:17 +0000 Subject: Some fixes for the http request git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5271 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/kvilib/net/KviHttpRequest.cpp | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'src/kvilib/net/KviHttpRequest.cpp') diff --git a/src/kvilib/net/KviHttpRequest.cpp b/src/kvilib/net/KviHttpRequest.cpp index 14febe034..02dabc3f1 100644 --- a/src/kvilib/net/KviHttpRequest.cpp +++ b/src/kvilib/net/KviHttpRequest.cpp @@ -22,10 +22,7 @@ // //============================================================================= -//#include - #include "KviHttpRequest.h" -#include "KviHttpRequestThread.h" #include "KviLocale.h" #include "KviNetUtils.h" #include "KviDnsResolver.h" @@ -40,6 +37,9 @@ #include #include #include +#include + +//#include class KviHttpRequestPrivate { @@ -49,6 +49,7 @@ public: KviDataBuffer * pBuffer; QTimer * pConnectTimeoutTimer; KviFile * pFile; + unsigned short uPort; }; @@ -389,13 +390,17 @@ void KviHttpRequest::slotConnectionTimedOut() emit terminated(false); } -bool KviHttpRequest::doConnect() +void KviHttpRequest::slotSocketHostResolved() { - unsigned short uPort = m_url.port(); - if(uPort == 0) - uPort = m_p->bIsSSL ? 443 : 80; + emit contactingHost(QString::fromAscii("%1:%2").arg(m_url.host()).arg(m_p->uPort)); + emit status(__tr2qs("Contacting host %1 on port %2").arg(m_url.host()).arg(m_p->uPort)); +} - emit contactingHost(QString::fromAscii("%1:%2").arg(m_url.host()).arg(uPort)); +bool KviHttpRequest::doConnect() +{ + m_p->uPort = m_url.port(); + if(m_p->uPort == 0) + m_p->uPort = m_p->bIsSSL ? 443 : 80; if(m_p->pSocket) closeSocket(); @@ -406,15 +411,19 @@ bool KviHttpRequest::doConnect() QObject::connect(m_p->pSocket,SIGNAL(disconnected()),this,SLOT(slotSocketDisconnected())); QObject::connect(m_p->pSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(slotSocketError(QAbstractSocket::SocketError))); QObject::connect(m_p->pSocket,SIGNAL(readyRead()),this,SLOT(slotSocketReadDataReady())); + QObject::connect(m_p->pSocket,SIGNAL(hostFound()),this,SLOT(slotSocketHostResolved())); + + emit resolvingHost(m_url.host()); if(m_p->bIsSSL) { static_cast(m_p->pSocket)->setProtocol(QSsl::AnyProtocol); - static_cast(m_p->pSocket)->connectToHostEncrypted(m_url.host(),uPort); + static_cast(m_p->pSocket)->connectToHostEncrypted(m_url.host(),m_p->uPort); } else { - m_p->pSocket->connectToHost(m_url.host(),uPort); + m_p->pSocket->connectToHost(m_url.host(),m_p->uPort); } + if(m_p->pConnectTimeoutTimer) { delete m_p->pConnectTimeoutTimer; @@ -441,7 +450,6 @@ bool KviHttpRequest::doConnect() ); */ - emit status(__tr2qs("Contacting host %1 on port %2").arg(m_url.host()).arg(uPort)); return true; } @@ -979,7 +987,6 @@ bool KviHttpRequest::startDnsLookup() KviQString::sprintf(tmp,__tr2qs("Looking up host %Q"),&(m_url.host())); emit status(tmp); // FIXME - emit resolvingHost(m_url.host()); return true; } -- cgit v1.3.1-10-gc9f91