38 #include "platform.hpp" 47 #if defined ZMQ_HAVE_WINDOWS 51 #include <sys/types.h> 52 #include <sys/socket.h> 53 #include <arpa/inet.h> 54 #include <netinet/tcp.h> 55 #include <netinet/in.h> 58 #ifdef ZMQ_HAVE_OPENVMS 66 own_t (io_thread_, options_),
72 delayed_start (delayed_start_),
73 connect_timer_started (false),
74 reconnect_timer_started (false),
76 current_reconnect_ivl (options.reconnect_ivl)
189 const int rc =
open ();
286 #ifdef ZMQ_HAVE_WINDOWS 287 if (
s == INVALID_SOCKET) {
288 errno = wsa_error_to_errno (WSAGetLastError ());
298 if (tcp_addr->
family () == AF_INET6)
334 #ifdef ZMQ_HAVE_WINDOWS 335 const int last_error = WSAGetLastError();
336 if (last_error == WSAEINPROGRESS || last_error == WSAEWOULDBLOCK)
339 errno = wsa_error_to_errno (last_error);
352 int len =
sizeof err;
354 socklen_t len =
sizeof err;
357 const int rc = getsockopt (
s, SOL_SOCKET, SO_ERROR, (
char*) &err, &len);
361 #ifdef ZMQ_HAVE_WINDOWS 364 if (err == WSAEBADF ||
365 err == WSAENOPROTOOPT ||
366 err == WSAENOTSOCK ||
382 errno != ENOPROTOOPT &&
390 const fd_t result =
s;
398 #ifdef ZMQ_HAVE_WINDOWS 399 const int rc = closesocket (
s);
400 wsa_assert (rc != SOCKET_ERROR);
#define LIBZMQ_DELETE(p_object)
void send_attach(zmq::session_base_t *destination_, zmq::i_engine *engine_, bool inc_seqnum_=true)
void tune_tcp_keepalives(fd_t s_, int keepalive_, int keepalive_cnt_, int keepalive_idle_, int keepalive_intvl_)
void process_term(int linger_)
void set_pollout(handle_t handle_)
zmq::session_base_t * session
fd_t open_socket(int domain_, int type_, int protocol_)
const std::string address
void unblock_socket(fd_t s_)
void cancel_timer(int id_)
void process_term(int linger_)
bool has_src_addr() const
socklen_t src_addrlen() const
ZMQ_EXPORT int zmq_errno(void)
void event_connected(const std::string &addr_, int fd_)
zmq::socket_base_t * socket
int get_new_reconnect_ivl()
int resolve(const char *name_, bool local_, bool ipv6_, bool is_src_=false)
void event_connect_delayed(const std::string &addr_, int err_)
socket_base_t * get_socket()
void set_tcp_receive_buffer(fd_t sockfd_, int bufsize_)
void tune_tcp_maxrt(fd_t sockfd_, int timeout_)
void tune_tcp_socket(fd_t s_)
void enable_ipv4_mapping(fd_t s_)
uint32_t generate_random()
const std::string protocol
void set_tcp_send_buffer(fd_t sockfd_, int bufsize_)
void add_timer(int timout_, int id_)
void event_closed(const std::string &addr_, int fd_)
const sockaddr * addr() const
void event_connect_retried(const std::string &addr_, int interval_)
int current_reconnect_ivl
socklen_t addrlen() const
sa_family_t family() const
handle_t add_fd(fd_t fd_)
bool reconnect_timer_started
union zmq::address_t::@0 resolved
int to_string(std::string &addr_) const
tcp_connecter_t(zmq::io_thread_t *io_thread_, zmq::session_base_t *session_, const options_t &options_, address_t *addr_, bool delayed_start_)
const sockaddr * src_addr() const
void rm_fd(handle_t handle_)
void timer_event(int id_)
bool connect_timer_started
void add_reconnect_timer()
void set_ip_type_of_service(fd_t s_, int iptos)