jabberd2
2.2.16
|
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 | |
pkt_t | pkt_dup (pkt_t pkt, const char *to, const char *from) |
duplicate pkt, replacing addresses | |
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 | |
void | pkt_id_new (pkt_t pkt) |
create an id value for new iq packets | |
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 |
Definition at line 30 of file pkt.c.
References pkt_st::type, pkt_ERROR, log_debug, ZONE, pkt_free(), stanza_error(), pkt_st::nad, pkt_tofrom(), pkt_st::to, pkt_st::rto, and jid_dup().
Referenced by dispatch(), _offline_user_delete(), _privacy_out_router(), _session_in_router(), 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, pkt_st::to, pkt_st::rfrom, pkt_st::rto, nad_set_attr(), pkt_st::nad, and jid_full().
Referenced by _disco_in_sess_result(), _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::sm, pkt_st::type, pkt_st::nad, nad_copy(), pkt_st::to, jid_new(), nad_set_attr(), jid_full(), jid_dup(), pkt_st::from, log_debug, and ZONE.
Referenced by _announce_pkt_sm(), _disco_pkt_sm(), _disco_in_sess(), _help_pkt_sm(), _iq_private_in_sess(), _offline_pkt_user(), _unblock_jid(), _privacy_in_sess(), _roster_push(), pres_update(), pres_in(), and pres_roster().
Definition at line 113 of file pkt.c.
References log_debug, ZONE, nad_find_namespace(), uri_COMPONENT, nad_free(), pkt_st::sm, sm, pkt_st::nad, NAD_ENAME_L, NAD_ENAME, nad_find_attr(), pkt_st::rto, jid_new(), NAD_AVAL, NAD_AVAL_L, pkt_st::rfrom, pkt_st::rtype, route_UNICAST, route_BROADCAST, route_ERROR, uri_CLIENT, pkt_st::to, pkt_st::from, pkt_st::type, pkt_MESSAGE, pkt_MESSAGE_CHAT, pkt_MESSAGE_HEADLINE, pkt_MESSAGE_GROUPCHAT, pkt_ERROR, pkt_PRESENCE, pkt_PRESENCE_UN, pkt_PRESENCE_PROBE, pkt_S10N, pkt_S10N_ED, pkt_S10N_UN, pkt_S10N_UNED, nad_find_elem(), NAD_ENS, NAD_CDATA_L, NAD_CDATA, pkt_st::pri, pkt_IQ, log_write(), sm_st::log, pkt_free(), pkt_IQ_RESULT, pkt_IQ_SET, nad_st::ecur, pkt_st::ns, xhash_getx(), sm_st::xmlns, NAD_NURI, NAD_NURI_L, uri_SESSION, pkt_SESS, pkt_SESS_END, pkt_SESS_CREATE, pkt_SESS_DELETE, pkt_SESS_FAILED, route_ADV_UN, and route_ADV.
Referenced by sm_sx_callback(), _announce_in_sess(), _announce_broadcast_user(), _iq_private_in_sess(), _offline_in_sess(), _offline_user_delete(), pkt_create(), and pres_in().
void pkt_free | ( | pkt_t | pkt | ) |
Definition at line 315 of file pkt.c.
References log_debug, ZONE, pkt_st::rto, jid_free(), pkt_st::rfrom, pkt_st::to, pkt_st::from, pkt_st::nad, and nad_free().
Referenced by dispatch(), _amp_pkt_user(), _amp_pkt_sm(), _announce_pkt_sm(), _deliver_in_sess(), _deliver_pkt_user(), _disco_generate_packets(), _disco_pkt_sm_populate(), _disco_pkt_sm(), _disco_in_sess(), _disco_pkt_router(), _disco_free(), _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_user(), _presence_pkt_sm(), _privacy_in_router(), _privacy_out_router(), _privacy_in_sess(), _roster_in_sess_s10n(), _roster_set_item(), _roster_in_sess(), _roster_pkt_user(), _session_in_router(), _vacation_in_sess(), _vacation_pkt_user(), pkt_error(), pkt_new(), pkt_router(), pkt_sess(), pres_update(), pres_in(), and pres_deliver().
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_new(), nad_add_namespace(), uri_COMPONENT, nad_append_elem(), uri_SESSION, uri_CLIENT, nad_append_attr(), and pkt_new().
Referenced by sm_storage_rate_limit(), dispatch(), amp_build_response_pkt(), _amp_pkt_sm(), _announce_pkt_sm(), _disco_items_result(), _disco_info_result(), _disco_agents_result(), _disco_pkt_sm(), _disco_pkt_router(), _echo_pkt_sm(), _help_pkt_sm(), _iq_private_in_sess(), _iq_vcard_to_pkt(), _iq_vcard_in_sess(), _offline_pkt_user(), _presence_pkt_sm(), _privacy_in_sess(), _roster_in_sess_s10n(), _roster_update_walker(), _roster_set_item(), _roster_in_sess(), _roster_pkt_user(), _status_pkt_sm(), _vacation_in_sess(), _vacation_pkt_user(), pres_update(), pres_in(), pres_roster(), pres_probe(), and _sess_end_guts().
convenience - copy the packet id from src to dest
Definition at line 353 of file pkt.c.
References nad_find_attr(), pkt_st::nad, nad_set_attr(), NAD_AVAL, and NAD_AVAL_L.
Referenced by amp_build_response_pkt(), _amp_pkt_sm(), _disco_pkt_sm(), _disco_in_sess(), _iq_private_in_sess(), _iq_vcard_in_sess(), _iq_vcard_pkt_sm(), _iq_vcard_pkt_user(), _privacy_in_sess(), _roster_in_sess(), and _vacation_in_sess().
void pkt_id_new | ( | pkt_t | pkt | ) |
create an id value for new iq packets
Definition at line 364 of file pkt.c.
References nad_set_attr(), and pkt_st::nad.
Referenced by _disco_pkt_router(), _iq_private_in_sess(), _privacy_in_sess(), _roster_in_sess_s10n(), _roster_update_walker(), _roster_set_item(), and _roster_pkt_user().
void pkt_router | ( | pkt_t | pkt | ) |
Definition at line 379 of file pkt.c.
References log_debug, ZONE, pkt_st::to, pkt_free(), pkt_st::rto, jid_free(), jid_new(), jid_st::domain, nad_set_attr(), pkt_st::nad, pkt_st::rfrom, pkt_st::sm, sm_st::id, mm_out_router(), sm_st::mm, mod_HANDLED, mod_PASS, nad_find_namespace(), uri_SESSION, nad_find_elem(), nad_st::elems, nad_elem_st::ns, nad_st::nss, nad_ns_st::next, sx_nad_write, sm_st::router, pkt_router(), and pkt_error().
Referenced by sm_storage_rate_limit(), dispatch(), _amp_pkt_user(), _amp_pkt_sm(), _announce_in_sess(), _announce_broadcast_user(), _announce_pkt_sm(), _deliver_in_sess(), _disco_pkt_sm(), _disco_pkt_router(), _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(), _unblock_jid(), _privacy_in_sess(), _roster_set_item(), _roster_pkt_user(), _status_pkt_sm(), _vacation_pkt_user(), pkt_router(), pkt_sess(), pres_update(), pres_in(), pres_deliver(), pres_roster(), and pres_probe().
Definition at line 459 of file pkt.c.
References log_debug, ZONE, jid_full(), sess_st::jid, pkt_st::rto, jid_free(), jid_new(), sess_st::c2s, pkt_free(), nad_set_attr(), pkt_st::nad, jid_st::domain, pkt_st::rfrom, pkt_st::sm, sm_st::id, mm_out_sess(), sm_st::mm, mod_HANDLED, mod_PASS, sess_route(), pkt_router(), and pkt_error().
Referenced by _deliver_pkt_user(), _disco_in_sess_result(), _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_out_router(), _privacy_in_sess(), _roster_push(), _roster_update_walker(), _roster_in_sess(), _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_LEGACY, nad_add_namespace(), pkt_st::nad, uri_DELAY, nad_insert_elem(), nad_set_attr(), log_debug, ZONE, dt_DATETIME, and uri_URN_DELAY.
Referenced by _announce_pkt_sm(), _offline_pkt_user(), and pres_update().