jabberd2
2.2.16
|
user profiles (vcard) More...
#include "sm.h"
Go to the source code of this file.
Data Structures | |
struct | _mod_iq_vcard_st |
Defines | |
#define | uri_VCARD "vcard-temp" |
#define | VCARD_MAX_FIELD_SIZE (16384) |
Typedefs | |
typedef struct _mod_iq_vcard_st * | mod_iq_vcard_t |
Functions | |
static os_t | _iq_vcard_to_object (mod_instance_t mi, pkt_t pkt) |
static pkt_t | _iq_vcard_to_pkt (sm_t sm, os_t os) |
static mod_ret_t | _iq_vcard_in_sess (mod_instance_t mi, sess_t sess, pkt_t pkt) |
static mod_ret_t | _iq_vcard_pkt_sm (mod_instance_t mi, pkt_t pkt) |
static mod_ret_t | _iq_vcard_pkt_user (mod_instance_t mi, user_t user, pkt_t pkt) |
static void | _iq_vcard_user_delete (mod_instance_t mi, jid_t jid) |
static void | _iq_vcard_free (module_t mod) |
DLLEXPORT int | module_init (mod_instance_t mi, char *arg) |
Variables | |
static int | ns_VCARD = 0 |
static const char * | _iq_vcard_map [] |
these are the vcard attributes that gabber supports. |
#define uri_VCARD "vcard-temp" |
Definition at line 30 of file mod_iq_vcard.c.
Referenced by _iq_vcard_to_pkt(), _iq_vcard_free(), and module_init().
#define VCARD_MAX_FIELD_SIZE (16384) |
Definition at line 33 of file mod_iq_vcard.c.
Referenced by module_init().
typedef struct _mod_iq_vcard_st * mod_iq_vcard_t |
static os_t _iq_vcard_to_object | ( | mod_instance_t | mi, |
pkt_t | pkt | ||
) | [static] |
Definition at line 98 of file mod_iq_vcard.c.
References mod_instance_st::mod, module_st::private, log_debug, ZONE, _iq_vcard_map, _mod_iq_vcard_st::vcard_max_field_size_avatar, _mod_iq_vcard_st::vcard_max_field_size_default, nad_find_elem(), pkt_st::nad, NAD_ENS, NAD_CDATA_L, and NAD_CDATA.
Referenced by _iq_vcard_in_sess().
Definition at line 154 of file mod_iq_vcard.c.
References log_debug, ZONE, pkt_create(), nad_append_elem(), pkt_st::nad, nad_add_namespace(), uri_VCARD, _iq_vcard_map, nad_find_elem(), NAD_ENS, nad_st::elems, nad_elem_st::depth, and nad_append_cdata().
Referenced by _iq_vcard_in_sess(), _iq_vcard_pkt_sm(), and _iq_vcard_pkt_user().
static mod_ret_t _iq_vcard_in_sess | ( | mod_instance_t | mi, |
sess_t | sess, | ||
pkt_t | pkt | ||
) | [static] |
Definition at line 200 of file mod_iq_vcard.c.
References pkt_st::to, pkt_st::type, pkt_IQ, pkt_IQ_SET, pkt_st::ns, ns_VCARD, mod_PASS, sm_storage_rate_limit(), sess_st::user, user_st::sm, jid_user(), sess_st::jid, stanza_err_RESOURCE_CONSTRAINT, sm_st::st, stanza_err_INTERNAL_SERVER_ERROR, stanza_err_FEATURE_NOT_IMPLEMENTED, nad_set_attr(), pkt_st::nad, pkt_sess(), mod_HANDLED, _iq_vcard_to_pkt(), pkt_id(), pkt_free(), _iq_vcard_to_object(), and pkt_create().
Referenced by module_init().
static mod_ret_t _iq_vcard_pkt_sm | ( | mod_instance_t | mi, |
pkt_t | pkt | ||
) | [static] |
Definition at line 286 of file mod_iq_vcard.c.
References pkt_st::type, pkt_IQ, pkt_IQ_SET, pkt_st::ns, ns_VCARD, mod_PASS, stanza_err_FORBIDDEN, mod_instance_st::sm, sm_st::st, pkt_st::to, jid_st::domain, stanza_err_INTERNAL_SERVER_ERROR, stanza_err_FEATURE_NOT_IMPLEMENTED, stanza_err_ITEM_NOT_FOUND, _iq_vcard_to_pkt(), jid_dup(), pkt_st::from, nad_set_attr(), pkt_st::nad, jid_full(), pkt_id(), pkt_router(), pkt_free(), and mod_HANDLED.
Referenced by module_init().
static mod_ret_t _iq_vcard_pkt_user | ( | mod_instance_t | mi, |
user_t | user, | ||
pkt_t | pkt | ||
) | [static] |
Definition at line 335 of file mod_iq_vcard.c.
References pkt_st::type, pkt_IQ, pkt_IQ_SET, pkt_st::ns, ns_VCARD, pkt_st::to, jid_st::resource, mod_PASS, stanza_err_FORBIDDEN, sm_storage_rate_limit(), user_st::sm, pkt_st::from, stanza_err_RESOURCE_CONSTRAINT, sm_st::st, jid_user(), user_st::jid, stanza_err_INTERNAL_SERVER_ERROR, stanza_err_FEATURE_NOT_IMPLEMENTED, stanza_err_SERVICE_UNAVAILABLE, _iq_vcard_to_pkt(), jid_dup(), nad_set_attr(), pkt_st::nad, jid_full(), pkt_id(), pkt_router(), pkt_free(), and mod_HANDLED.
Referenced by module_init().
static void _iq_vcard_user_delete | ( | mod_instance_t | mi, |
jid_t | jid | ||
) | [static] |
Definition at line 386 of file mod_iq_vcard.c.
References log_debug, ZONE, jid_user(), mod_instance_st::sm, and sm_st::st.
Referenced by module_init().
static void _iq_vcard_free | ( | module_t | mod | ) | [static] |
Definition at line 392 of file mod_iq_vcard.c.
References sm_unregister_ns(), module_st::mm, mm_st::sm, uri_VCARD, feature_unregister(), and module_st::private.
Referenced by module_init().
DLLEXPORT int module_init | ( | mod_instance_t | mi, |
char * | arg | ||
) |
Definition at line 398 of file mod_iq_vcard.c.
References mod_instance_st::mod, module_st::init, module_st::pkt_sm, _iq_vcard_pkt_sm(), module_st::in_sess, _iq_vcard_in_sess(), module_st::pkt_user, _iq_vcard_pkt_user(), module_st::user_delete, _iq_vcard_user_delete(), module_st::free, _iq_vcard_free(), ns_VCARD, sm_register_ns(), module_st::mm, mm_st::sm, uri_VCARD, feature_register(), _mod_iq_vcard_st::vcard_max_field_size_default, j_atoi(), config_get_one(), sm_st::config, VCARD_MAX_FIELD_SIZE, _mod_iq_vcard_st::vcard_max_field_size_avatar, and module_st::private.
int ns_VCARD = 0 [static] |
Definition at line 31 of file mod_iq_vcard.c.
Referenced by _iq_vcard_in_sess(), _iq_vcard_pkt_sm(), _iq_vcard_pkt_user(), and module_init().
const char* _iq_vcard_map[] [static] |
these are the vcard attributes that gabber supports.
they're also all strings, and thus easy to automate. there might be more in regular use, we need to check that out. one day, when we're all using real foaf profiles, we'll have bigger things to worry about :)
darco(2005-09-15): Added quite a few more fields, including those necessary for vCard avatar support.
Definition at line 50 of file mod_iq_vcard.c.
Referenced by _iq_vcard_to_object(), and _iq_vcard_to_pkt().