From e7666985a46e40ff6569c4bc2f0e96987c5ab622 Mon Sep 17 00:00:00 2001 From: kh1 Date: Fri, 25 Nov 2011 14:30:24 +0100 Subject: Add authentication support to the downloaders. Change-Id: If2317d5aded40819f62fa942b3a8af53c954689c Reviewed-by: Tim Jenssen --- installerbuilder/libinstaller/downloadarchivesjob.cpp | 5 +++++ installerbuilder/libinstaller/getrepositorymetainfojob.cpp | 12 ++++++++++++ installerbuilder/libinstaller/packagemanagercore.cpp | 8 ++++++-- 3 files changed, 23 insertions(+), 2 deletions(-) (limited to 'installerbuilder') diff --git a/installerbuilder/libinstaller/downloadarchivesjob.cpp b/installerbuilder/libinstaller/downloadarchivesjob.cpp index cbd782f33..dbfb471f6 100644 --- a/installerbuilder/libinstaller/downloadarchivesjob.cpp +++ b/installerbuilder/libinstaller/downloadarchivesjob.cpp @@ -316,6 +316,11 @@ KDUpdater::FileDownloader *DownloadArchivesJob::setupDownloader(const QString &p downloader->setUrl(url); downloader->setAutoRemoveDownloadedFile(false); + QAuthenticator auth; + auth.setUser(component->value(QLatin1String("username"))); + auth.setPassword(component->value(QLatin1String("password"))); + downloader->setAuthenticator(auth); + connect(downloader, SIGNAL(downloadCanceled()), this, SLOT(downloadCanceled())); connect(downloader, SIGNAL(downloadAborted(QString)), this, SLOT(downloadFailed(QString)), Qt::QueuedConnection); diff --git a/installerbuilder/libinstaller/getrepositorymetainfojob.cpp b/installerbuilder/libinstaller/getrepositorymetainfojob.cpp index ba7e1574a..fc6cce5b5 100644 --- a/installerbuilder/libinstaller/getrepositorymetainfojob.cpp +++ b/installerbuilder/libinstaller/getrepositorymetainfojob.cpp @@ -49,6 +49,8 @@ #include +#include + #include #include @@ -212,6 +214,11 @@ void GetRepositoryMetaInfoJob::startUpdatesXmlDownload() m_downloader->setUrl(QUrl(url.toString() + QString(QLatin1String("/Updates.xml?")).append( QString::number(qrand() * qrand())))); + QAuthenticator auth; + auth.setUser(m_repository.username()); + auth.setPassword(m_repository.password()); + m_downloader->setAuthenticator(auth); + m_downloader->setAutoRemoveDownloadedFile(false); connect(m_downloader, SIGNAL(downloadCompleted()), this, SLOT(updatesXmlDownloadFinished())); connect(m_downloader, SIGNAL(downloadCanceled()), this, SLOT(updatesXmlDownloadCanceled())); @@ -380,6 +387,11 @@ void GetRepositoryMetaInfoJob::fetchNextMetaInfo() m_downloader->setUrl(url); m_downloader->setAutoRemoveDownloadedFile(true); + QAuthenticator auth; + auth.setUser(m_repository.username()); + auth.setPassword(m_repository.password()); + m_downloader->setAuthenticator(auth); + connect(m_downloader, SIGNAL(downloadCanceled()), this, SLOT(metaDownloadCanceled())); connect(m_downloader, SIGNAL(downloadCompleted()), this, SLOT(metaDownloadFinished())); connect(m_downloader, SIGNAL(downloadAborted(QString)), this, SLOT(metaDownloadError(QString)), diff --git a/installerbuilder/libinstaller/packagemanagercore.cpp b/installerbuilder/libinstaller/packagemanagercore.cpp index 88c5becab..4e836d468 100644 --- a/installerbuilder/libinstaller/packagemanagercore.cpp +++ b/installerbuilder/libinstaller/packagemanagercore.cpp @@ -1464,8 +1464,12 @@ bool PackageManagerCore::updateComponentData(struct Data &data, Component *compo lastLocalPath = localPath; } - if (d->m_repoMetaInfoJob) - component->setRepositoryUrl(d->m_repoMetaInfoJob->repositoryForTemporaryDirectory(localPath).url()); + if (d->m_repoMetaInfoJob) { + const Repository &repo = d->m_repoMetaInfoJob->repositoryForTemporaryDirectory(localPath); + component->setRepositoryUrl(repo.url()); + component->setValue(QLatin1String("username"), repo.username()); + component->setValue(QLatin1String("password"), repo.password()); + } // add downloadable archive from xml const QStringList downloadableArchives = data.package->data(scDownloadableArchives).toString() -- cgit v1.2.3