jabberd2  2.5.0
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
sm.h File Reference

data structures and prototypes for the session manager More...

#include "sx/sx.h"
#include "mio/mio.h"
#include "util/util.h"
#include "storage/storage.h"
#include "util/uri.h"

Go to the source code of this file.

Data Structures

struct  pkt_st
 packet summary data wrapper More...
 
struct  item_st
 roster items More...
 
struct  sm_st
 session manager global context More...
 
struct  user_st
 data for a single user More...
 
struct  sess_st
 There is one instance of this struct per user who is logged in to this c2s instance. More...
 
struct  mm_st
 module manager data More...
 
struct  module_st
 data for a single module More...
 
struct  mod_instance_st
 single instance of a module in a chain More...
 

Macros

#define DLLEXPORT
 
#define SM_API
 
#define ns_AUTH   (1)
 
#define ns_REGISTER   (2)
 
#define ns_ROSTER   (3)
 
#define ns_AGENTS   (4)
 
#define ns_DELAY   (5)
 
#define ns_BROWSE   (6)
 
#define ns_EVENT   (7)
 
#define ns_GATEWAY   (8)
 
#define ns_EXPIRE   (9)
 
#define ns_SEARCH   (10)
 
#define ns_DISCO   (11)
 
#define ns_DISCO_ITEMS   (12)
 
#define ns_DISCO_INFO   (13)
 
#define ns_AMP   (14)
 
#define ns_AMP_ERRORS   (15)
 
#define ns_AMP_ACTION_DROP   (16)
 
#define ns_AMP_ACTION_ERROR   (17)
 
#define ns_AMP_ACTION_NOTIFY   (18)
 
#define ns_AMP_CONDITION_DELIVER   (19)
 
#define ns_AMP_CONDITION_EXPIREAT   (20)
 
#define ns_AMP_CONDITION_MATCHRESOURCE   (21)
 

Typedefs

typedef struct sm_stsm_t
 
typedef struct user_stuser_t
 
typedef struct sess_stsess_t
 
typedef struct aci_st * aci_t
 
typedef struct mm_stmm_t
 
typedef struct pkt_stpkt_t
 packet summary data wrapper More...
 
typedef struct item_stitem_t
 roster items More...
 
typedef struct module_stmodule_t
 
typedef struct mod_instance_stmod_instance_t
 

Enumerations

enum  pkt_type_t {
  pkt_NONE = 0x00, pkt_MESSAGE = 0x10, pkt_MESSAGE_CHAT = 0x11, pkt_MESSAGE_HEADLINE = 0x12,
  pkt_MESSAGE_GROUPCHAT = 0x14, pkt_PRESENCE = 0x20, pkt_PRESENCE_UN = 0x21, pkt_PRESENCE_PROBE = 0x24,
  pkt_S10N = 0x40, pkt_S10N_ED = 0x41, pkt_S10N_UN = 0x42, pkt_S10N_UNED = 0x44,
  pkt_IQ = 0x80, pkt_IQ_SET = 0x81, pkt_IQ_RESULT = 0x82, pkt_SESS = 0x100,
  pkt_SESS_END = 0x101, pkt_SESS_CREATE = 0x102, pkt_SESS_DELETE = 0x104, pkt_SESS_FAILED = 0x08,
  pkt_SESS_MASK = 0x10f, pkt_ERROR = 0x200
}
 packet types More...
 
enum  route_type_t {
  route_SINGLE = 0x00, route_MULTI_TO = 0x10, route_MULTI_FROM = 0x11, route_NONE = 0x00,
  route_UNICAST = 0x10, route_BROADCAST = 0x11, route_ADV = 0x20, route_ADV_UN = 0x21,
  route_ERROR = 0x40
}
 route types More...
 
enum  mod_ret_t { mod_HANDLED, mod_PASS }
 module return values More...
 
enum  mod_chain_t {
  chain_SESS_START, chain_SESS_END, chain_IN_SESS, chain_IN_ROUTER,
  chain_OUT_SESS, chain_OUT_ROUTER, chain_PKT_SM, chain_PKT_USER,
  chain_PKT_ROUTER, chain_USER_LOAD, chain_USER_CREATE, chain_USER_DELETE,
  chain_USER_UNLOAD, chain_DISCO_EXTEND
}
 module chain types More...
 

Functions

SM_API xht aci_load (sm_t sm)
 
SM_API int aci_check (xht acls, const char *type, jid_t jid)
 see if a jid is in an acl More...
 
SM_API void aci_unload (xht acls)
 unload aci table More...
 
SM_API int sm_sx_callback (sx_t s, sx_event_t e, void *data, void *arg)
 our master callback More...
 
SM_API int sm_mio_callback (mio_t m, mio_action_t a, mio_fd_t fd, void *data, void *arg)
 
SM_API void sm_timestamp (time_t t, char timestamp[18])
 
SM_API void sm_c2s_action (sess_t dest, const char *action, const char *target)
 send a new action route More...
 
SM_API void sm_signature (sm_t sm, const char *str)
 this is gratuitous, but apache gets one, so why not? More...
 
SM_API int sm_register_ns (sm_t sm, const char *uri)
 register a new global ns More...
 
SM_API void sm_unregister_ns (sm_t sm, const char *uri)
 unregister a global ns More...
 
SM_API int sm_get_ns (sm_t sm, const char *uri)
 get a globally registered ns More...
 
SM_API int sm_storage_rate_limit (sm_t sm, const char *owner)
 
SM_API void dispatch (sm_t sm, pkt_t pkt)
 main packet dispatcher More...
 
SM_API pkt_t pkt_error (pkt_t pkt, int err)
 
SM_API pkt_t pkt_tofrom (pkt_t pkt)
 swap a packet's to and from attributes More...
 
SM_API pkt_t pkt_dup (pkt_t pkt, const char *to, const char *from)
 duplicate pkt, replacing addresses More...
 
SM_API pkt_t pkt_new (sm_t sm, nad_t nad)
 
SM_API void pkt_free (pkt_t pkt)
 
SM_API pkt_t pkt_create (sm_t sm, const char *elem, const char *type, const char *to, const char *from)
 
SM_API void pkt_id (pkt_t src, pkt_t dest)
 convenience - copy the packet id from src to dest More...
 
SM_API void pkt_id_new (pkt_t pkt)
 create an id value for new iq packets More...
 
SM_API void pkt_delay (pkt_t pkt, time_t t, const char *from)
 add an x:delay stamp More...
 
SM_API void pkt_router (pkt_t pkt)
 
SM_API void pkt_sess (pkt_t pkt, sess_t sess)
 
SM_API int pres_trust (user_t user, jid_t jid)
 see if the jid is trusted (ie in the roster with s10n="from" or "both") More...
 
SM_API void pres_roster (sess_t sess, item_t item)
 send presence based on roster changes More...
 
SM_API void pres_update (sess_t sess, pkt_t pres)
 presence updates from a session More...
 
SM_API void pres_error (sess_t sess, jid_t jid)
 
SM_API void pres_deliver (sess_t sess, pkt_t pres)
 outgoing directed presence More...
 
SM_API void pres_in (user_t user, pkt_t pres)
 presence updates from a remote jid - RFC 3921bis 4.3.2. More...
 
SM_API void pres_probe (user_t user)
 
SM_API void sess_route (sess_t sess, pkt_t pkt)
 send a packet to the client for this session More...
 
SM_API sess_t sess_start (sm_t sm, jid_t jid)
 
SM_API void sess_end (sess_t sess)
 
SM_API sess_t sess_match (user_t user, const char *resource)
 match a session by resource More...
 
SM_API user_t user_load (sm_t sm, jid_t jid)
 fetch user data More...
 
SM_API void user_free (user_t user)
 
SM_API int user_create (sm_t sm, jid_t jid)
 initialise a user More...
 
SM_API void user_delete (sm_t sm, jid_t jid)
 trash a user More...
 
SM_API void feature_register (sm_t sm, const char *feature)
 register a feature More...
 
SM_API void feature_unregister (sm_t sm, const char *feature)
 unregister feature More...
 
SM_API mm_t mm_new (sm_t sm)
 allocate a module manager instance, and loads the modules More...
 
SM_API void mm_free (mm_t mm)
 free a mm instance More...
 
SM_API int mm_sess_start (mm_t mm, sess_t sess)
 fire sess-start chain More...
 
SM_API void mm_sess_end (mm_t mm, sess_t sess)
 fire sess-end chain More...
 
SM_API mod_ret_t mm_in_sess (mm_t mm, sess_t sess, pkt_t pkt)
 fire in-sess chain More...
 
SM_API mod_ret_t mm_in_router (mm_t mm, pkt_t pkt)
 fire in-router chain More...
 
SM_API mod_ret_t mm_out_sess (mm_t mm, sess_t sess, pkt_t pkt)
 fire out-sess chain More...
 
SM_API mod_ret_t mm_out_router (mm_t mm, pkt_t pkt)
 fire out-router chain More...
 
SM_API mod_ret_t mm_pkt_sm (mm_t mm, pkt_t pkt)
 fire pkt-sm chain More...
 
SM_API mod_ret_t mm_pkt_user (mm_t mm, user_t user, pkt_t pkt)
 fire pkt-user chain More...
 
SM_API mod_ret_t mm_pkt_router (mm_t mm, pkt_t pkt)
 fire pkt-router chain More...
 
SM_API int mm_user_load (mm_t mm, user_t user)
 fire user-load chain More...
 
SM_API int mm_user_unload (mm_t mm, user_t user)
 fire user-unload chain More...
 
SM_API int mm_user_create (mm_t mm, jid_t jid)
 fire user-create chain More...
 
SM_API void mm_user_delete (mm_t mm, jid_t jid)
 fire user-delete chain More...
 
SM_API void mm_disco_extend (mm_t mm, pkt_t pkt)
 fire disco-extend chain More...
 

Variables

sig_atomic_t sm_lost_router
 

Detailed Description

data structures and prototypes for the session manager

Author
Jeremie Miller
Robert Norris
Date
2005/09/09 05:34:13
Revision
1.62

Definition in file sm.h.

Macro Definition Documentation

#define DLLEXPORT

Definition at line 54 of file sm.h.

#define SM_API

Definition at line 55 of file sm.h.

#define ns_AUTH   (1)

Definition at line 69 of file sm.h.

Referenced by JABBER_MAIN().

#define ns_REGISTER   (2)

Definition at line 70 of file sm.h.

Referenced by JABBER_MAIN().

#define ns_ROSTER   (3)

Definition at line 71 of file sm.h.

Referenced by _roster_in_sess(), and JABBER_MAIN().

#define ns_AGENTS   (4)

Definition at line 72 of file sm.h.

Referenced by _disco_in_sess(), _disco_pkt_sm(), and JABBER_MAIN().

#define ns_DELAY   (5)

Definition at line 73 of file sm.h.

Referenced by JABBER_MAIN().

#define ns_BROWSE   (6)

Definition at line 74 of file sm.h.

Referenced by JABBER_MAIN().

#define ns_EVENT   (7)

Definition at line 75 of file sm.h.

Referenced by JABBER_MAIN().

#define ns_GATEWAY   (8)

Definition at line 76 of file sm.h.

Referenced by JABBER_MAIN().

#define ns_EXPIRE   (9)

Definition at line 77 of file sm.h.

Referenced by JABBER_MAIN().

#define ns_SEARCH   (10)

Definition at line 78 of file sm.h.

Referenced by JABBER_MAIN().

#define ns_DISCO   (11)

Definition at line 79 of file sm.h.

Referenced by JABBER_MAIN().

#define ns_DISCO_ITEMS   (12)

Definition at line 80 of file sm.h.

Referenced by _disco_pkt_sm(), and JABBER_MAIN().

#define ns_DISCO_INFO   (13)
#define ns_AMP   (14)

Definition at line 83 of file sm.h.

#define ns_AMP_ERRORS   (15)

Definition at line 84 of file sm.h.

#define ns_AMP_ACTION_DROP   (16)

Definition at line 85 of file sm.h.

#define ns_AMP_ACTION_ERROR   (17)

Definition at line 86 of file sm.h.

#define ns_AMP_ACTION_NOTIFY   (18)

Definition at line 87 of file sm.h.

#define ns_AMP_CONDITION_DELIVER   (19)

Definition at line 88 of file sm.h.

#define ns_AMP_CONDITION_EXPIREAT   (20)

Definition at line 89 of file sm.h.

#define ns_AMP_CONDITION_MATCHRESOURCE   (21)

Definition at line 90 of file sm.h.

Typedef Documentation

typedef struct sm_st* sm_t

Definition at line 59 of file sm.h.

typedef struct user_st* user_t

Definition at line 60 of file sm.h.

typedef struct sess_st* sess_t

Definition at line 61 of file sm.h.

typedef struct aci_st* aci_t

Definition at line 62 of file sm.h.

typedef struct mm_st* mm_t

Definition at line 63 of file sm.h.

typedef struct pkt_st * pkt_t

packet summary data wrapper

typedef struct item_st * item_t

roster items

typedef struct module_st* module_t

Definition at line 361 of file sm.h.

Definition at line 362 of file sm.h.

Enumeration Type Documentation

enum pkt_type_t

packet types

Enumerator
pkt_NONE 

no packet

pkt_MESSAGE 

message

pkt_MESSAGE_CHAT 

message (chat)

pkt_MESSAGE_HEADLINE 

message (headline)

pkt_MESSAGE_GROUPCHAT 

message (groupchat)

pkt_PRESENCE 

presence

pkt_PRESENCE_UN 

presence (unavailable)

pkt_PRESENCE_PROBE 

presence (probe)

pkt_S10N 

subscribe request

pkt_S10N_ED 

subscribed response

pkt_S10N_UN 

unsubscribe request

pkt_S10N_UNED 

unsubscribed response

pkt_IQ 

info/query (get)

pkt_IQ_SET 

info/query (set)

pkt_IQ_RESULT 

info/query (result)

pkt_SESS 

session start request

pkt_SESS_END 

session end request

pkt_SESS_CREATE 

session create request

pkt_SESS_DELETE 

session delete request

pkt_SESS_FAILED 

session request failed (mask)

pkt_SESS_MASK 

session request (mask)

pkt_ERROR 

packet error

Definition at line 93 of file sm.h.

route types

Enumerator
route_SINGLE 

single component route

route_MULTI_TO 

multi component route - route by 'to'

route_MULTI_FROM 

multi component route - route by 'from'

route_NONE 

no route

route_UNICAST 

unicast

route_BROADCAST 

broadcast

route_ADV 

advertisement (available)

route_ADV_UN 

advertisement (unavailable)

route_ERROR 

route error

Definition at line 119 of file sm.h.

enum mod_ret_t

module return values

Enumerator
mod_HANDLED 

packet was handled (and freed)

mod_PASS 

packet was unhandled, should be passed to the next module

Definition at line 338 of file sm.h.

module chain types

Enumerator
chain_SESS_START 

session start, load per-session data

chain_SESS_END 

session ended, save & free per-session data

chain_IN_SESS 

packet from an active session

chain_IN_ROUTER 

packet from the router

chain_OUT_SESS 

packet to an active session

chain_OUT_ROUTER 

packet to a router

chain_PKT_SM 

packet for the sm itself

chain_PKT_USER 

packet for a user

chain_PKT_ROUTER 

packet from the router (special purpose)

chain_USER_LOAD 

user loaded, load per-user data

chain_USER_CREATE 

user creation, generate and save per-user data

chain_USER_DELETE 

user deletion, delete saved per-user data

chain_USER_UNLOAD 

user is about to be unloaded

chain_DISCO_EXTEND 

disco request, extend sm disco::info

Definition at line 344 of file sm.h.

Function Documentation

SM_API xht aci_load ( sm_t  sm)
SM_API int aci_check ( xht  acls,
const char *  type,
jid_t  jid 
)

see if a jid is in an acl

Definition at line 86 of file aci.c.

References jid_st::dirty, jid_dup(), jid_free(), jid_full(), jid_search(), jid_user(), log_debug, jid_st::resource, xhash_get(), and ZONE.

SM_API void aci_unload ( xht  acls)
SM_API int sm_sx_callback ( sx_t  s,
sx_event_t  e,
void *  data,
void *  arg 
)
SM_API int sm_mio_callback ( mio_t  m,
mio_action_t  a,
mio_fd_t  fd,
void *  data,
void *  arg 
)
SM_API void sm_timestamp ( time_t  t,
char  timestamp[18] 
)
SM_API void sm_c2s_action ( sess_t  dest,
const char *  action,
const char *  target 
)
SM_API void sm_signature ( sm_t  sm,
const char *  str 
)

this is gratuitous, but apache gets one, so why not?

Definition at line 313 of file sm.c.

References sm_st::siglen, and sm_st::signature.

Referenced by JABBER_MAIN().

SM_API int sm_register_ns ( sm_t  sm,
const char *  uri 
)

register a new global ns

Definition at line 324 of file sm.c.

References pstrdup(), xhash_count(), xhash_get(), xhash_pool(), xhash_put(), sm_st::xmlns, and sm_st::xmlns_refcount.

Referenced by module_init().

SM_API void sm_unregister_ns ( sm_t  sm,
const char *  uri 
)
SM_API int sm_get_ns ( sm_t  sm,
const char *  uri 
)

get a globally registered ns

Definition at line 349 of file sm.c.

References xhash_get(), and sm_st::xmlns.

SM_API int sm_storage_rate_limit ( sm_t  sm,
const char *  owner 
)
SM_API void dispatch ( sm_t  sm,
pkt_t  pkt 
)
SM_API pkt_t pkt_error ( pkt_t  pkt,
int  err 
)
SM_API pkt_t pkt_tofrom ( pkt_t  pkt)
SM_API pkt_t pkt_dup ( pkt_t  pkt,
const char *  to,
const char *  from 
)
SM_API pkt_t pkt_new ( sm_t  sm,
nad_t  nad 
)
SM_API void pkt_free ( pkt_t  pkt)
SM_API pkt_t pkt_create ( sm_t  sm,
const char *  elem,
const char *  type,
const char *  to,
const char *  from 
)
SM_API void pkt_id ( pkt_t  src,
pkt_t  dest 
)
SM_API void pkt_id_new ( pkt_t  pkt)

create an id value for new iq packets

Definition at line 364 of file pkt.c.

References pkt_st::nad, and nad_set_attr().

Referenced by _disco_pkt_router(), _iq_private_in_sess(), _privacy_in_sess(), _roster_in_sess_s10n(), _roster_pkt_user(), _roster_set_item(), and _roster_update_walker().

SM_API void pkt_delay ( pkt_t  pkt,
time_t  t,
const char *  from 
)
SM_API void pkt_router ( pkt_t  pkt)
SM_API void pkt_sess ( pkt_t  pkt,
sess_t  sess 
)
SM_API int pres_trust ( user_t  user,
jid_t  jid 
)

see if the jid is trusted (ie in the roster with s10n="from" or "both")

Definition at line 356 of file pres.c.

References item_st::from, user_st::jid, jid_compare_user(), jid_full(), jid_user(), user_st::roster, and xhash_get().

Referenced by _iq_last_pkt_user(), _privacy_in_sess(), _unblock_jid(), pres_deliver(), pres_in(), and pres_update().

SM_API void pres_roster ( sess_t  sess,
item_t  item 
)
SM_API void pres_update ( sess_t  sess,
pkt_t  pres 
)
SM_API void pres_error ( sess_t  sess,
jid_t  jid 
)

Definition at line 307 of file pres.c.

References sess_st::A, sess_st::E, jid_append(), jid_full(), jid_zap(), log_debug, and ZONE.

Referenced by _presence_pkt_user().

SM_API void pres_deliver ( sess_t  sess,
pkt_t  pres 
)
SM_API void pres_in ( user_t  user,
pkt_t  pkt 
)
SM_API void pres_probe ( user_t  user)
SM_API void sess_route ( sess_t  sess,
pkt_t  pkt 
)
SM_API sess_t sess_start ( sm_t  sm,
jid_t  jid 
)
SM_API void sess_end ( sess_t  sess)
SM_API sess_t sess_match ( user_t  user,
const char *  resource 
)

match a session by resource

Definition at line 206 of file sess.c.

References sess_st::jid, sess_st::next, jid_st::resource, and user_st::sessions.

Referenced by _amp_pkt_user(), _deliver_pkt_user(), _presence_pkt_user(), _privacy_in_router(), and _privacy_out_router().

SM_API user_t user_load ( sm_t  sm,
jid_t  jid 
)
SM_API void user_free ( user_t  user)

Definition at line 80 of file user.c.

References user_st::jid, jid_user(), log_debug, user_st::p, pool_free(), user_st::sm, sm_st::users, xhash_zap(), and ZONE.

Referenced by dispatch(), and sess_end().

SM_API int user_create ( sm_t  sm,
jid_t  jid 
)
SM_API void user_delete ( sm_t  sm,
jid_t  jid 
)
SM_API void feature_register ( sm_t  sm,
const char *  feature 
)

register a feature

Definition at line 37 of file feature.c.

References sm_st::features, log_debug, pstrdup(), xhash_get(), xhash_pool(), xhash_put(), and ZONE.

Referenced by JABBER_MAIN(), and module_init().

SM_API void feature_unregister ( sm_t  sm,
const char *  feature 
)
SM_API mm_t mm_new ( sm_t  sm)
SM_API void mm_free ( mm_t  mm)
SM_API int mm_sess_start ( mm_t  mm,
sess_t  sess 
)

fire sess-start chain

fire sess-start chain

Definition at line 387 of file mm.c.

References log_debug, mod_instance_st::mod, module_st::name, mm_st::nsess_start, mm_st::sess_start, module_st::sess_start, and ZONE.

Referenced by sess_start().

SM_API void mm_sess_end ( mm_t  mm,
sess_t  sess 
)

fire sess-end chain

fire sess-end chain

Definition at line 418 of file mm.c.

References log_debug, mod_instance_st::mod, module_st::name, mm_st::nsess_end, mm_st::sess_end, module_st::sess_end, and ZONE.

Referenced by _sess_end_guts().

SM_API mod_ret_t mm_in_sess ( mm_t  mm,
sess_t  sess,
pkt_t  pkt 
)

fire in-sess chain

fire in-sess chain

Definition at line 444 of file mm.c.

References mm_st::in_sess, module_st::in_sess, log_debug, mod_instance_st::mod, mod_PASS, module_st::name, mm_st::nin_sess, and ZONE.

Referenced by _sess_end_guts(), and _session_in_router().

SM_API mod_ret_t mm_in_router ( mm_t  mm,
pkt_t  pkt 
)

fire in-router chain

fire in-router chain

Definition at line 476 of file mm.c.

References mm_st::in_router, module_st::in_router, log_debug, mod_instance_st::mod, mod_PASS, module_st::name, mm_st::nin_router, and ZONE.

Referenced by dispatch().

SM_API mod_ret_t mm_out_sess ( mm_t  mm,
sess_t  sess,
pkt_t  pkt 
)

fire out-sess chain

fire out-sess chain

Definition at line 508 of file mm.c.

References log_debug, mod_instance_st::mod, mod_PASS, module_st::name, mm_st::nout_sess, mm_st::out_sess, module_st::out_sess, and ZONE.

Referenced by pkt_sess().

SM_API mod_ret_t mm_out_router ( mm_t  mm,
pkt_t  pkt 
)

fire out-router chain

fire out-router chain

Definition at line 539 of file mm.c.

References log_debug, mod_instance_st::mod, mod_PASS, module_st::name, mm_st::nout_router, mm_st::out_router, module_st::out_router, and ZONE.

Referenced by pkt_router().

SM_API mod_ret_t mm_pkt_sm ( mm_t  mm,
pkt_t  pkt 
)

fire pkt-sm chain

fire pkt-sm chain

Definition at line 570 of file mm.c.

References log_debug, mod_instance_st::mod, mod_PASS, module_st::name, mm_st::npkt_sm, mm_st::pkt_sm, module_st::pkt_sm, and ZONE.

Referenced by dispatch().

SM_API mod_ret_t mm_pkt_user ( mm_t  mm,
user_t  user,
pkt_t  pkt 
)

fire pkt-user chain

fire pkt-user chain

Definition at line 600 of file mm.c.

References log_debug, mod_instance_st::mod, mod_PASS, module_st::name, mm_st::npkt_user, mm_st::pkt_user, module_st::pkt_user, and ZONE.

Referenced by dispatch().

SM_API mod_ret_t mm_pkt_router ( mm_t  mm,
pkt_t  pkt 
)

fire pkt-router chain

fire pkt-router chain

Definition at line 631 of file mm.c.

References log_debug, mod_instance_st::mod, mod_PASS, module_st::name, mm_st::npkt_router, mm_st::pkt_router, module_st::pkt_router, and ZONE.

Referenced by dispatch().

SM_API int mm_user_load ( mm_t  mm,
user_t  user 
)

fire user-load chain

fire user-load chain

Definition at line 662 of file mm.c.

References log_debug, mod_instance_st::mod, module_st::name, mm_st::nuser_load, mm_st::user_load, module_st::user_load, and ZONE.

Referenced by user_load().

SM_API int mm_user_unload ( mm_t  mm,
user_t  user 
)

fire user-unload chain

fire user-unload chain

Definition at line 693 of file mm.c.

References log_debug, mod_instance_st::mod, module_st::name, mm_st::nuser_unload, mm_st::user_unload, module_st::user_unload, and ZONE.

Referenced by sess_end().

SM_API int mm_user_create ( mm_t  mm,
jid_t  jid 
)

fire user-create chain

fire user-create chain

Definition at line 724 of file mm.c.

References log_debug, mod_instance_st::mod, module_st::name, mm_st::nuser_create, mm_st::user_create, module_st::user_create, and ZONE.

Referenced by user_create().

SM_API void mm_user_delete ( mm_t  mm,
jid_t  jid 
)

fire user-delete chain

fire user-delete chain

Definition at line 755 of file mm.c.

References log_debug, mod_instance_st::mod, module_st::name, mm_st::nuser_delete, mm_st::user_delete, module_st::user_delete, and ZONE.

Referenced by user_create(), and user_delete().

SM_API void mm_disco_extend ( mm_t  mm,
pkt_t  pkt 
)

fire disco-extend chain

fire disco-extend chain

Definition at line 781 of file mm.c.

References mm_st::disco_extend, module_st::disco_extend, log_debug, mod_instance_st::mod, module_st::name, mm_st::ndisco_extend, and ZONE.

Referenced by _disco_info_result().

Variable Documentation

sig_atomic_t sm_lost_router

Definition at line 30 of file sm.c.

Referenced by _sm_router_connect(), _sm_signal(), JABBER_MAIN(), and sm_mio_callback().