|
|
@@ -3808,6 +3808,12 @@ public:
|
|
|
void set_read_timeout(time_t sec, time_t usec = 0);
|
|
|
void set_write_timeout(time_t sec, time_t usec = 0);
|
|
|
void set_websocket_ping_interval(time_t sec);
|
|
|
+ void set_tcp_nodelay(bool on);
|
|
|
+ void set_address_family(int family);
|
|
|
+ void set_ipv6_v6only(bool on);
|
|
|
+ void set_socket_options(SocketOptions socket_options);
|
|
|
+ void set_connection_timeout(time_t sec, time_t usec = 0);
|
|
|
+ void set_interface(const std::string &intf);
|
|
|
|
|
|
#ifdef CPPHTTPLIB_SSL_ENABLED
|
|
|
void set_ca_cert_path(const std::string &path);
|
|
|
@@ -3833,6 +3839,13 @@ private:
|
|
|
time_t write_timeout_usec_ = CPPHTTPLIB_CLIENT_WRITE_TIMEOUT_USECOND;
|
|
|
time_t websocket_ping_interval_sec_ =
|
|
|
CPPHTTPLIB_WEBSOCKET_PING_INTERVAL_SECOND;
|
|
|
+ int address_family_ = AF_UNSPEC;
|
|
|
+ bool tcp_nodelay_ = CPPHTTPLIB_TCP_NODELAY;
|
|
|
+ bool ipv6_v6only_ = CPPHTTPLIB_IPV6_V6ONLY;
|
|
|
+ SocketOptions socket_options_ = nullptr;
|
|
|
+ time_t connection_timeout_sec_ = CPPHTTPLIB_CONNECTION_TIMEOUT_SECOND;
|
|
|
+ time_t connection_timeout_usec_ = CPPHTTPLIB_CONNECTION_TIMEOUT_USECOND;
|
|
|
+ std::string interface_;
|
|
|
|
|
|
#ifdef CPPHTTPLIB_SSL_ENABLED
|
|
|
bool is_ssl_ = false;
|
|
|
@@ -20195,9 +20208,10 @@ inline bool WebSocketClient::connect() {
|
|
|
|
|
|
Error error;
|
|
|
sock_ = detail::create_client_socket(
|
|
|
- host_, std::string(), port_, AF_UNSPEC, false, false, nullptr, 5, 0,
|
|
|
+ host_, std::string(), port_, address_family_, tcp_nodelay_, ipv6_v6only_,
|
|
|
+ socket_options_, connection_timeout_sec_, connection_timeout_usec_,
|
|
|
read_timeout_sec_, read_timeout_usec_, write_timeout_sec_,
|
|
|
- write_timeout_usec_, std::string(), error);
|
|
|
+ write_timeout_usec_, interface_, error);
|
|
|
|
|
|
if (sock_ == INVALID_SOCKET) { return false; }
|
|
|
|
|
|
@@ -20263,6 +20277,27 @@ inline void WebSocketClient::set_websocket_ping_interval(time_t sec) {
|
|
|
websocket_ping_interval_sec_ = sec;
|
|
|
}
|
|
|
|
|
|
+inline void WebSocketClient::set_tcp_nodelay(bool on) { tcp_nodelay_ = on; }
|
|
|
+
|
|
|
+inline void WebSocketClient::set_address_family(int family) {
|
|
|
+ address_family_ = family;
|
|
|
+}
|
|
|
+
|
|
|
+inline void WebSocketClient::set_ipv6_v6only(bool on) { ipv6_v6only_ = on; }
|
|
|
+
|
|
|
+inline void WebSocketClient::set_socket_options(SocketOptions socket_options) {
|
|
|
+ socket_options_ = std::move(socket_options);
|
|
|
+}
|
|
|
+
|
|
|
+inline void WebSocketClient::set_connection_timeout(time_t sec, time_t usec) {
|
|
|
+ connection_timeout_sec_ = sec;
|
|
|
+ connection_timeout_usec_ = usec;
|
|
|
+}
|
|
|
+
|
|
|
+inline void WebSocketClient::set_interface(const std::string &intf) {
|
|
|
+ interface_ = intf;
|
|
|
+}
|
|
|
+
|
|
|
#ifdef CPPHTTPLIB_SSL_ENABLED
|
|
|
|
|
|
inline void WebSocketClient::set_ca_cert_path(const std::string &path) {
|