crawlserv++  [under development]
Application for crawling and analyzing textual content of websites.
Curl.hpp File Reference
#include "Config.hpp"
#include "../Data/Compression/Gzip.hpp"
#include "../Helper/FileSystem.hpp"
#include "../Helper/Utf8.hpp"
#include "../Main/Exception.hpp"
#include "../Struct/NetworkSettings.hpp"
#include "../Wrapper/Curl.hpp"
#include "../Wrapper/CurlList.hpp"
#include "../Helper/Portability/curl.h"
#include <algorithm>
#include <array>
#include <cctype>
#include <chrono>
#include <cstddef>
#include <cstdint>
#include <exception>
#include <functional>
#include <limits>
#include <queue>
#include <string>
#include <string_view>
#include <thread>
#include <vector>
Include dependency graph for Curl.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  crawlservpp::Network::Curl
 Provides an interface to the libcurl library for sending and receiving data over the network. More...
 
class  crawlservpp::Network::Curl::Exception
 Class for libcurl exceptions. More...
 

Namespaces

 crawlservpp::Network
 Namespace for networking classes.
 

Constants

constexpr auto crawlservpp::Network::encodedSpace {"%20"}
 URL encoding of a space. More...
 
constexpr auto crawlservpp::Network::encodedSpaceLength {3}
 Length of a URL encoded space. More...
 
constexpr auto crawlservpp::Network::checkEveryMilliseconds {100}
 The number of milliseconds to sleep before re-checking the status of the application. More...
 
constexpr auto crawlservpp::Network::reservedCharacters {";/?:@=&#"}
 Reserved characters to be ignored when escaping a URL. More...
 
constexpr auto crawlservpp::Network::versionDoH {0x073E00}
 libcurl version needed for DNS-over-HTTPS support, i.e. 7.62.0. More...
 
constexpr auto crawlservpp::Network::versionDnsShuffle {0x073C00}
 libcurl version needed for DNS shuffling, i.e. 7.60.0. More...
 
constexpr auto crawlservpp::Network::versionBrotli {0x073900}
 libcurl version needed for Brotli encoding, i.e. 7.57.0. More...
 
constexpr auto crawlservpp::Network::versionZstd {0x074800}
 libcurl version needed for zstd encoding, i.e. 7.72.0. More...
 
constexpr auto crawlservpp::Network::versionHttp2 {0x072100}
 libcurl version needed for HTTP/2 support, i.e. 7.33.0. More...
 
constexpr auto crawlservpp::Network::versionHttp2Only {0x073100}
 libcurl version needed for HTTP/2 ONLY support, i.e. 7.49.0. More...
 
constexpr auto crawlservpp::Network::versionHttp2Tls {0x072F00}
 libcurl version needed for HTTP/2 OVER TLS ONLY support, i.e. 7.47.0. More...
 
constexpr auto crawlservpp::Network::versionHttp3Only {0x074200}
 libcurl version needed for HTTP/3 ONLY support, i.e. 7.66.0. More...
 
constexpr auto crawlservpp::Network::versionPreProxy {0x073400}
 libcurl version needed for pre-proxy support, i.e. 7.52.0. More...
 
constexpr auto crawlservpp::Network::versionProxyTlsAuth {0x073400}
 libcurl version needed for proxy TLS authentification, i.e. 7.52.0. More...
 
constexpr auto crawlservpp::Network::authTypeTlsSrp {"SRP"}
 libcurl authentification type for the proxy TLS-SRP authentification. More...
 
constexpr auto crawlservpp::Network::versionProxySslVerify {0x073400}
 libcurl version needed for SSL verification of proxy host and peer, i.e. 7.52.0. More...
 
constexpr auto crawlservpp::Network::versionTcpFastOpen {0x073100}
 libcurl version needed for TCP Fast Open support, i.e. 7.49.0. More...
 
constexpr auto crawlservpp::Network::versionHappyEyeballs {0x073B00}
 libcurl version needed for the Happy Eyeballs algorithm, i.e. 7.59.0. More...
 
constexpr auto crawlservpp::Network::getPublicIpFrom {"https://myexternalip.com/raw"}
 URL to retrieve the IP of the server from. More...
 
constexpr std::array crawlservpp::Network::getPublicIpErrors {403, 429, 502, 503, 504, 521, 522, 524}
 Errors when retrieving the IP of the server. More...
 
constexpr auto crawlservpp::Network::xTsHeaderName {"X-ts: "}
 Name of the X-ts header. More...
 
constexpr auto crawlservpp::Network::xTsHeaderNameLen {6}
 Length of the X-ts header name, in bytes. More...
 
constexpr std::array crawlservpp::Network::gzipMagicNumber {0x1f, 0x8b}
 GZIP magic number. More...