void
FingerprintCollector::onFingerprintSent( Request* req )
{
    SubmitFullFingerprintRequest* submitreq = dynamic_cast<SubmitFullFingerprintRequest*>( req );
    Q_ASSERT(submitreq);

    QMutexLocker emitLocker( &m_networkErrorEmitMutex );
    if ( req && req->failed() )
    {
        qDebug() << "Network error: " << submitreq->errorMessage();

        if ( req->aborted() )
            emit networkError( FingerprintCollector::RequestAborted, QString() );

        else if ( req->responseHeaderCode() == 400 )
        {
            emit cantFingerprintTrack( submitreq->track(), tr( "Getting bad request with this track, skipping." ) );
            emit networkError( FingerprintCollector::BadRequest, submitreq->errorMessage() );
        }
        else
            emit networkError( FingerprintCollector::OtherError, submitreq->errorMessage() );

        // Removed this because it caused several result signals to be emitted which led to
        // deadlocks when the FingerprinterApplication tried to grab a mutex.
        //if (!m_stop)
        //{
        //    qDebug() << "Resending fingerprint";
        //    SubmitFingerprintRequest* newsubmitreq = new SubmitFingerprintRequest( submitreq->track(), submitreq->data());
        //    newsubmitreq->setSha256( submitreq->sha256() );
        //    newsubmitreq->setUsername( username() );
        //    newsubmitreq->setPasswordMd5( passwordMd5() );
        //    newsubmitreq->setPasswordMd5Lower( passwordMd5Lower() );
        //    newsubmitreq->setFpVersion( FINGERPRINT_LIB_VERSION );
        //    connect ( newsubmitreq, SIGNAL( result( Request* ) ), this, SLOT (onFingerprintSent( Request* ) ) );
        //    newsubmitreq->start();
        //}
        return;
    }
    emitLocker.unlock();

    emit trackFingerprinted( submitreq->track() );
    //qDebug() << "Fingerprint has been sent, writing to DB";

    tryStartThreads();

    QMutexLocker locker_pr ( &m_ongoingRequestsMutex );

    m_ongoingRequests.removeAt( m_ongoingRequests.indexOf( submitreq->track().path() ) );
}
Exemple #2
0
void Http::post(QString url, QString user, QString password, QString data)
{
    QSslConfiguration config(QSslConfiguration::defaultConfiguration());

    QNetworkRequest request;


    request.setSslConfiguration(config);

    request.setRawHeader("Authorization", "Basic " +
                         QByteArray(QString("%1:%2").arg(user).arg(password).toAscii().toBase64())
                     );
    request.setRawHeader("Accept", "application/xml");
    request.setRawHeader("Content-Type", "application/xml");

    request.setUrl(QUrl(url));

    connect(netManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(finished(QNetworkReply*)));

    reply = netManager->post(request, data.toUtf8());

    connect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SIGNAL(progress(qint64,qint64)));
    connect(reply, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(sslError(QList<QSslError>)));
    connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(networkError(QNetworkReply::NetworkError)));
}
void MusicBrainzClient::requestFinished() {
    QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
    if (!reply)
        return;

    reply->deleteLater();
    if (!m_requests.contains(reply))
        return;

    int id = m_requests.take(reply);
    ResultList ret;

    if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
        emit(networkError(
             reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(),
             "Musicbrainz"));
        return;
    }

    QXmlStreamReader reader(reply);
    while (!reader.atEnd()) {
        if (reader.readNext() == QXmlStreamReader::StartElement 
            && reader.name() == "recording") {

            ResultList tracks = parseTrack(reader);
            foreach (const Result& track, tracks) {
                if (!track.m_title.isEmpty()) {
                    ret << track;
                }
            }
        }
    }
void
StationsPluginSimple::request(const QUrl & url, int id, const QByteArray & data)
{
  if (url.isEmpty())
    return ;

  qDebug() << "Loading url" << url.toString()
           << "( online:" << Tools::isOnline() << ")";

  QNetworkReply *rep;
  QNetworkRequest req(url);

  initNetwork();

  Tools::fixupRequest(&req);

  if (data.isEmpty())
    rep = nm->get(req);
  else {
    req.setHeader(QNetworkRequest::ContentTypeHeader,
		  "application/x-www-form-urlencoded");
    rep = nm->post(req, data);
  }

  connect(rep, SIGNAL(error(QNetworkReply::NetworkError)),
          this, SLOT(networkError(QNetworkReply::NetworkError)));

  if (count == 0) {
    emit started();
    step = 0;
  }

  replies[rep] = id;
  count++;
}
Exemple #5
0
void XMLHttpRequest::loadRequestSynchronously(ResourceRequest& request, ExceptionCode& ec)
{
    ASSERT(!m_async);
    Vector<char> data;
    ResourceError error;
    ResourceResponse response;

    unsigned long identifier = ThreadableLoader::loadResourceSynchronously(scriptExecutionContext(), request, error, response, data);
    m_loader = 0;

    // No exception for file:/// resources, see <rdar://problem/4962298>.
    // Also, if we have an HTTP response, then it wasn't a network error in fact.
    if (error.isNull() || request.url().isLocalFile() || response.httpStatusCode() > 0) {
        processSyncLoadResults(identifier, data, response, ec);
        return;
    }

    if (error.isCancellation()) {
        abortError();
        ec = XMLHttpRequestException::ABORT_ERR;
        return;
    }

    networkError();
    ec = XMLHttpRequestException::NETWORK_ERR;
}
	PendingDisco::PendingDisco (Util::QueueManager *queue, const QString& artist,
			const QString& release, QNetworkAccessManager *nam, QObject *parent)
	: QObject (parent)
	, ReleaseName_ (release.toLower ())
	, Queue_ (queue)
	, NAM_ (nam)
	, PendingReleases_ (0)
	{
		Queue_->Schedule ([this, artist, nam] () -> void
			{
				auto idLookup = new ArtistLookup (artist, nam, this);
				connect (idLookup,
						SIGNAL(gotID (QString)),
						this,
						SLOT (handleGotID (QString)));
				connect (idLookup,
						SIGNAL (replyError ()),
						this,
						SLOT (handleIDError ()));
				connect (idLookup,
						SIGNAL (networkError ()),
						this,
						SLOT (handleIDError ()));
			}, this);
	}
void XMLHttpRequest::makeSimpleCrossOriginAccessRequest(ExceptionCode& ec)
{
    ASSERT(isSimpleCrossOriginAccessRequest(m_method, m_requestHeaders));

    // Cross-origin requests are only defined for HTTP. We would catch this when checking response headers later, but there is no reason to send a request that's guaranteed to be denied.
    if (!m_url.protocolInHTTPFamily()) {
        ec = XMLHttpRequestException::NETWORK_ERR;
        networkError();
        return;
    }

    KURL url = m_url;
    url.setUser(String());
    url.setPass(String());

    ResourceRequest request(url);
    request.setHTTPMethod(m_method);
    request.setAllowHTTPCookies(m_includeCredentials);
    request.setHTTPOrigin(scriptExecutionContext()->securityOrigin()->toString());

    if (m_requestHeaders.size() > 0)
        request.addHTTPHeaderFields(m_requestHeaders);

    if (m_requestEntityBody) {
        ASSERT(m_method != "GET");
        ASSERT(m_method != "HEAD");
        request.setHTTPBody(m_requestEntityBody.release());
    }

    if (m_async)
        loadRequestAsynchronously(request);
    else
        loadRequestSynchronously(request, ec);
}
void SeafileApiClient::httpRequestFinished()
{
    int code = reply_->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
    if (code == 0 && reply_->error() != QNetworkReply::NoError) {
        if (!shouldIgnoreRequestError(reply_)) {
            qDebug("[api] network error: %s\n", reply_->errorString().toUtf8().data());
        }
        emit networkError(reply_->error(), reply_->errorString());
        return;
    }

    if (handleHttpRedirect()) {
        return;
    }

    if ((code / 100) == 4 || (code / 100) == 5) {
        if (!shouldIgnoreRequestError(reply_)) {
            qDebug("request failed for %s: status code %d\n",
                   reply_->url().toString().toUtf8().data(), code);
        }
        emit requestFailed(code);
        return;
    }

    emit requestSuccess(*reply_);
}
void XMLHttpRequest::loadRequestSynchronously(ResourceRequest& request, ExceptionCode& ec)
{
    ASSERT(!m_async);
    Vector<char> data;
    ResourceError error;
    ResourceResponse response;

    {
        // avoid deadlock in case the loader wants to use JS on a background thread
        KJS::JSLock::DropAllLocks dropLocks;
        if (m_doc->frame())
            m_identifier = m_doc->frame()->loader()->loadResourceSynchronously(request, error, response, data);
    }

    m_loader = 0;

    // No exception for file:/// resources, see <rdar://problem/4962298>.
    // Also, if we have an HTTP response, then it wasn't a network error in fact.
    if (error.isNull() || request.url().isLocalFile() || response.httpStatusCode() > 0) {
        processSyncLoadResults(data, response, ec);
        return;
    }

    if (error.isCancellation()) {
        abortError();
        ec = XMLHttpRequestException::ABORT_ERR;
        return;
    }

    networkError();
    ec = XMLHttpRequestException::NETWORK_ERR;
}
Exemple #10
0
video::video()
{
    handler = new http_handler;
    connect(handler, SIGNAL(allDownloadsFinished()), this, SLOT(handleDownloads()));
    connect(handler, SIGNAL(error(QString)), this, SLOT(networkError(QString)));
    _treeItem = NULL;
}
Exemple #11
0
dialogOauthSetup::dialogOauthSetup(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::dialogOauthSetup)
{
    ui->setupUi(this);





    profileimageUrl = "";

    if (genericHelper::getOAuthAccessToken().length() > 3) {
        tw = new TwitchApi(this, genericHelper::getOAuthAccessToken());
    } else {
        tw = new TwitchApi(this, "");
    }


    // init the image loader
    imgl = new imageLoader(this);





    QObject::connect(tw, SIGNAL(twitchReady(const QJsonDocument)), this, SLOT(on_AuthSuccess(const QJsonDocument)));
    QObject::connect(tw, SIGNAL(networkError(QString)), this, SLOT(errorPopup(QString)));
    QObject::connect(imgl, SIGNAL(downloaded()), this, SLOT(loadProfileImage()));



}
Exemple #12
0
void WARequest::sendRequest(QString url)
{
    qDebug()<< "SENDING";

    QNetworkRequest request;
    request.setUrl(QUrl(url+"?"+encodeUrl(params)));

    request.setRawHeader("User-Agent", userAgent.toAscii());
    //request.setRawHeader("Content-Type","application/x-www-form-urlencoded");
    //request.setRawHeader("Accept","text/xml");

    //QNetworkReply *reply = manager->post(request,encodeUrl(params));
    QNetworkReply *reply = manager->get(request);
    reply->ignoreSslErrors();

    //connect(reply, SIGNAL(readyRead()), this, SLOT(readyRead()));
   connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
            this, SLOT(networkError(QNetworkReply::NetworkError)));
    connect(reply, SIGNAL(sslErrors(QList<QSslError>)),
            this, SLOT(sslError(QList<QSslError>)));



   // qDebug()<<encodeUrl(params);

   // manager->get(request);

    //manager->post(request,encodeUrl(params));
}
void PreFlightWeatherPage::downloadWeatherData( QList<QString>& stations )
{
  if( stations.size() == 0 )
    {
      return;
    }

  if( m_updateIsRunning == true )
    {
      // Do not allow multiple calls, if download is already running.
      return;
    }

  // set update marker
  m_updateIsRunning = true;

  // Disable update buttons.
  switchUpdateButtons( false );

  if( m_downloadManger == 0 )
    {
      m_downloadManger = new DownloadManager(this);

      connect( m_downloadManger, SIGNAL(finished( int, int )),
               this, SLOT(slotDownloadsFinished( int, int )) );

      connect( m_downloadManger, SIGNAL(networkError()),
               this, SLOT(slotNetworkError()) );

      connect( m_downloadManger, SIGNAL(fileDownloaded(QString&)),
               this, SLOT(slotNewWeaterReport(QString&)) );

      // connect( m_downloadManger, SIGNAL(status( const QString& )),
      //         _globalMapView, SLOT(slot_info( const QString& )) );
    }
Exemple #14
0
void MainWindow::startConnection()
{
    Client *client = new Client(this);

    connect(client, SIGNAL(version_checked(QString, QString)), SLOT(checkVersion(QString, QString)));
    connect(client, SIGNAL(error_message(QString)), SLOT(networkError(QString)));
}
Exemple #15
0
void MainWindow::startConnection(){
    Client *client = new Client(this);

    connect(client, SIGNAL(error_message(QString)), SLOT(networkError(QString)));
    connect(client, SIGNAL(server_connected()), SLOT(enterRoom()));

    //client->signup();
}
bool DownloadManager::checkError(QNetworkReply *finished)
{
    if (finished->error() != QNetworkReply::NoError)
    {
        emit networkError(finished->error());
        return true;
    }
    return false;
}
Exemple #17
0
void Download::download( QNetworkRequest const &request)
{
    m_networkReply = m_networkManager->get( request );

    QObject::connect( m_networkReply, SIGNAL( downloadProgress( qint64,qint64 ) ),
                      this, SLOT( downloadProgress( qint64,qint64 )) );
    QObject::connect( m_networkReply, SIGNAL( finished() ), this, SLOT( finished() ) );
    QObject::connect( m_networkReply, SIGNAL( error( QNetworkReply::NetworkError ) ),
                      this, SLOT( networkError( QNetworkReply::NetworkError ) ) );
}
Exemple #18
0
video::video()
{
    handler = new http_handler;
    connect(handler, SIGNAL(allDownloadsFinished()), this, SLOT(handleDownloads()));
    connect(handler, SIGNAL(error(QString)), this, SLOT(networkError(QString)));
    connect(this, SIGNAL(downloadFinished()), this, SLOT(startConvert()));
    _treeItem = NULL;
    _downloadPaused = false;
    _isRestarted = false;
}
Exemple #19
0
void NetworkExchange::OkorErrror(QNetworkReply *reply)
{
    if (reply->error()==QNetworkReply::NoError)
    {
        emit networkOk();
    }
    else
    {
        emit networkError(reply->errorString());
    }
}
Exemple #20
0
/**
 * @brief Get this response's error string.
 *
 * This base implementation returns either the internal network reply object's
 * error string (if the reply object has an error), or the internal XML parse
 * error (if one was set, eg via set setXmlError), otherwise a null QString.
 *
 * Derived classes may override this function to support additional error types.
 * Typically such derived implementations would check this base implementation's
 * result first, or fallback to this base implementation.  For example:
 *
 * @code
 * if (weHaveOurOwnCustomError()) {
 *     return customErrorString();
 * } else {
 *     return AwsAbstractResponse::errorString();
 * }
 * @endcode
 *
 * @return  An error string, or a null QString if this response has no errors.
 *
 * @see  hasError
 * @see  networkError
 * @see  xmlParseError
 */
QString AwsAbstractResponse::errorString() const
{
    Q_D(const AwsAbstractResponse);
    if (networkError() != QNetworkReply::NoError) {
        return d->reply->errorString();
    } else if (xmlParseError() != QXmlStreamReader::NoError) {
        return xmlParseErrorString();
    } else {
        return QString();
    }
}
	void FotoBilderAccount::handleNetworkError (QNetworkReply::NetworkError err)
	{
		auto reply = qobject_cast<QNetworkReply*> (sender ());
		if (!reply)
			return;
		reply->deleteLater ();
		qWarning () << Q_FUNC_INFO
				<< err
				<< reply->errorString ();
		emit networkError (err, reply->errorString ());
		CallNextFunctionFromQueue ();
	}
void NetworkReader::readData()
{
    mTimer.stop();
    if(mReply->error() == QNetworkReply::NoError){
        parseData(mReply->readAll());
    }
    else{
        qDebug() << "Network error: " << mReply->error();
        networkError();
    }
    deleteLater();//suicide
}
void ListenRISRequests::listen()
{
    m_tcpRISServer = new QTcpServer();

    if (!m_tcpRISServer->listen(QHostAddress::Any, Settings().getValue(InputOutputSettings::RISRequestsPort).toUInt()))
    {
        networkError(m_tcpRISServer);
        return;
    }

    connect(m_tcpRISServer, SIGNAL(newConnection()), SLOT(newRISRequest()));
}
void AbstractNetworkJob::slotFinished()
{
    _timer.stop();

    if( _reply->error() == QNetworkReply::SslHandshakeFailedError ) {
        qDebug() << "SslHandshakeFailedError: " << reply()->errorString() << " : can be caused by a webserver wanting SSL client certificates";
    }

    if( _reply->error() != QNetworkReply::NoError ) {
        qDebug() << Q_FUNC_INFO << _reply->error() << _reply->errorString()
                 << _reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
        if (_reply->error() == QNetworkReply::ProxyAuthenticationRequiredError) {
            qDebug() << Q_FUNC_INFO << _reply->rawHeader("Proxy-Authenticate");
        }
        emit networkError(_reply);
    }

    // get the Date timestamp from reply
    _responseTimestamp = _reply->rawHeader("Date");
    _duration = _durationTimer.elapsed();

    if (_followRedirects) {
        // ### the qWarnings here should be exported via displayErrors() so they
        // ### can be presented to the user if the job executor has a GUI
        QUrl requestedUrl = reply()->request().url();
        QUrl redirectUrl = reply()->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl();
        if (!redirectUrl.isEmpty()) {
            _redirectCount++;
            if (requestedUrl.scheme() == QLatin1String("https") &&
                    redirectUrl.scheme() == QLatin1String("http")) {
                qWarning() << this << "HTTPS->HTTP downgrade detected!";
            } else if (requestedUrl == redirectUrl || _redirectCount >= maxRedirects()) {
                qWarning() << this << "Redirect loop detected!";
            } else {
                resetTimeout();
                setReply(getRequest(redirectUrl));
                setupConnections(reply());
                return;
            }
        }
    }

    AbstractCredentials *creds = _account->credentials();
    if (!creds->stillValid(_reply) && ! _ignoreCredentialFailure) {
        _account->handleInvalidCredentials();
    }

    bool discard = finished();
    if (discard) {
        deleteLater();
    }
}
void UpdateApplication::connectSignals(QNetworkReply *reply)
// ----------------------------------------------------------------------------
//    Connect signals of reply object to 'this'
// ----------------------------------------------------------------------------
{
    connect(reply, SIGNAL(metaDataChanged()), this, SLOT(processReply()));
    connect(reply, SIGNAL(finished()), this, SLOT(downloadFinished()));
    connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
            this, SLOT(networkError(QNetworkReply::NetworkError)));
    connect(reply, SIGNAL(downloadProgress(qint64,qint64)),
            this, SLOT(downloadProgress(qint64,qint64)));

}
QT_BEGIN_NAMESPACE

QGeoRouteReplyNokia::QGeoRouteReplyNokia(const QGeoRouteRequest &request,
                                         const QList<QNetworkReply *> &replies,
                                         QObject *parent)
:   QGeoRouteReply(request, parent), m_replies(replies), m_parsers(0)
{
    qRegisterMetaType<QList<QGeoRoute> >();

    foreach (QNetworkReply *reply, m_replies) {
        connect(reply, SIGNAL(finished()), this, SLOT(networkFinished()));
        connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
                this, SLOT(networkError(QNetworkReply::NetworkError)));
    }
Exemple #27
0
void Folder::slotPollTimerTimeout()
{
    qDebug() << "* Polling" << alias() << "for changes. (time since next sync:" << (_timeSinceLastSync.elapsed() / 1000) << "s)";

    if (quint64(_timeSinceLastSync.elapsed()) > MirallConfigFile().forceSyncInterval()) {
        qDebug() << "* Force Sync now";
        evaluateSync(QStringList());
    } else {
        RequestEtagJob* job = new RequestEtagJob(secondPath(), this);
        // check if the etag is different
        QObject::connect(job, SIGNAL(etagRetreived(QString)), this, SLOT(etagRetreived(QString)));
        QObject::connect(job, SIGNAL(networkError()), this, SLOT(slotNetworkUnavailable()));
    }
}
Exemple #28
0
void Download::pause()
{
    if( !m_networkReply ) return;

    m_file->write( m_networkReply->readAll() );
    QObject::disconnect( m_networkReply, SIGNAL(downloadProgress(qint64,qint64)),
                         this, SLOT(downloadProgress(qint64,qint64)) );
    QObject::disconnect( m_networkReply, SIGNAL(finished()), this, SLOT(finished()) );
    QObject::disconnect( m_networkReply, SIGNAL(error(QNetworkReply::NetworkError)),
                         this, SLOT(networkError(QNetworkReply::NetworkError)) );

    m_networkReply->abort();
    m_networkReply = nullptr;
}
QT_BEGIN_NAMESPACE

QGeoRouteReplyNokia::QGeoRouteReplyNokia(const QGeoRouteRequest &request, QNetworkReply *reply, QObject *parent)
        : QGeoRouteReply(request, parent),
        m_reply(reply)
{
    connect(m_reply,
            SIGNAL(finished()),
            this,
            SLOT(networkFinished()));

    connect(m_reply,
            SIGNAL(error(QNetworkReply::NetworkError)),
            this,
            SLOT(networkError(QNetworkReply::NetworkError)));
}
QT_BEGIN_NAMESPACE

QGeoCodeReplyNokia::QGeoCodeReplyNokia(QNetworkReply *reply, int limit, int offset,
                                       const QGeoShape &viewport, QObject *parent)
:   QGeoCodeReply(parent), m_reply(reply), m_parsing(false)
{
    qRegisterMetaType<QList<QGeoLocation> >();

    connect(m_reply, SIGNAL(finished()), this, SLOT(networkFinished()));
    connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)),
            this, SLOT(networkError(QNetworkReply::NetworkError)));

    setLimit(limit);
    setOffset(offset);
    setViewport(viewport);
}