jabberd2
2.2.16
|
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 |
Defines | |
#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, 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_build_response_pkt(), and _amp_pkt_user().
#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::condition, amp_rule_st::value, amp_rule_st::action, and amp_rule_st::next.
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::result, AMP_TRIGGERED, pkt_create(), pkt_st::sm, jid_full(), pkt_st::from, pkt_st::to, pkt_id(), nad_add_namespace(), pkt_st::nad, uri_AMP, nad_append_elem(), nad_append_attr(), amp_rule_st::action, amp_rule_st::condition, and amp_rule_st::value.
Referenced by _amp_pkt_user().
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] |
Definition at line 104 of file mod_amp.c.
References pkt_st::type, pkt_MESSAGE, mod_PASS, pkt_st::to, jid_compare_user(), sess_st::jid, jid_st::domain, and jid_user().
Referenced by module_init().
static mod_ret_t _amp_pkt_user | ( | mod_instance_t | mi, |
user_t | user, | ||
pkt_t | pkt | ||
) | [static] |
Definition at line 118 of file mod_amp.c.
References mod_instance_st::mod, module_st::private, pkt_st::type, pkt_MESSAGE, mod_PASS, nad_find_scoped_namespace(), pkt_st::nad, uri_AMP, nad_find_elem(), nad_find_attr(), _mod_amp_config_st::disableActionDrop, _mod_amp_config_st::disableActionAlert, _mod_amp_config_st::disableActionError, _mod_amp_config_st::disableActionNotify, NAD_AVAL, NAD_AVAL_L, AMP_INVALID_ACTION, _mod_amp_config_st::disableConditionDeliver, user_st::top, AMP_TRIGGERED, _mod_amp_config_st::offlinestorageDisabled, AMP_INVALID_VALUE, _mod_amp_config_st::disableConditionMatchResource, sess_match(), pkt_st::to, jid_st::resource, _mod_amp_config_st::disableConditionExpireAt, datetime_in(), AMP_INVALID_CONDITION, amp_build_response_pkt(), pkt_router(), amp_rule_free(), pkt_free(), and mod_HANDLED.
Referenced by module_init().
static mod_ret_t _amp_pkt_sm | ( | mod_instance_t | mi, |
pkt_t | pkt | ||
) | [static] |
Definition at line 313 of file mod_amp.c.
References mod_instance_st::mod, module_st::private, pkt_st::type, pkt_IQ, pkt_st::ns, ns_DISCO_INFO, mod_PASS, nad_find_attr(), pkt_st::nad, NAD_AVAL, uri_AMP, NAD_AVAL_L, pkt_create(), _mod_amp_config_st::sm, jid_full(), pkt_st::from, pkt_st::to, pkt_id(), pkt_free(), nad_add_namespace(), uri_DISCO_INFO, nad_append_elem(), nad_append_attr(), _mod_amp_config_st::disableActionDrop, uri_AMP_ACTION_DROP, _mod_amp_config_st::disableActionError, uri_AMP_ACTION_ERROR, _mod_amp_config_st::disableActionNotify, uri_AMP_ACTION_NOTIFY, _mod_amp_config_st::disableConditionDeliver, uri_AMP_CONDITION_DELIVER, _mod_amp_config_st::disableConditionExpireAt, uri_AMP_CONDITION_EXPIREAT, _mod_amp_config_st::disableConditionMatchResource, uri_AMP_CONDITION_MATCHRESOURCE, pkt_router(), and mod_HANDLED.
Referenced by module_init().
static void _amp_free | ( | module_t | mod | ) | [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, |
char * | arg | ||
) |
Definition at line 377 of file mod_amp.c.
References mod_instance_st::mod, module_st::init, _mod_amp_config_st::sm, module_st::mm, mm_st::sm, config_get_one(), sm_st::config, log_debug, ZONE, _mod_amp_config_st::disableActionDrop, _mod_amp_config_st::disableActionError, _mod_amp_config_st::disableActionAlert, _mod_amp_config_st::disableActionNotify, _mod_amp_config_st::disableConditionDeliver, _mod_amp_config_st::disableConditionExpireAt, _mod_amp_config_st::disableConditionMatchResource, _mod_amp_config_st::offlinestorageDisabled, module_st::private, module_st::in_sess, _amp_in_sess(), module_st::pkt_user, _amp_pkt_user(), module_st::pkt_sm, _amp_pkt_sm(), module_st::free, _amp_free(), feature_register(), and uri_AMP.