Mercurial > trustbridge
view ui/sslconnection_curl.h @ 1001:0b7bb4f68f5a
(issue89) Add Help button
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Tue, 02 Sep 2014 10:43:51 +0200 |
parents | 6a3d284b9c16 |
children | 2a1aa9df8f11 |
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; 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