![]() |
libzmq
master
ZeroMQ C++ Core Engine (LIBZMQ)
|
#include <socks_connecter.hpp>
Public Member Functions | |
socks_connecter_t (zmq::io_thread_t *io_thread_, zmq::session_base_t *session_, const options_t &options_, address_t *addr_, address_t *proxy_addr_, bool delayed_start_) | |
~socks_connecter_t () | |
![]() | |
own_t (zmq::ctx_t *parent_, uint32_t tid_) | |
own_t (zmq::io_thread_t *io_thread_, const options_t &options_) | |
void | inc_seqnum () |
void | register_term_acks (int count_) |
void | unregister_term_ack () |
![]() | |
object_t (zmq::ctx_t *ctx_, uint32_t tid_) | |
object_t (object_t *parent_) | |
virtual | ~object_t () |
ctx_t * | get_ctx () |
uint32_t | get_tid () |
void | process_command (zmq::command_t &cmd_) |
void | send_bind (zmq::own_t *destination_, zmq::pipe_t *pipe_, bool inc_seqnum_=true) |
void | send_inproc_connected (zmq::socket_base_t *socket_) |
void | set_tid (uint32_t id) |
![]() | |
io_object_t (zmq::io_thread_t *io_thread_=NULL) | |
~io_object_t () | |
void | plug (zmq::io_thread_t *io_thread_) |
void | unplug () |
![]() | |
virtual | ~i_poll_events () |
Private Types | |
enum | { unplugged, waiting_for_reconnect_time, waiting_for_proxy_connection, sending_greeting, waiting_for_choice, sending_request, waiting_for_response } |
enum | { reconnect_timer_id = 1 } |
enum | { socks_no_auth_required = 0 } |
Private Member Functions | |
socks_connecter_t (const socks_connecter_t &) | |
zmq::fd_t | check_proxy_connection () |
void | close () |
int | connect_to_proxy () |
void | error () |
int | get_new_reconnect_ivl () |
virtual void | in_event () |
void | initiate_connect () |
int | open () |
const socks_connecter_t & | operator= (const socks_connecter_t &) |
virtual void | out_event () |
int | parse_address (const std::string &address_, std::string &hostname_, uint16_t &port_) |
virtual void | process_plug () |
int | process_server_response (const socks_choice_t &response) |
int | process_server_response (const socks_response_t &response) |
virtual void | process_term (int linger_) |
void | start_timer () |
virtual void | timer_event (int id_) |
Additional Inherited Members | |
![]() | |
typedef poller_t::handle_t | handle_t |
![]() | |
virtual | ~own_t () |
bool | is_terminating () |
void | launch_child (own_t *object_) |
virtual void | process_destroy () |
void | term_child (own_t *object_) |
void | terminate () |
![]() | |
zmq::io_thread_t * | choose_io_thread (uint64_t affinity_) |
void | connect_pending (const char *addr_, zmq::socket_base_t *bind_socket_) |
void | destroy_socket (zmq::socket_base_t *socket_) |
zmq::endpoint_t | find_endpoint (const char *addr_) |
void | log (const char *format_,...) |
void | pend_connection (const std::string &addr_, const endpoint_t &endpoint, pipe_t **pipes_) |
virtual void | process_activate_read () |
virtual void | process_activate_write (uint64_t msgs_read_) |
virtual void | process_attach (zmq::i_engine *engine_) |
virtual void | process_bind (zmq::pipe_t *pipe_) |
virtual void | process_hiccup (void *pipe_) |
virtual void | process_pipe_term () |
virtual void | process_pipe_term_ack () |
virtual void | process_reap (zmq::socket_base_t *socket_) |
virtual void | process_reaped () |
virtual void | process_stop () |
int | register_endpoint (const char *addr_, const zmq::endpoint_t &endpoint_) |
void | send_activate_read (zmq::pipe_t *destination_) |
void | send_activate_write (zmq::pipe_t *destination_, uint64_t msgs_read_) |
void | send_attach (zmq::session_base_t *destination_, zmq::i_engine *engine_, bool inc_seqnum_=true) |
void | send_done () |
void | send_hiccup (zmq::pipe_t *destination_, void *pipe_) |
void | send_own (zmq::own_t *destination_, zmq::own_t *object_) |
void | send_pipe_term (zmq::pipe_t *destination_) |
void | send_pipe_term_ack (zmq::pipe_t *destination_) |
void | send_plug (zmq::own_t *destination_, bool inc_seqnum_=true) |
void | send_reap (zmq::socket_base_t *socket_) |
void | send_reaped () |
void | send_stop () |
void | send_term (zmq::own_t *destination_, int linger_) |
void | send_term_ack (zmq::own_t *destination_) |
void | send_term_req (zmq::own_t *destination_, zmq::own_t *object_) |
int | unregister_endpoint (const std::string &addr_, socket_base_t *socket_) |
void | unregister_endpoints (zmq::socket_base_t *socket_) |
![]() | |
handle_t | add_fd (fd_t fd_) |
void | add_timer (int timout_, int id_) |
void | cancel_timer (int id_) |
void | reset_pollin (handle_t handle_) |
void | reset_pollout (handle_t handle_) |
void | rm_fd (handle_t handle_) |
void | set_pollin (handle_t handle_) |
void | set_pollout (handle_t handle_) |
![]() | |
options_t | options |
Definition at line 47 of file socks_connecter.hpp.
|
private |
Enumerator | |
---|---|
unplugged | |
waiting_for_reconnect_time | |
waiting_for_proxy_connection | |
sending_greeting | |
waiting_for_choice | |
sending_request | |
waiting_for_response |
Definition at line 59 of file socks_connecter.hpp.
|
private |
Enumerator | |
---|---|
reconnect_timer_id |
Definition at line 70 of file socks_connecter.hpp.
|
private |
Enumerator | |
---|---|
socks_no_auth_required |
Definition at line 73 of file socks_connecter.hpp.
zmq::socks_connecter_t::socks_connecter_t | ( | zmq::io_thread_t * | io_thread_, |
zmq::session_base_t * | session_, | ||
const options_t & | options_, | ||
address_t * | addr_, | ||
address_t * | proxy_addr_, | ||
bool | delayed_start_ | ||
) |
Definition at line 55 of file socks_connecter.cpp.
References addr, endpoint, zmq::session_base_t::get_socket(), zmq::address_t::protocol, proxy_addr, session, socket, zmq::address_t::to_string(), and zmq_assert.
zmq::socks_connecter_t::~socks_connecter_t | ( | ) |
Definition at line 77 of file socks_connecter.cpp.
References LIBZMQ_DELETE, proxy_addr, zmq::retired_fd, s, and zmq_assert.
|
private |
|
private |
Definition at line 386 of file socks_connecter.cpp.
References ECONNREFUSED, ECONNRESET, EHOSTUNREACH, ENETDOWN, ENETUNREACH, errno_assert, ETIMEDOUT, zmq::own_t::options, s, zmq::options_t::tcp_keepalive, zmq::options_t::tcp_keepalive_cnt, zmq::options_t::tcp_keepalive_idle, zmq::options_t::tcp_keepalive_intvl, zmq::tune_tcp_keepalives(), zmq::tune_tcp_socket(), and zmq_assert.
Referenced by out_event().
|
private |
Definition at line 440 of file socks_connecter.cpp.
References endpoint, errno_assert, zmq::socket_base_t::event_closed(), zmq::retired_fd, s, socket, and zmq_assert.
Referenced by connect_to_proxy(), error(), initiate_connect(), and process_term().
|
private |
Definition at line 303 of file socks_connecter.cpp.
References zmq::tcp_address_t::addr(), zmq::address_t::address, zmq::tcp_address_t::addrlen(), alloc_assert, bind, close(), EINPROGRESS, zmq::enable_ipv4_mapping(), zmq::tcp_address_t::family(), zmq::tcp_address_t::has_src_addr(), zmq::options_t::ipv6, LIBZMQ_DELETE, zmq::open_socket(), zmq::own_t::options, proxy_addr, zmq::options_t::rcvbuf, zmq::tcp_address_t::resolve(), zmq::address_t::resolved, zmq::retired_fd, s, zmq::set_ip_type_of_service(), zmq::set_tcp_receive_buffer(), zmq::set_tcp_send_buffer(), zmq::options_t::sndbuf, zmq::tcp_address_t::src_addr(), zmq::tcp_address_t::src_addrlen(), zmq::address_t::tcp_addr, zmq::options_t::tos, zmq::unblock_socket(), and zmq_assert.
Referenced by initiate_connect().
|
private |
Definition at line 268 of file socks_connecter.cpp.
References choice_decoder, close(), greeting_encoder, handle, request_encoder, zmq::socks_greeting_encoder_t::reset(), zmq::socks_choice_decoder_t::reset(), zmq::socks_request_encoder_t::reset(), zmq::socks_response_decoder_t::reset(), response_decoder, zmq::io_object_t::rm_fd(), and start_timer().
Referenced by in_event(), and out_event().
|
private |
Definition at line 287 of file socks_connecter.cpp.
References current_reconnect_ivl, zmq::generate_random(), zmq::own_t::options, zmq::options_t::reconnect_ivl, and zmq::options_t::reconnect_ivl_max.
Referenced by start_timer().
|
privatevirtual |
Reimplemented from zmq::io_object_t.
Definition at line 113 of file socks_connecter.cpp.
References addr, zmq::address_t::address, alloc_assert, choice_decoder, zmq::socks_choice_decoder_t::decode(), zmq::socks_response_decoder_t::decode(), zmq::socks_request_encoder_t::encode(), endpoint, error(), zmq::socket_base_t::event_connected(), handle, zmq::socks_choice_decoder_t::input(), zmq::socks_response_decoder_t::input(), zmq::socks_choice_decoder_t::message_ready(), zmq::socks_response_decoder_t::message_ready(), zmq::own_t::options, parse_address(), process_server_response(), request_encoder, zmq::io_object_t::reset_pollin(), response_decoder, zmq::io_object_t::rm_fd(), s, zmq::object_t::send_attach(), sending_request, session, zmq::io_object_t::set_pollout(), socket, status, zmq::own_t::terminate(), unplugged, waiting_for_choice, waiting_for_reconnect_time, waiting_for_response, and zmq_assert.
|
private |
Definition at line 221 of file socks_connecter.cpp.
References zmq::io_object_t::add_fd(), close(), connect_to_proxy(), EINPROGRESS, endpoint, zmq::socket_base_t::event_connect_delayed(), handle, zmq::retired_fd, s, sending_greeting, zmq::io_object_t::set_pollout(), socket, start_timer(), status, waiting_for_proxy_connection, and zmq_errno().
Referenced by process_plug(), and timer_event().
|
private |
|
private |
|
privatevirtual |
Reimplemented from zmq::io_object_t.
Definition at line 178 of file socks_connecter.cpp.
References check_proxy_connection(), zmq::socks_greeting_encoder_t::encode(), error(), greeting_encoder, handle, zmq::socks_greeting_encoder_t::has_pending_data(), zmq::socks_request_encoder_t::has_pending_data(), zmq::socks_greeting_encoder_t::output(), zmq::socks_request_encoder_t::output(), request_encoder, zmq::io_object_t::reset_pollout(), s, sending_greeting, sending_request, zmq::io_object_t::set_pollin(), socks_no_auth_required, status, waiting_for_choice, waiting_for_proxy_connection, waiting_for_response, and zmq_assert.
|
private |
Definition at line 454 of file socks_connecter.cpp.
Referenced by in_event().
|
privatevirtual |
Reimplemented from zmq::object_t.
Definition at line 83 of file socks_connecter.cpp.
References delayed_start, initiate_connect(), and start_timer().
|
private |
Definition at line 248 of file socks_connecter.cpp.
References zmq::socks_choice_t::method.
Referenced by in_event().
|
private |
Definition at line 255 of file socks_connecter.cpp.
References zmq::socks_response_t::response_code.
|
privatevirtual |
Reimplemented from zmq::own_t.
Definition at line 91 of file socks_connecter.cpp.
References zmq::io_object_t::cancel_timer(), close(), handle, zmq::own_t::process_term(), reconnect_timer_id, zmq::retired_fd, zmq::io_object_t::rm_fd(), s, sending_greeting, sending_request, status, unplugged, waiting_for_choice, waiting_for_proxy_connection, waiting_for_reconnect_time, and waiting_for_response.
|
private |
Definition at line 279 of file socks_connecter.cpp.
References zmq::io_object_t::add_timer(), endpoint, zmq::socket_base_t::event_connect_retried(), get_new_reconnect_ivl(), reconnect_timer_id, socket, status, and waiting_for_reconnect_time.
Referenced by error(), initiate_connect(), and process_plug().
|
privatevirtual |
Reimplemented from zmq::io_object_t.
Definition at line 261 of file socks_connecter.cpp.
References initiate_connect(), reconnect_timer_id, status, waiting_for_reconnect_time, and zmq_assert.
|
private |
Definition at line 123 of file socks_connecter.hpp.
Referenced by in_event(), and socks_connecter_t().
|
private |
Definition at line 118 of file socks_connecter.hpp.
Referenced by error(), and in_event().
|
private |
Definition at line 150 of file socks_connecter.hpp.
Referenced by get_new_reconnect_ivl().
|
private |
Definition at line 141 of file socks_connecter.hpp.
Referenced by process_plug().
|
private |
Definition at line 153 of file socks_connecter.hpp.
Referenced by close(), in_event(), initiate_connect(), socks_connecter_t(), and start_timer().
|
private |
Definition at line 117 of file socks_connecter.hpp.
Referenced by error(), and out_event().
|
private |
Definition at line 134 of file socks_connecter.hpp.
Referenced by error(), in_event(), initiate_connect(), out_event(), and process_term().
|
private |
Definition at line 138 of file socks_connecter.hpp.
|
private |
Definition at line 126 of file socks_connecter.hpp.
Referenced by connect_to_proxy(), socks_connecter_t(), and ~socks_connecter_t().
|
private |
Definition at line 119 of file socks_connecter.hpp.
Referenced by error(), in_event(), and out_event().
|
private |
Definition at line 120 of file socks_connecter.hpp.
Referenced by error(), and in_event().
|
private |
Definition at line 131 of file socks_connecter.hpp.
Referenced by check_proxy_connection(), close(), connect_to_proxy(), in_event(), initiate_connect(), out_event(), process_term(), and ~socks_connecter_t().
|
private |
Definition at line 147 of file socks_connecter.hpp.
Referenced by in_event(), and socks_connecter_t().
|
private |
Definition at line 156 of file socks_connecter.hpp.
Referenced by close(), in_event(), initiate_connect(), socks_connecter_t(), and start_timer().
|
private |
Definition at line 128 of file socks_connecter.hpp.
Referenced by in_event(), initiate_connect(), out_event(), process_term(), start_timer(), and timer_event().
|
private |
Definition at line 144 of file socks_connecter.hpp.