diff ui/sslconnection_curl.h @ 908:d1c951b3012d

Curl based implementation of sslconnection
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 13 Aug 2014 19:35:08 +0200
parents
children eaed02defe6a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/sslconnection_curl.h	Wed Aug 13 19:35:08 2014 +0200
@@ -0,0 +1,50 @@
+#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.
+ */
+
+#include "sslconnection.h"
+#include <curl/curl.h>
+
+#include <QTemporaryFile>
+
+class SSLConnectionCurl : public SSLConnection
+{
+public:
+    SSLConnectionCurl(const QString& url,
+            const QByteArray& certificate = QByteArray());
+
+    ~SSLConnectionCurl();
+
+    /** @brief write */
+    int write(const QByteArray& request);
+
+    /**
+     * @brief read at most len bytes and reset the connection
+     *
+     * @param [in] len Amount of bytes to read.
+     *
+     * @returns a byte array containing the data or
+     * a NULL byte array on error*/
+    QByteArray read(size_t len);
+
+    /** @brief: Establish the connection
+     *
+     * @returns 0 on success otherwise an error or -1 is returned
+     */
+    int connect();
+private:
+    CURL *mCurl;
+    QTemporaryFile mCertFile;
+};
+
+/**
+ * @file sslconnection_curl.h
+ * @brief SSLConnection utilizing libcurl for http.
+ */
+#endif // UI_SSLCONNECTION_CURL_H

http://wald.intevation.org/projects/trustbridge/