jabberd2  2.2.16
Data Structures | Typedefs | Functions
sm/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
static void _roster_freeuser (user_t user)
 free the roster
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
static int _roster_push (user_t user, pkt_t pkt, int mod_index)
 push this packet to all sessions except the given one
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
static void _roster_update_walker (const char *id, int idlen, void *val, void *arg)
 push roster XEP-0237 updates to client
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
static mod_ret_t _roster_pkt_user (mod_instance_t mi, user_t user, pkt_t pkt)
 handle incoming s10ns
static int _roster_user_load (mod_instance_t mi, user_t user)
 load the roster from the database
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, 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 jid_free(), item_st::jid, item_st::name, item_st::ngroups, and item_st::groups.

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 user_st::roster, log_debug, ZONE, jid_user(), user_st::jid, xhash_walk(), _roster_freeuser_walker(), and xhash_free().

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 user_st::sessions, sess_st::next, sess_st::module_data, pkt_dup(), jid_full(), sess_st::jid, and pkt_sess().

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

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, item_st::ver, and _roster_walker_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 log_debug, ZONE, jid_user(), mod_instance_st::sm, and sm_st::st.

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,
char *  arg 
)