jabberd2  2.2.16
Data Structures | Defines | Typedefs | Enumerations | Functions
mio/mio_impl.h File Reference
#include "util/inaddr.h"

Go to the source code of this file.

Data Structures

struct  mio_priv_fd_st
struct  mio_priv_st
 now define our master data type More...

Defines

#define MIO(m)   ((mio_priv_t) m)
#define FD(m, f)   ((mio_priv_fd_t) f)
#define ACT(m, f, a, d)   (*(FD(m,f)->app))(m,a,&FD(m,f)->mio_fd,d,FD(m,f)->arg)
#define ZONE   __LINE__
#define MIO_DEBUG   0
#define mio_debug   if(MIO_DEBUG) _mio_debug

Typedefs

typedef struct mio_priv_fd_stmio_priv_fd_t
typedef struct mio_priv_stmio_priv_t
 now define our master data type

Enumerations

enum  mio_type_t {
  type_CLOSED = 0x00, type_NORMAL = 0x01, type_LISTEN = 0x02, type_CONNECT = 0x10,
  type_CONNECT_READ = 0x11, type_CONNECT_WRITE = 0x12
}
 our internal wrapper around a fd More...

Functions

static void _mio_debug (int line, const char *msgfmt,...)
static MIO_FUNCS mio_fd_t _mio_setup_fd (mio_t m, int fd, mio_handler_t app, void *arg)
 add and set up this fd to this mio
static void _mio_close (mio_t m, mio_fd_t fd)
 internal close function
static void _mio_accept (mio_t m, mio_fd_t fd)
 internally accept an incoming connection from a listen sock
static void _mio__connect (mio_t m, mio_fd_t fd)
 internally change a connecting socket to a normal one
static void _mio_app (mio_t m, mio_fd_t fd, mio_handler_t app, void *arg)
 reset app stuff for this fd
static void _mio_run (mio_t m, int timeout)
 main select loop runner
static void _mio_read (mio_t m, mio_fd_t fd)
 start processing read events
static void _mio_write (mio_t m, mio_fd_t fd)
 try writing to the socket via the app
static mio_fd_t _mio_listen (mio_t m, int port, char *sourceip, mio_handler_t app, void *arg)
 set up a listener in this mio w/ this default app/arg
static mio_fd_t _mio_connect (mio_t m, int port, char *hostip, char *srcip, mio_handler_t app, void *arg)
 create an fd and connect to the given ip/port
static void _mio_free (mio_t m)
 adam
static mio_t _mio_new (int maxfd)
 eve

Define Documentation

#define MIO (   m)    ((mio_priv_t) m)

Definition at line 71 of file mio_impl.h.

Referenced by _mio_new().

#define FD (   m,
 
)    ((mio_priv_fd_t) f)
#define ACT (   m,
  f,
  a,
 
)    (*(FD(m,f)->app))(m,a,&FD(m,f)->mio_fd,d,FD(m,f)->arg)

Definition at line 73 of file mio_impl.h.

Referenced by _mio_close(), _mio_accept(), _mio_run(), and _mio_write().

#define ZONE   __LINE__

Definition at line 76 of file mio_impl.h.

Referenced by authreg_init(), _authreg_auth_get(), _authreg_auth_set(), _authreg_register_set(), authreg_process(), _bind_features(), bind_init(), _c2s_client_sx_callback(), _c2s_client_mio_callback(), _c2s_component_presence(), c2s_router_sx_callback(), c2s_router_mio_callback(), _c2s_sx_sasl_callback(), _c2s_time_checks(), JABBER_MAIN(), _router_sx_sasl_callback(), _router_time_checks(), _s2s_time_checks(), _s2s_dns_expiry(), _mio_resolver_callback(), _s2s_populate_whitelist_domains(), s2s_domain_in_whitelist(), _pbx_read_command(), _pbx_mio_callback(), _pbx_close_pipe(), _pbx_open_pipe(), _pbx_read_pipe(), _pbx_write_pipe(), c2s_pbx_init(), _pbx_presence_nad(), _pbx_process_command(), _sm_build_route(), sm_sx_callback(), sm_mio_callback(), sm_c2s_action(), sm_storage_rate_limit(), _mio_setup_fd(), _mio_close(), _mio_accept(), _mio__connect(), _mio_run(), _mio_listen(), _mio_connect(), aci_load(), aci_check(), aci_unload(), filter_load(), filter_packet(), _router_advertise(), _router_advertise_reverse(), _router_process_handshake(), _router_process_bind(), _router_process_unbind(), _router_comp_write(), _router_route_log_sink(), _router_process_route(), _router_sx_callback(), router_mio_callback(), s2s_router_sx_callback(), s2s_router_mio_callback(), user_table_load(), user_load(), user_free(), user_create(), user_delete(), _s2s_db_header(), s2s_db_init(), in_mio_callback(), _in_sx_callback(), _in_result(), _in_verify(), _in_packet(), _out_packet_queue(), _out_dialback(), dns_select(), out_route(), out_packet(), _dns_add_result(), _dns_add_host(), _dns_result_srv(), _dns_result_aaaa(), _dns_result_a(), dns_resolve_domain(), _out_mio_callback(), send_dialbacks(), _out_sx_callback(), _out_result(), _out_verify(), out_bounce_route_queue(), out_flush_route_queue(), s2s_db_key(), dispatch(), feature_register(), feature_unregister(), mm_new(), mm_sess_start(), mm_sess_end(), mm_in_sess(), mm_in_router(), mm_out_sess(), mm_out_router(), mm_pkt_sm(), mm_pkt_user(), mm_pkt_router(), mm_user_load(), mm_user_unload(), mm_user_create(), mm_user_delete(), mm_disco_extend(), _active_user_create(), _active_user_delete(), module_init(), _announce_in_sess(), _announce_broadcast_user(), _announce_pkt_sm(), _announce_user_delete(), _disco_unify_walker(), _disco_unify_lists(), _disco_generate_packets(), _disco_pkt_sm_populate(), _disco_pkt_router(), _echo_pkt_sm(), _help_pkt_sm(), _help_disco_extend(), _iq_last_user_delete(), _iq_private_in_sess(), _iq_private_user_delete(), _iq_vcard_to_object(), _iq_vcard_to_pkt(), _iq_vcard_user_delete(), _iq_version_disco_extend(), _offline_in_sess(), _offline_pkt_user(), _offline_user_delete(), _pep_in_sess(), _presence_pkt_user(), _presence_pkt_sm(), _privacy_free_z(), _privacy_user_load(), _privacy_action(), _privacy_in_router(), _privacy_out_router(), _unblock_jid(), _privacy_in_sess(), _privacy_user_delete(), _roster_freeuser(), _roster_save_item(), _roster_in_sess_s10n(), _roster_set_item(), _roster_in_sess(), _roster_user_load(), _roster_user_delete(), _roster_publish_get_group_name(), _roster_publish_save_item(), _roster_publish_user_load(), _session_in_router(), _session_pkt_router(), _status_pkt_sm(), _status_user_delete(), _template_roster_reload(), _template_roster_save_item(), _template_roster_user_create(), _vacation_user_delete(), _validate_in_sess(), pkt_error(), pkt_dup(), pkt_new(), pkt_free(), pkt_router(), pkt_sess(), pkt_delay(), _pres_top(), pres_update(), pres_in(), pres_error(), pres_deliver(), pres_roster(), pres_probe(), sess_route(), sess_end(), sess_start(), _sx_ack_header(), _sx_ack_process(), sx_ack_init(), _sx_address_features(), sx_address_init(), _sx_chain_io_plugin(), _sx_chain_nad_plugin(), _sx_chain_io_write(), _sx_chain_io_read(), _sx_chain_nad_write(), _sx_chain_nad_read(), _sx_client_element_start(), _sx_client_notify_header(), sx_client_init(), _sx_compress_notify_compress(), _sx_compress_process(), _sx_compress_features(), _sx_compress_wio(), _sx_compress_rio(), _sx_compress_new(), _sx_compress_free(), sx_compress_init(), sx_compress_client_compress(), sx_env_plugin(), _sx_error(), _sx_error_extended(), _sx_process_read(), sx_can_read(), _sx_get_pending_write(), sx_can_write(), _sx_nad_write(), _sx_raw_write(), _sx_sasl_wio(), _sx_sasl_rio(), _sx_sasl_stream(), _sx_sasl_features(), _sx_sasl_notify_success(), _sx_sasl_client_process(), _sx_sasl_server_process(), _sx_sasl_process(), _sx_sasl_free(), sx_sasl_init(), _sx_sasl_cb_get_simple(), _sx_sasl_cb_get_secret(), _sx_sasl_open(), _sx_sasl_gsasl_callback(), sx_sasl_auth(), _sx_server_notify_header(), _sx_server_element_start(), sx_server_init(), _sx_ssl_verify_callback(), _sx_ssl_starttls_notify_proceed(), _sx_ssl_process(), _sx_ssl_features(), _sx_ssl_get_external_id(), _sx_ssl_handshake(), _sx_ssl_wio(), _sx_ssl_rio(), _sx_ssl_client(), _sx_ssl_server(), _sx_ssl_free(), sx_ssl_init(), sx_ssl_server_addcert(), sx_ssl_client_starttls(), sx_new(), sx_free(), sx_auth(), _sx_reset(), jid_new(), xdata_new(), _xdata_field_parse(), and xdata_parse().

#define MIO_DEBUG   0

Definition at line 78 of file mio_impl.h.

#define mio_debug   if(MIO_DEBUG) _mio_debug

Typedef Documentation

typedef struct mio_priv_fd_st * mio_priv_fd_t
typedef struct mio_priv_st * mio_priv_t

now define our master data type


Enumeration Type Documentation

enum mio_type_t

our internal wrapper around a fd

Enumerator:
type_CLOSED 
type_NORMAL 
type_LISTEN 
type_CONNECT 
type_CONNECT_READ 
type_CONNECT_WRITE 

Definition at line 41 of file mio_impl.h.


Function Documentation

static void _mio_debug ( int  line,
const char *  msgfmt,
  ... 
) [static]

Definition at line 81 of file mio_impl.h.

static MIO_FUNCS mio_fd_t _mio_setup_fd ( mio_t  m,
int  fd,
mio_handler_t  app,
void *  arg 
) [static]

add and set up this fd to this mio

Definition at line 94 of file mio_impl.h.

References mio_debug, ZONE, MIO_ALLOC_FD, FD, and type_NORMAL.

Referenced by _mio_accept(), _mio_listen(), _mio_connect(), and _mio_new().

static void _mio_close ( mio_t  m,
mio_fd_t  fd 
) [static]

internal close function

Definition at line 123 of file mio_impl.h.

References FD, type_CLOSED, mio_debug, ZONE, mio_fd_st::fd, MIO_REMOVE_FD, ACT, action_CLOSE, MIO_CAN_FREE, and MIO_FREE_FD.

Referenced by _mio_new().

static void _mio_accept ( mio_t  m,
mio_fd_t  fd 
) [static]

internally accept an incoming connection from a listen sock

Definition at line 150 of file mio_impl.h.

References INET6_ADDRSTRLEN, mio_debug, ZONE, mio_fd_st::fd, j_inet_ntop(), j_inet_getport(), _mio_setup_fd(), FD, ACT, action_ACCEPT, MIO_REMOVE_FD, and MIO_FREE_FD.

Referenced by _mio_run().

static void _mio__connect ( mio_t  m,
mio_fd_t  fd 
) [static]

internally change a connecting socket to a normal one

Definition at line 194 of file mio_impl.h.

References FD, mio_debug, ZONE, mio_fd_st::fd, type_NORMAL, MIO_UNSET_WRITE, type_CONNECT_READ, mio_read, type_CONNECT_WRITE, and mio_write.

Referenced by _mio_run().

static void _mio_app ( mio_t  m,
mio_fd_t  fd,
mio_handler_t  app,
void *  arg 
) [static]

reset app stuff for this fd

Definition at line 210 of file mio_impl.h.

References FD.

Referenced by _mio_new().

static void _mio_run ( mio_t  m,
int  timeout 
) [static]
static void _mio_read ( mio_t  m,
mio_fd_t  fd 
) [static]

start processing read events

Definition at line 291 of file mio_impl.h.

References FD, type_CONNECT, type_CONNECT_READ, and MIO_SET_READ.

Referenced by _mio_new().

static void _mio_write ( mio_t  m,
mio_fd_t  fd 
) [static]

try writing to the socket via the app

Definition at line 306 of file mio_impl.h.

References FD, type_CONNECT, type_CONNECT_WRITE, type_NORMAL, ACT, action_WRITE, and MIO_SET_WRITE.

Referenced by _mio_new().

static mio_fd_t _mio_listen ( mio_t  m,
int  port,
char *  sourceip,
mio_handler_t  app,
void *  arg 
) [static]

set up a listener in this mio w/ this default app/arg

Definition at line 327 of file mio_impl.h.

References mio_debug, ZONE, j_inet_pton(), sockaddr_storage::ss_family, j_inet_setport(), j_inet_addrlen(), _mio_setup_fd(), FD, type_LISTEN, and mio_read.

Referenced by _mio_new().

static mio_fd_t _mio_connect ( mio_t  m,
int  port,
char *  hostip,
char *  srcip,
mio_handler_t  app,
void *  arg 
) [static]

create an fd and connect to the given ip/port

Definition at line 380 of file mio_impl.h.

References mio_debug, ZONE, j_inet_pton(), MIO_SETERROR, sockaddr_storage::ss_family, j_inet_setport(), j_inet_addrlen(), MIO_STRERROR, MIO_ERROR, _mio_setup_fd(), FD, type_CONNECT, and MIO_SET_WRITE.

Referenced by _mio_new().

static void _mio_free ( mio_t  m) [static]

adam

Definition at line 468 of file mio_impl.h.

References MIO_FREE_VARS.

Referenced by _mio_new().

static mio_t _mio_new ( int  maxfd) [static]