ebpf-blocker 1.0.0
XDP-based packet blocker using eBPF
Loading...
Searching...
No Matches
httplib.h File Reference
#include <arpa/inet.h>
#include <ifaddrs.h>
#include <net/if.h>
#include <netdb.h>
#include <netinet/in.h>
#include <csignal>
#include <netinet/tcp.h>
#include <poll.h>
#include <pthread.h>
#include <sys/mman.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <unistd.h>
#include <algorithm>
#include <array>
#include <atomic>
#include <cassert>
#include <cctype>
#include <chrono>
#include <climits>
#include <condition_variable>
#include <cstdlib>
#include <cstring>
#include <errno.h>
#include <exception>
#include <fcntl.h>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <mutex>
#include <random>
#include <regex>
#include <set>
#include <sstream>
#include <string>
#include <sys/stat.h>
#include <system_error>
#include <thread>
#include <unordered_map>
#include <unordered_set>
#include <utility>

Go to the source code of this file.

Macros

#define CPPHTTPLIB_VERSION   "0.48.0"
 
#define CPPHTTPLIB_VERSION_NUM   "0x003000"
 
#define CPPHTTPLIB_KEEPALIVE_TIMEOUT_SECOND   5
 
#define CPPHTTPLIB_KEEPALIVE_TIMEOUT_CHECK_INTERVAL_USECOND   10000
 
#define CPPHTTPLIB_KEEPALIVE_MAX_COUNT   100
 
#define CPPHTTPLIB_CONNECTION_TIMEOUT_SECOND   300
 
#define CPPHTTPLIB_CONNECTION_TIMEOUT_USECOND   0
 
#define CPPHTTPLIB_SERVER_READ_TIMEOUT_SECOND   5
 
#define CPPHTTPLIB_SERVER_READ_TIMEOUT_USECOND   0
 
#define CPPHTTPLIB_SERVER_WRITE_TIMEOUT_SECOND   5
 
#define CPPHTTPLIB_SERVER_WRITE_TIMEOUT_USECOND   0
 
#define CPPHTTPLIB_CLIENT_READ_TIMEOUT_SECOND   300
 
#define CPPHTTPLIB_CLIENT_READ_TIMEOUT_USECOND   0
 
#define CPPHTTPLIB_CLIENT_WRITE_TIMEOUT_SECOND   5
 
#define CPPHTTPLIB_CLIENT_WRITE_TIMEOUT_USECOND   0
 
#define CPPHTTPLIB_CLIENT_MAX_TIMEOUT_MSECOND   0
 
#define CPPHTTPLIB_EXPECT_100_THRESHOLD   1024
 
#define CPPHTTPLIB_EXPECT_100_TIMEOUT_MSECOND   1000
 
#define CPPHTTPLIB_WAIT_EARLY_SERVER_RESPONSE_THRESHOLD   (1024 * 1024)
 
#define CPPHTTPLIB_WAIT_EARLY_SERVER_RESPONSE_TIMEOUT_MSECOND   50
 
#define CPPHTTPLIB_IDLE_INTERVAL_SECOND   0
 
#define CPPHTTPLIB_IDLE_INTERVAL_USECOND   0
 
#define CPPHTTPLIB_REQUEST_URI_MAX_LENGTH   8192
 
#define CPPHTTPLIB_HEADER_MAX_LENGTH   8192
 
#define CPPHTTPLIB_HEADER_MAX_COUNT   100
 
#define CPPHTTPLIB_REDIRECT_MAX_COUNT   20
 
#define CPPHTTPLIB_MULTIPART_FORM_DATA_FILE_MAX_COUNT   1024
 
#define CPPHTTPLIB_PAYLOAD_MAX_LENGTH   (100 * 1024 * 1024)
 
#define CPPHTTPLIB_FORM_URL_ENCODED_PAYLOAD_MAX_LENGTH   8192
 
#define CPPHTTPLIB_RANGE_MAX_COUNT   1024
 
#define CPPHTTPLIB_TCP_NODELAY   false
 
#define CPPHTTPLIB_IPV6_V6ONLY   false
 
#define CPPHTTPLIB_RECV_BUFSIZ   size_t(16384u)
 
#define CPPHTTPLIB_SEND_BUFSIZ   size_t(16384u)
 
#define CPPHTTPLIB_COMPRESSION_BUFSIZ   size_t(16384u)
 
#define CPPHTTPLIB_THREAD_POOL_COUNT
 
#define CPPHTTPLIB_THREAD_POOL_MAX_COUNT   (CPPHTTPLIB_THREAD_POOL_COUNT * 4)
 
#define CPPHTTPLIB_THREAD_POOL_IDLE_TIMEOUT   3
 
#define CPPHTTPLIB_RECV_FLAGS   0
 
#define CPPHTTPLIB_SEND_FLAGS   0
 
#define CPPHTTPLIB_LISTEN_BACKLOG   5
 
#define CPPHTTPLIB_MAX_LINE_LENGTH   32768
 
#define CPPHTTPLIB_WEBSOCKET_MAX_PAYLOAD_LENGTH   16777216
 
#define CPPHTTPLIB_WEBSOCKET_READ_TIMEOUT_SECOND   300
 
#define CPPHTTPLIB_WEBSOCKET_CLOSE_TIMEOUT_SECOND   5
 
#define CPPHTTPLIB_WEBSOCKET_PING_INTERVAL_SECOND   30
 
#define CPPHTTPLIB_WEBSOCKET_MAX_MISSED_PONGS   0
 
#define INVALID_SOCKET   (-1)
 
#define USE_IF2IP
 

Typedefs

using socket_t = int
 

Macro Definition Documentation

◆ CPPHTTPLIB_CLIENT_MAX_TIMEOUT_MSECOND

#define CPPHTTPLIB_CLIENT_MAX_TIMEOUT_MSECOND   0

Definition at line 78 of file httplib.h.

◆ CPPHTTPLIB_CLIENT_READ_TIMEOUT_SECOND

#define CPPHTTPLIB_CLIENT_READ_TIMEOUT_SECOND   300

Definition at line 62 of file httplib.h.

◆ CPPHTTPLIB_CLIENT_READ_TIMEOUT_USECOND

#define CPPHTTPLIB_CLIENT_READ_TIMEOUT_USECOND   0

Definition at line 66 of file httplib.h.

◆ CPPHTTPLIB_CLIENT_WRITE_TIMEOUT_SECOND

#define CPPHTTPLIB_CLIENT_WRITE_TIMEOUT_SECOND   5

Definition at line 70 of file httplib.h.

◆ CPPHTTPLIB_CLIENT_WRITE_TIMEOUT_USECOND

#define CPPHTTPLIB_CLIENT_WRITE_TIMEOUT_USECOND   0

Definition at line 74 of file httplib.h.

◆ CPPHTTPLIB_COMPRESSION_BUFSIZ

#define CPPHTTPLIB_COMPRESSION_BUFSIZ   size_t(16384u)

Definition at line 158 of file httplib.h.

◆ CPPHTTPLIB_CONNECTION_TIMEOUT_SECOND

#define CPPHTTPLIB_CONNECTION_TIMEOUT_SECOND   300

Definition at line 38 of file httplib.h.

◆ CPPHTTPLIB_CONNECTION_TIMEOUT_USECOND

#define CPPHTTPLIB_CONNECTION_TIMEOUT_USECOND   0

Definition at line 42 of file httplib.h.

◆ CPPHTTPLIB_EXPECT_100_THRESHOLD

#define CPPHTTPLIB_EXPECT_100_THRESHOLD   1024

Definition at line 82 of file httplib.h.

◆ CPPHTTPLIB_EXPECT_100_TIMEOUT_MSECOND

#define CPPHTTPLIB_EXPECT_100_TIMEOUT_MSECOND   1000

Definition at line 86 of file httplib.h.

◆ CPPHTTPLIB_FORM_URL_ENCODED_PAYLOAD_MAX_LENGTH

#define CPPHTTPLIB_FORM_URL_ENCODED_PAYLOAD_MAX_LENGTH   8192

Definition at line 134 of file httplib.h.

◆ CPPHTTPLIB_HEADER_MAX_COUNT

#define CPPHTTPLIB_HEADER_MAX_COUNT   100

Definition at line 118 of file httplib.h.

◆ CPPHTTPLIB_HEADER_MAX_LENGTH

#define CPPHTTPLIB_HEADER_MAX_LENGTH   8192

Definition at line 114 of file httplib.h.

◆ CPPHTTPLIB_IDLE_INTERVAL_SECOND

#define CPPHTTPLIB_IDLE_INTERVAL_SECOND   0

Definition at line 98 of file httplib.h.

◆ CPPHTTPLIB_IDLE_INTERVAL_USECOND

#define CPPHTTPLIB_IDLE_INTERVAL_USECOND   0

Definition at line 105 of file httplib.h.

◆ CPPHTTPLIB_IPV6_V6ONLY

#define CPPHTTPLIB_IPV6_V6ONLY   false

Definition at line 146 of file httplib.h.

◆ CPPHTTPLIB_KEEPALIVE_MAX_COUNT

#define CPPHTTPLIB_KEEPALIVE_MAX_COUNT   100

Definition at line 34 of file httplib.h.

◆ CPPHTTPLIB_KEEPALIVE_TIMEOUT_CHECK_INTERVAL_USECOND

#define CPPHTTPLIB_KEEPALIVE_TIMEOUT_CHECK_INTERVAL_USECOND   10000

Definition at line 30 of file httplib.h.

◆ CPPHTTPLIB_KEEPALIVE_TIMEOUT_SECOND

#define CPPHTTPLIB_KEEPALIVE_TIMEOUT_SECOND   5

Definition at line 26 of file httplib.h.

◆ CPPHTTPLIB_LISTEN_BACKLOG

#define CPPHTTPLIB_LISTEN_BACKLOG   5

Definition at line 185 of file httplib.h.

◆ CPPHTTPLIB_MAX_LINE_LENGTH

#define CPPHTTPLIB_MAX_LINE_LENGTH   32768

Definition at line 189 of file httplib.h.

◆ CPPHTTPLIB_MULTIPART_FORM_DATA_FILE_MAX_COUNT

#define CPPHTTPLIB_MULTIPART_FORM_DATA_FILE_MAX_COUNT   1024

Definition at line 126 of file httplib.h.

◆ CPPHTTPLIB_PAYLOAD_MAX_LENGTH

#define CPPHTTPLIB_PAYLOAD_MAX_LENGTH   (100 * 1024 * 1024)

Definition at line 130 of file httplib.h.

◆ CPPHTTPLIB_RANGE_MAX_COUNT

#define CPPHTTPLIB_RANGE_MAX_COUNT   1024

Definition at line 138 of file httplib.h.

◆ CPPHTTPLIB_RECV_BUFSIZ

#define CPPHTTPLIB_RECV_BUFSIZ   size_t(16384u)

Definition at line 150 of file httplib.h.

◆ CPPHTTPLIB_RECV_FLAGS

#define CPPHTTPLIB_RECV_FLAGS   0

Definition at line 177 of file httplib.h.

◆ CPPHTTPLIB_REDIRECT_MAX_COUNT

#define CPPHTTPLIB_REDIRECT_MAX_COUNT   20

Definition at line 122 of file httplib.h.

◆ CPPHTTPLIB_REQUEST_URI_MAX_LENGTH

#define CPPHTTPLIB_REQUEST_URI_MAX_LENGTH   8192

Definition at line 110 of file httplib.h.

◆ CPPHTTPLIB_SEND_BUFSIZ

#define CPPHTTPLIB_SEND_BUFSIZ   size_t(16384u)

Definition at line 154 of file httplib.h.

◆ CPPHTTPLIB_SEND_FLAGS

#define CPPHTTPLIB_SEND_FLAGS   0

Definition at line 181 of file httplib.h.

◆ CPPHTTPLIB_SERVER_READ_TIMEOUT_SECOND

#define CPPHTTPLIB_SERVER_READ_TIMEOUT_SECOND   5

Definition at line 46 of file httplib.h.

◆ CPPHTTPLIB_SERVER_READ_TIMEOUT_USECOND

#define CPPHTTPLIB_SERVER_READ_TIMEOUT_USECOND   0

Definition at line 50 of file httplib.h.

◆ CPPHTTPLIB_SERVER_WRITE_TIMEOUT_SECOND

#define CPPHTTPLIB_SERVER_WRITE_TIMEOUT_SECOND   5

Definition at line 54 of file httplib.h.

◆ CPPHTTPLIB_SERVER_WRITE_TIMEOUT_USECOND

#define CPPHTTPLIB_SERVER_WRITE_TIMEOUT_USECOND   0

Definition at line 58 of file httplib.h.

◆ CPPHTTPLIB_TCP_NODELAY

#define CPPHTTPLIB_TCP_NODELAY   false

Definition at line 142 of file httplib.h.

◆ CPPHTTPLIB_THREAD_POOL_COUNT

#define CPPHTTPLIB_THREAD_POOL_COUNT
Value:
((std::max)(8u, std::thread::hardware_concurrency() > 0 \
? std::thread::hardware_concurrency() - 1 \
: 0))

Definition at line 162 of file httplib.h.

◆ CPPHTTPLIB_THREAD_POOL_IDLE_TIMEOUT

#define CPPHTTPLIB_THREAD_POOL_IDLE_TIMEOUT   3

Definition at line 173 of file httplib.h.

◆ CPPHTTPLIB_THREAD_POOL_MAX_COUNT

#define CPPHTTPLIB_THREAD_POOL_MAX_COUNT   (CPPHTTPLIB_THREAD_POOL_COUNT * 4)

Definition at line 169 of file httplib.h.

◆ CPPHTTPLIB_VERSION

#define CPPHTTPLIB_VERSION   "0.48.0"

Definition at line 11 of file httplib.h.

◆ CPPHTTPLIB_VERSION_NUM

#define CPPHTTPLIB_VERSION_NUM   "0x003000"

Definition at line 12 of file httplib.h.

◆ CPPHTTPLIB_WAIT_EARLY_SERVER_RESPONSE_THRESHOLD

#define CPPHTTPLIB_WAIT_EARLY_SERVER_RESPONSE_THRESHOLD   (1024 * 1024)

Definition at line 90 of file httplib.h.

◆ CPPHTTPLIB_WAIT_EARLY_SERVER_RESPONSE_TIMEOUT_MSECOND

#define CPPHTTPLIB_WAIT_EARLY_SERVER_RESPONSE_TIMEOUT_MSECOND   50

Definition at line 94 of file httplib.h.

◆ CPPHTTPLIB_WEBSOCKET_CLOSE_TIMEOUT_SECOND

#define CPPHTTPLIB_WEBSOCKET_CLOSE_TIMEOUT_SECOND   5

Definition at line 201 of file httplib.h.

◆ CPPHTTPLIB_WEBSOCKET_MAX_MISSED_PONGS

#define CPPHTTPLIB_WEBSOCKET_MAX_MISSED_PONGS   0

Definition at line 209 of file httplib.h.

◆ CPPHTTPLIB_WEBSOCKET_MAX_PAYLOAD_LENGTH

#define CPPHTTPLIB_WEBSOCKET_MAX_PAYLOAD_LENGTH   16777216

Definition at line 193 of file httplib.h.

◆ CPPHTTPLIB_WEBSOCKET_PING_INTERVAL_SECOND

#define CPPHTTPLIB_WEBSOCKET_PING_INTERVAL_SECOND   30

Definition at line 205 of file httplib.h.

◆ CPPHTTPLIB_WEBSOCKET_READ_TIMEOUT_SECOND

#define CPPHTTPLIB_WEBSOCKET_READ_TIMEOUT_SECOND   300

Definition at line 197 of file httplib.h.

◆ INVALID_SOCKET

#define INVALID_SOCKET   (-1)

Definition at line 300 of file httplib.h.

◆ USE_IF2IP

#define USE_IF2IP

Definition at line 6318 of file httplib.h.

Typedef Documentation

◆ socket_t

using socket_t = int

Definition at line 298 of file httplib.h.