jabberd2
2.6.1
|
user profiles (vcard) More...
#include "sm.h"
Go to the source code of this file.
Data Structures | |
struct | _mod_iq_vcard_st |
Macros | |
#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, const char *arg) |
Variables | |
static int | ns_VCARD = 0 |
static const char * | _iq_vcard_map [] |
these are the vcard attributes that gabber supports. More... | |
#define uri_VCARD "vcard-temp" |
Definition at line 30 of file mod_iq_vcard.c.
Referenced by _iq_vcard_free(), _iq_vcard_to_pkt(), 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 |
Definition at line 98 of file mod_iq_vcard.c.
References _iq_vcard_map, log_debug, mod_instance_st::mod, pkt_st::nad, NAD_CDATA, NAD_CDATA_L, NAD_ENS, nad_find_elem(), module_st::private, _mod_iq_vcard_st::vcard_max_field_size_avatar, _mod_iq_vcard_st::vcard_max_field_size_default, and ZONE.
Referenced by _iq_vcard_in_sess().
Definition at line 154 of file mod_iq_vcard.c.
References _iq_vcard_map, nad_elem_st::depth, nad_st::elems, log_debug, pkt_st::nad, nad_add_namespace(), nad_append_cdata(), nad_append_elem(), NAD_ENS, nad_find_elem(), pkt_create(), uri_VCARD, and ZONE.
Referenced by _iq_vcard_in_sess(), _iq_vcard_pkt_sm(), and _iq_vcard_pkt_user().
|
static |
Definition at line 203 of file mod_iq_vcard.c.
References _iq_vcard_to_object(), _iq_vcard_to_pkt(), sess_st::jid, jid_user(), mod_HANDLED, mod_PASS, pkt_st::nad, nad_set_attr(), pkt_st::ns, ns_VCARD, pkt_create(), pkt_free(), pkt_id(), pkt_IQ, pkt_IQ_SET, pkt_sess(), user_st::sm, sm_storage_rate_limit(), sm_st::st, stanza_err_FEATURE_NOT_IMPLEMENTED, stanza_err_INTERNAL_SERVER_ERROR, stanza_err_RESOURCE_CONSTRAINT, pkt_st::to, pkt_st::type, and sess_st::user.
Referenced by module_init().
|
static |
Definition at line 289 of file mod_iq_vcard.c.
References _iq_vcard_to_pkt(), jid_st::domain, pkt_st::from, jid_dup(), jid_full(), mod_HANDLED, mod_PASS, pkt_st::nad, nad_set_attr(), pkt_st::ns, ns_VCARD, pkt_free(), pkt_id(), pkt_IQ, pkt_IQ_SET, pkt_router(), mod_instance_st::sm, sm_st::st, stanza_err_FEATURE_NOT_IMPLEMENTED, stanza_err_FORBIDDEN, stanza_err_INTERNAL_SERVER_ERROR, stanza_err_ITEM_NOT_FOUND, pkt_st::to, and pkt_st::type.
Referenced by module_init().
|
static |
Definition at line 338 of file mod_iq_vcard.c.
References _iq_vcard_to_pkt(), pkt_st::from, user_st::jid, jid_dup(), jid_full(), jid_user(), mod_HANDLED, mod_PASS, pkt_st::nad, nad_set_attr(), pkt_st::ns, ns_VCARD, pkt_free(), pkt_id(), pkt_IQ, pkt_IQ_SET, pkt_router(), jid_st::resource, user_st::sm, sm_storage_rate_limit(), sm_st::st, stanza_err_FEATURE_NOT_IMPLEMENTED, stanza_err_FORBIDDEN, stanza_err_INTERNAL_SERVER_ERROR, stanza_err_RESOURCE_CONSTRAINT, stanza_err_SERVICE_UNAVAILABLE, pkt_st::to, and pkt_st::type.
Referenced by module_init().
|
static |
Definition at line 389 of file mod_iq_vcard.c.
References jid_user(), log_debug, mod_instance_st::sm, sm_st::st, and ZONE.
Referenced by module_init().
|
static |
Definition at line 395 of file mod_iq_vcard.c.
References feature_unregister(), module_st::mm, module_st::private, mm_st::sm, sm_unregister_ns(), and uri_VCARD.
Referenced by module_init().
DLLEXPORT int module_init | ( | mod_instance_t | mi, |
const char * | arg | ||
) |
Definition at line 401 of file mod_iq_vcard.c.
References _iq_vcard_free(), _iq_vcard_in_sess(), _iq_vcard_pkt_sm(), _iq_vcard_pkt_user(), _iq_vcard_user_delete(), sm_st::config, config_get_one(), feature_register(), module_st::free, module_st::in_sess, module_st::init, j_atoi(), module_st::mm, mod_instance_st::mod, ns_VCARD, module_st::pkt_sm, module_st::pkt_user, module_st::private, mm_st::sm, sm_register_ns(), uri_VCARD, module_st::user_delete, VCARD_MAX_FIELD_SIZE, _mod_iq_vcard_st::vcard_max_field_size_avatar, and _mod_iq_vcard_st::vcard_max_field_size_default.
|
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().
|
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().