jabberd2  2.5.0
Data Structures | Typedefs | Functions
mod_roster.c File Reference

roster managment & subscriptions More...

#include "sm.h"

Go to the source code of this file.

Data Structures

struct  _mod_roster_st
 
struct  _roster_walker_st
 

Typedefs

typedef struct _mod_roster_stmod_roster_t
 
typedef struct _roster_walker_stroster_walker_t
 

Functions

static void _roster_freeuser_walker (const char *key, int keylen, void *val, void *arg)
 free a single roster item More...
 
static void _roster_freeuser (user_t user)
 free the roster More...
 
static void _roster_save_item (user_t user, item_t item)
 
static void _roster_insert_item (pkt_t pkt, item_t item, int elem)
 insert a roster item into this pkt, starting at elem More...
 
static int _roster_push (user_t user, pkt_t pkt, int mod_index)
 push this packet to all sessions except the given one More...
 
static mod_ret_t _roster_in_sess_s10n (mod_instance_t mi, sess_t sess, pkt_t pkt)
 
static void _roster_get_walker (const char *id, int idlen, void *val, void *arg)
 build the iq:roster packet from the hash More...
 
static void _roster_update_walker (const char *id, int idlen, void *val, void *arg)
 push roster XEP-0237 updates to client More...
 
static void _roster_set_item (pkt_t pkt, int elem, sess_t sess, mod_instance_t mi)
 
static mod_ret_t _roster_in_sess (mod_instance_t mi, sess_t sess, pkt_t pkt)
 our main handler for packets arriving from a session More...
 
static mod_ret_t _roster_pkt_user (mod_instance_t mi, user_t user, pkt_t pkt)
 handle incoming s10ns More...
 
static int _roster_user_load (mod_instance_t mi, user_t user)
 load the roster from the database More...
 
static void _roster_user_delete (mod_instance_t mi, jid_t jid)
 
static void _roster_free (module_t mod)
 
DLLEXPORT int module_init (mod_instance_t mi, const char *arg)
 

Detailed Description

roster managment & subscriptions

Author
Robert Norris
Date
2005/09/09 05:34:13
Revision
1.61

Definition in file mod_roster.c.

Typedef Documentation

typedef struct _mod_roster_st * mod_roster_t

Function Documentation

static void _roster_freeuser_walker ( const char *  key,
int  keylen,
void *  val,
void *  arg 
)
static

free a single roster item

Definition at line 42 of file mod_roster.c.

References item_st::groups, item_st::jid, jid_free(), item_st::name, and item_st::ngroups.

Referenced by _roster_freeuser(), _roster_set_item(), and _roster_user_load().

static void _roster_freeuser ( user_t  user)
static

free the roster

Definition at line 60 of file mod_roster.c.

References _roster_freeuser_walker(), user_st::jid, jid_user(), log_debug, user_st::roster, xhash_free(), xhash_walk(), and ZONE.

Referenced by _roster_user_load().

static void _roster_save_item ( user_t  user,
item_t  item 
)
static
static void _roster_insert_item ( pkt_t  pkt,
item_t  item,
int  elem 
)
static
static int _roster_push ( user_t  user,
pkt_t  pkt,
int  mod_index 
)
static

push this packet to all sessions except the given one

Definition at line 152 of file mod_roster.c.

References sess_st::jid, jid_full(), sess_st::module_data, sess_st::next, pkt_dup(), pkt_sess(), and user_st::sessions.

Referenced by _roster_in_sess_s10n(), _roster_pkt_user(), and _roster_set_item().

static mod_ret_t _roster_in_sess_s10n ( mod_instance_t  mi,
sess_t  sess,
pkt_t  pkt 
)
static
static void _roster_get_walker ( const char *  id,
int  idlen,
void *  val,
void *  arg 
)
static

build the iq:roster packet from the hash

Definition at line 271 of file mod_roster.c.

References _roster_insert_item(), _roster_walker_st::pkt, _roster_walker_st::ver, and item_st::ver.

Referenced by _roster_in_sess().

static void _roster_update_walker ( const char *  id,
int  idlen,
void *  val,
void *  arg 
)
static
static void _roster_set_item ( pkt_t  pkt,
int  elem,
sess_t  sess,
mod_instance_t  mi 
)
static
static mod_ret_t _roster_in_sess ( mod_instance_t  mi,
sess_t  sess,
pkt_t  pkt 
)
static
static mod_ret_t _roster_pkt_user ( mod_instance_t  mi,
user_t  user,
pkt_t  pkt 
)
static
static int _roster_user_load ( mod_instance_t  mi,
user_t  user 
)
static
static void _roster_user_delete ( mod_instance_t  mi,
jid_t  jid 
)
static

Definition at line 818 of file mod_roster.c.

References jid_user(), log_debug, mod_instance_st::sm, sm_st::st, and ZONE.

Referenced by module_init().

static void _roster_free ( module_t  mod)
static

Definition at line 825 of file mod_roster.c.

References module_st::private.

Referenced by module_init().

DLLEXPORT int module_init ( mod_instance_t  mi,
const char *  arg 
)