jabberd2
2.3.6
|
packet abstraction More...
#include "sm.h"
Go to the source code of this file.
Functions | |
pkt_t | pkt_error (pkt_t pkt, int err) |
pkt_t | pkt_tofrom (pkt_t pkt) |
swap a packet's to and from attributes More... | |
pkt_t | pkt_dup (pkt_t pkt, const char *to, const char *from) |
duplicate pkt, replacing addresses More... | |
pkt_t | pkt_new (sm_t sm, nad_t nad) |
void | pkt_free (pkt_t pkt) |
pkt_t | pkt_create (sm_t sm, const char *elem, const char *type, const char *to, const char *from) |
void | pkt_id (pkt_t src, pkt_t dest) |
convenience - copy the packet id from src to dest More... | |
void | pkt_id_new (pkt_t pkt) |
create an id value for new iq packets More... | |
void | pkt_router (pkt_t pkt) |
void | pkt_sess (pkt_t pkt, sess_t sess) |
void | pkt_delay (pkt_t pkt, time_t t, const char *from) |
add an x:delay stamp More... | |
Definition at line 30 of file pkt.c.
References jid_dup(), log_debug, pkt_st::nad, pkt_ERROR, pkt_free(), pkt_tofrom(), pkt_st::rto, stanza_error(), pkt_st::to, pkt_st::type, and ZONE.
Referenced by _offline_user_delete(), _privacy_out_router(), _session_in_router(), dispatch(), pkt_router(), and pkt_sess().
swap a packet's to and from attributes
Definition at line 57 of file pkt.c.
References pkt_st::from, jid_full(), pkt_st::nad, nad_set_attr(), pkt_st::rfrom, pkt_st::rto, and pkt_st::to.
Referenced by _disco_in_sess(), _disco_pkt_user(), _echo_pkt_sm(), _iq_last_pkt_sm(), _iq_last_pkt_user(), _iq_ping_pkt_sm(), _iq_private_in_sess(), _iq_time_pkt_sm(), _iq_version_pkt_sm(), _roster_in_sess(), _roster_pkt_user(), _vacation_in_sess(), and pkt_error().
duplicate pkt, replacing addresses
Definition at line 84 of file pkt.c.
References pkt_st::from, jid_dup(), jid_full(), jid_new(), log_debug, pkt_st::nad, nad_copy(), nad_set_attr(), pkt_st::sm, pkt_st::to, pkt_st::type, and ZONE.
Referenced by _announce_pkt_sm(), _disco_in_sess(), _disco_pkt_sm(), _help_pkt_sm(), _iq_private_in_sess(), _offline_pkt_user(), _privacy_in_sess(), _roster_push(), _unblock_jid(), pres_in(), pres_roster(), and pres_update().
Definition at line 113 of file pkt.c.
References nad_st::ecur, pkt_st::from, jid_new(), sm_st::log, log_debug, log_write(), pkt_st::nad, NAD_AVAL, NAD_AVAL_L, NAD_CDATA, NAD_CDATA_L, NAD_ENAME, NAD_ENAME_L, NAD_ENS, nad_find_attr(), nad_find_elem(), nad_find_namespace(), nad_free(), NAD_NURI, NAD_NURI_L, pkt_st::ns, pkt_ERROR, pkt_free(), pkt_IQ, pkt_IQ_RESULT, pkt_IQ_SET, pkt_MESSAGE, pkt_MESSAGE_CHAT, pkt_MESSAGE_GROUPCHAT, pkt_MESSAGE_HEADLINE, pkt_PRESENCE, pkt_PRESENCE_PROBE, pkt_PRESENCE_UN, pkt_S10N, pkt_S10N_ED, pkt_S10N_UN, pkt_S10N_UNED, pkt_SESS, pkt_SESS_CREATE, pkt_SESS_DELETE, pkt_SESS_END, pkt_SESS_FAILED, pkt_st::pri, pkt_st::rfrom, route_ADV, route_ADV_UN, route_BROADCAST, route_ERROR, route_UNICAST, pkt_st::rto, pkt_st::rtype, sm, pkt_st::sm, pkt_st::to, pkt_st::type, uri_CLIENT, uri_COMPONENT, uri_SESSION, xhash_getx(), sm_st::xmlns, and ZONE.
Referenced by _announce_broadcast_user(), _announce_in_sess(), _iq_private_in_sess(), _offline_in_sess(), _offline_user_delete(), pkt_create(), pres_in(), and sm_sx_callback().
void pkt_free | ( | pkt_t | pkt | ) |
Definition at line 315 of file pkt.c.
References pkt_st::from, jid_free(), log_debug, pkt_st::nad, nad_free(), pkt_st::rfrom, pkt_st::rto, pkt_st::to, and ZONE.
Referenced by _amp_pkt_sm(), _amp_pkt_user(), _announce_pkt_sm(), _deliver_in_sess(), _deliver_pkt_user(), _disco_free(), _disco_generate_packets(), _disco_in_sess(), _disco_pkt_router(), _disco_pkt_sm(), _disco_pkt_sm_populate(), _help_pkt_sm(), _iq_private_in_sess(), _iq_vcard_in_sess(), _iq_vcard_pkt_sm(), _iq_vcard_pkt_user(), _offline_in_sess(), _offline_pkt_user(), _offline_user_delete(), _presence_in_router(), _presence_pkt_sm(), _presence_pkt_user(), _privacy_in_router(), _privacy_in_sess(), _privacy_out_router(), _roster_in_sess(), _roster_in_sess_s10n(), _roster_pkt_user(), _roster_set_item(), _session_in_router(), _vacation_in_sess(), _vacation_pkt_user(), _verify_in_sess(), dispatch(), pkt_error(), pkt_new(), pkt_router(), pkt_sess(), pres_deliver(), pres_in(), and pres_update().
pkt_t pkt_create | ( | sm_t | sm, |
const char * | elem, | ||
const char * | type, | ||
const char * | to, | ||
const char * | from | ||
) |
Definition at line 328 of file pkt.c.
References nad_add_namespace(), nad_append_attr(), nad_append_elem(), nad_new(), pkt_new(), uri_CLIENT, uri_COMPONENT, and uri_SESSION.
Referenced by _amp_pkt_sm(), _announce_pkt_sm(), _disco_agents_result(), _disco_info_result(), _disco_items_result(), _disco_pkt_router(), _disco_pkt_sm(), _echo_pkt_sm(), _help_pkt_sm(), _iq_private_in_sess(), _iq_vcard_in_sess(), _iq_vcard_to_pkt(), _offline_pkt_user(), _presence_pkt_sm(), _privacy_in_sess(), _roster_in_sess(), _roster_in_sess_s10n(), _roster_pkt_user(), _roster_set_item(), _roster_update_walker(), _sess_end_guts(), _status_pkt_sm(), _vacation_in_sess(), _vacation_pkt_user(), _verify_in_sess(), amp_build_response_pkt(), dispatch(), pres_in(), pres_probe(), pres_roster(), pres_update(), and sm_storage_rate_limit().
convenience - copy the packet id from src to dest
Definition at line 353 of file pkt.c.
References pkt_st::nad, NAD_AVAL, NAD_AVAL_L, nad_find_attr(), and nad_set_attr().
Referenced by _amp_pkt_sm(), _disco_in_sess(), _disco_pkt_sm(), _iq_private_in_sess(), _iq_vcard_in_sess(), _iq_vcard_pkt_sm(), _iq_vcard_pkt_user(), _privacy_in_sess(), _roster_in_sess(), _vacation_in_sess(), and amp_build_response_pkt().
void pkt_id_new | ( | pkt_t | pkt | ) |
create an id value for new iq packets
Definition at line 364 of file pkt.c.
References pkt_st::nad, and nad_set_attr().
Referenced by _disco_pkt_router(), _iq_private_in_sess(), _privacy_in_sess(), _roster_in_sess_s10n(), _roster_pkt_user(), _roster_set_item(), and _roster_update_walker().
void pkt_router | ( | pkt_t | pkt | ) |
Definition at line 379 of file pkt.c.
References jid_st::domain, nad_st::elems, sm_st::id, jid_free(), jid_new(), log_debug, sm_st::mm, mm_out_router(), mod_HANDLED, mod_PASS, pkt_st::nad, nad_find_elem(), nad_find_namespace(), nad_set_attr(), nad_ns_st::next, nad_elem_st::ns, nad_st::nss, pkt_error(), pkt_free(), pkt_router(), pkt_st::rfrom, sm_st::router, pkt_st::rto, pkt_st::sm, sx_nad_write, pkt_st::to, uri_SESSION, and ZONE.
Referenced by _amp_pkt_sm(), _amp_pkt_user(), _announce_broadcast_user(), _announce_in_sess(), _announce_pkt_sm(), _deliver_in_sess(), _disco_pkt_router(), _disco_pkt_sm(), _disco_pkt_user(), _echo_pkt_sm(), _help_pkt_sm(), _iq_last_pkt_sm(), _iq_last_pkt_user(), _iq_ping_pkt_sm(), _iq_time_pkt_sm(), _iq_vcard_pkt_sm(), _iq_vcard_pkt_user(), _iq_version_pkt_sm(), _offline_pkt_user(), _offline_user_delete(), _presence_pkt_sm(), _privacy_in_sess(), _roster_pkt_user(), _roster_set_item(), _status_pkt_sm(), _unblock_jid(), _vacation_pkt_user(), _verify_in_sess(), dispatch(), pkt_router(), pkt_sess(), pres_deliver(), pres_in(), pres_probe(), pres_roster(), pres_update(), and sm_storage_rate_limit().
Definition at line 459 of file pkt.c.
References sess_st::c2s, jid_st::domain, sm_st::id, sess_st::jid, jid_free(), jid_full(), jid_new(), log_debug, sm_st::mm, mm_out_sess(), mod_HANDLED, mod_PASS, pkt_st::nad, nad_set_attr(), pkt_error(), pkt_free(), pkt_router(), pkt_st::rfrom, pkt_st::rto, sess_route(), pkt_st::sm, and ZONE.
Referenced by _deliver_pkt_user(), _disco_in_sess(), _iq_ping_in_sess(), _iq_private_in_sess(), _iq_vcard_in_sess(), _offline_in_sess(), _offline_pkt_user(), _presence_pkt_user(), _privacy_in_sess(), _privacy_out_router(), _roster_in_sess(), _roster_push(), _roster_update_walker(), _session_in_router(), _vacation_in_sess(), and pres_in().
void pkt_delay | ( | pkt_t | pkt, |
time_t | t, | ||
const char * | from | ||
) |
add an x:delay stamp
Definition at line 508 of file pkt.c.
References datetime_out(), dt_DATETIME, dt_LEGACY, log_debug, pkt_st::nad, nad_add_namespace(), nad_insert_elem(), nad_set_attr(), uri_DELAY, uri_URN_DELAY, and ZONE.
Referenced by _announce_pkt_sm(), _offline_pkt_user(), and pres_update().