jabberd2
2.3.6
|
Advanced Message Processing (JEP-0079) module. More...
Go to the source code of this file.
Data Structures | |
struct | _mod_amp_config_st |
struct | amp_rule_st |
Macros | |
#define | _GNU_SOURCE |
#define | AMP_TRIGGERED 1 |
#define | AMP_INVALID_RULE 2 |
#define | AMP_INVALID_CONDITION 3 |
#define | AMP_INVALID_ACTION 4 |
#define | AMP_INVALID_VALUE 5 |
#define | AMP_NOT_ACCEPTABLE 6 |
Typedefs | |
typedef struct _mod_amp_config_st * | mod_amp_config_t |
typedef struct amp_rule_st * | amp_rule_t |
Functions | |
void | amp_rule_free (amp_rule_t rule) |
pkt_t | amp_build_response_pkt (pkt_t pkt, amp_rule_t rule) |
void | amp_error_pkt (pkt_t pkt, amp_rule_t rule) |
static mod_ret_t | _amp_in_sess (mod_instance_t mi, sess_t sess, pkt_t pkt) |
static mod_ret_t | _amp_pkt_user (mod_instance_t mi, user_t user, pkt_t pkt) |
static mod_ret_t | _amp_pkt_sm (mod_instance_t mi, pkt_t pkt) |
static void | _amp_free (module_t mod) |
DLLEXPORT int | module_init (mod_instance_t mi, const char *arg) |
Advanced Message Processing (JEP-0079) module.
Definition in file mod_amp.c.
#define AMP_TRIGGERED 1 |
Definition at line 45 of file mod_amp.c.
Referenced by _amp_pkt_user(), and amp_build_response_pkt().
#define AMP_INVALID_CONDITION 3 |
Definition at line 47 of file mod_amp.c.
Referenced by _amp_pkt_user().
#define AMP_INVALID_ACTION 4 |
Definition at line 48 of file mod_amp.c.
Referenced by _amp_pkt_user().
#define AMP_INVALID_VALUE 5 |
Definition at line 49 of file mod_amp.c.
Referenced by _amp_pkt_user().
typedef struct _mod_amp_config_st * mod_amp_config_t |
typedef struct amp_rule_st * amp_rule_t |
void amp_rule_free | ( | amp_rule_t | rule | ) |
Definition at line 61 of file mod_amp.c.
References amp_rule_st::action, amp_rule_st::condition, amp_rule_st::next, and amp_rule_st::value.
Referenced by _amp_pkt_user().
pkt_t amp_build_response_pkt | ( | pkt_t | pkt, |
amp_rule_t | rule | ||
) |
Definition at line 74 of file mod_amp.c.
References amp_rule_st::action, AMP_TRIGGERED, amp_rule_st::condition, pkt_st::from, jid_full(), pkt_st::nad, nad_add_namespace(), nad_append_attr(), nad_append_elem(), pkt_create(), pkt_id(), amp_rule_st::result, pkt_st::sm, pkt_st::to, uri_AMP, and amp_rule_st::value.
Referenced by _amp_pkt_user().
void amp_error_pkt | ( | pkt_t | pkt, |
amp_rule_t | rule | ||
) |
|
static |
Definition at line 104 of file mod_amp.c.
References jid_st::domain, sess_st::jid, jid_compare_user(), jid_user(), mod_PASS, pkt_MESSAGE, pkt_st::to, and pkt_st::type.
Referenced by module_init().
|
static |
Definition at line 118 of file mod_amp.c.
References amp_build_response_pkt(), AMP_INVALID_ACTION, AMP_INVALID_CONDITION, AMP_INVALID_VALUE, amp_rule_free(), AMP_TRIGGERED, datetime_in(), _mod_amp_config_st::disableActionAlert, _mod_amp_config_st::disableActionDrop, _mod_amp_config_st::disableActionError, _mod_amp_config_st::disableActionNotify, _mod_amp_config_st::disableConditionDeliver, _mod_amp_config_st::disableConditionExpireAt, _mod_amp_config_st::disableConditionMatchResource, mod_instance_st::mod, mod_HANDLED, mod_PASS, pkt_st::nad, NAD_AVAL, NAD_AVAL_L, nad_find_attr(), nad_find_elem(), nad_find_scoped_namespace(), _mod_amp_config_st::offlinestorageDisabled, pkt_free(), pkt_MESSAGE, pkt_router(), module_st::private, jid_st::resource, sess_match(), pkt_st::to, user_st::top, pkt_st::type, and uri_AMP.
Referenced by module_init().
|
static |
Definition at line 313 of file mod_amp.c.
References _mod_amp_config_st::disableActionDrop, _mod_amp_config_st::disableActionError, _mod_amp_config_st::disableActionNotify, _mod_amp_config_st::disableConditionDeliver, _mod_amp_config_st::disableConditionExpireAt, _mod_amp_config_st::disableConditionMatchResource, pkt_st::from, jid_full(), mod_instance_st::mod, mod_HANDLED, mod_PASS, pkt_st::nad, nad_add_namespace(), nad_append_attr(), nad_append_elem(), NAD_AVAL, NAD_AVAL_L, nad_find_attr(), pkt_st::ns, ns_DISCO_INFO, pkt_create(), pkt_free(), pkt_id(), pkt_IQ, pkt_router(), module_st::private, _mod_amp_config_st::sm, pkt_st::to, pkt_st::type, uri_AMP, uri_AMP_ACTION_DROP, uri_AMP_ACTION_ERROR, uri_AMP_ACTION_NOTIFY, uri_AMP_CONDITION_DELIVER, uri_AMP_CONDITION_EXPIREAT, uri_AMP_CONDITION_MATCHRESOURCE, and uri_DISCO_INFO.
Referenced by module_init().
|
static |
Definition at line 373 of file mod_amp.c.
References module_st::private.
Referenced by module_init().
DLLEXPORT int module_init | ( | mod_instance_t | mi, |
const char * | arg | ||
) |
Definition at line 377 of file mod_amp.c.
References _amp_free(), _amp_in_sess(), _amp_pkt_sm(), _amp_pkt_user(), sm_st::config, config_get_one(), _mod_amp_config_st::disableActionAlert, _mod_amp_config_st::disableActionDrop, _mod_amp_config_st::disableActionError, _mod_amp_config_st::disableActionNotify, _mod_amp_config_st::disableConditionDeliver, _mod_amp_config_st::disableConditionExpireAt, _mod_amp_config_st::disableConditionMatchResource, feature_register(), module_st::free, module_st::in_sess, module_st::init, log_debug, module_st::mm, mod_instance_st::mod, _mod_amp_config_st::offlinestorageDisabled, module_st::pkt_sm, module_st::pkt_user, module_st::private, _mod_amp_config_st::sm, mm_st::sm, uri_AMP, and ZONE.