Mercurial > trustbridge
view ui/sslconnection_curl.h @ 1373:00fcb9c4d16b
(issue179) Handle SW verify failures and try to redownload the update
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 24 Nov 2014 16:46:08 +0100 |
parents | 2a1aa9df8f11 |
children |
line wrap: on
line source
#ifndef UI_SSLCONNECTION_CURL_H #define UI_SSLCONNECTION_CURL_H /* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik * Software engineering by Intevation GmbH * * This file is Free Software under the GNU GPL (v>=2) * and comes with ABSOLUTELY NO WARRANTY! * See LICENSE.txt for details. */ /** * @file sslconnection_curl.h * @brief SSLConnection utilizing libcurl for http. */ #include "sslconnection.h" #include <curl/curl.h> #include <QDateTime> #include <QTemporaryFile> class QSaveFile; /** @brief SSLConnection implementation using LibCURL * * This class uses a modified version of the curl library to * speak the HTTP with the downloader server. Provides * Proxy support. */ class SSLConnectionCurl : public SSLConnection { public: SSLConnectionCurl(const QString& url, const QByteArray& certificate = QByteArray()); ~SSLConnectionCurl(); int connect(); QDateTime getLastModifiedHeader(const QString &resource); bool downloadFile(const QString &resource, const QString &filename, size_t maxSize); void setProxy(const QUrl &proxyUrl); void setCiphersuites(int ciphers[]); private: CURL *mCurl; QTemporaryFile mCertFile; char mErrBuf[CURL_ERROR_SIZE + 1]; }; /** @brief Internal write function for curl */ size_t write_data(void *ptr, size_t size, size_t nmemb, QSaveFile *fp); #endif // UI_SSLCONNECTION_CURL_H