File indexing completed on 2024-04-28 05:26:03

0001 // SPDX-FileCopyrightText: 2022 Michael Lang <criticaltemp@protonmail.com>
0002 //
0003 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004 
0005 #pragma once
0006 
0007 #include <QObject>
0008 
0009 #include <global.h>
0010 
0011 #include <ares.h>
0012 #include <curl/curl.h>
0013 
0014 class ECurl : public QObject
0015 {
0016     Q_OBJECT
0017 
0018 public:
0019     explicit ECurl();
0020     ~ECurl();
0021 
0022     QByteArray networkRequest(const QString &url, const QByteArray &data = QByteArrayLiteral("")) const;
0023 
0024 private:
0025     static size_t curlWriteFunction(char *chunk, size_t size, size_t len, QByteArray *response);
0026     static void aresResolveCallback(void *arg, int status, int timeouts, struct hostent *hostent);
0027     static void aresResolveWait(ares_channel channel);
0028 };