Strophe  0.10
XMPP client library
Data Structures | Macros | Typedefs | Enumerations | Functions
common.h File Reference

Data Structures

struct  xmpp_handlist_t
 handlers More...
 
struct  _xmpp_connlist_t
 
struct  xmpp_ctx_t
 
struct  xmpp_send_queue_t
 
struct  xmpp_conn_t
 
struct  xmpp_stanza_t
 

Macros

#define UNUSED(x)   ((void)(x))
 
#define MAX_DOMAIN_LEN   256
 
#define SASL_MASK_PLAIN   (1 << 0)
 
#define SASL_MASK_DIGESTMD5   (1 << 1)
 
#define SASL_MASK_ANONYMOUS   (1 << 2)
 
#define SASL_MASK_SCRAMSHA1   (1 << 3)
 
#define SASL_MASK_SCRAMSHA256   (1 << 4)
 
#define SASL_MASK_SCRAMSHA512   (1 << 5)
 
#define SASL_MASK_SCRAM   (SASL_MASK_SCRAMSHA1 | SASL_MASK_SCRAMSHA256 | SASL_MASK_SCRAMSHA512)
 

Typedefs

typedef void(* xmpp_open_handler) (xmpp_conn_t *const conn)
 

Enumerations

enum  xmpp_loop_status_t { XMPP_LOOP_NOTSTARTED, XMPP_LOOP_RUNNING, XMPP_LOOP_QUIT }
 run-time context More...
 
enum  xmpp_conn_state_t { XMPP_STATE_DISCONNECTED, XMPP_STATE_CONNECTING, XMPP_STATE_CONNECTED }
 connection More...
 
enum  { XMPP_PORT_CLIENT = 5222, XMPP_PORT_CLIENT_LEGACY_SSL = 5223, XMPP_PORT_COMPONENT = 5347 }
 
enum  xmpp_stanza_type_t { XMPP_STANZA_UNKNOWN, XMPP_STANZA_TEXT, XMPP_STANZA_TAG }
 

Functions

void * xmpp_alloc (const xmpp_ctx_t *const ctx, const size_t size)
 Allocate memory in a Strophe context. More...
 
void * xmpp_realloc (const xmpp_ctx_t *const ctx, void *p, const size_t size)
 Reallocate memory in a Strophe context. More...
 
char * xmpp_strdup (const xmpp_ctx_t *const ctx, const char *const s)
 implement our own strdup that uses the ctx allocator More...
 
void xmpp_log (const xmpp_ctx_t *const ctx, const xmpp_log_level_t level, const char *const area, const char *const fmt, va_list ap)
 Write a log message to the logger. More...
 
void xmpp_error (const xmpp_ctx_t *const ctx, const char *const area, const char *const fmt,...)
 Write to the log at the ERROR level. More...
 
void xmpp_warn (const xmpp_ctx_t *const ctx, const char *const area, const char *const fmt,...)
 Write to the log at the WARN level. More...
 
void xmpp_info (const xmpp_ctx_t *const ctx, const char *const area, const char *const fmt,...)
 Write to the log at the INFO level. More...
 
void xmpp_debug (const xmpp_ctx_t *const ctx, const char *const area, const char *const fmt,...)
 Write to the log at the DEBUG level. More...
 
void conn_disconnect (xmpp_conn_t *const conn)
 Disconnect from the XMPP server. More...
 
void conn_disconnect_clean (xmpp_conn_t *const conn)
 Cleanly disconnect the connection. More...
 
void conn_established (xmpp_conn_t *const conn)
 
void conn_open_stream (xmpp_conn_t *const conn)
 Send the opening <stream:stream> tag to the server. More...
 
int conn_tls_start (xmpp_conn_t *const conn)
 
void conn_prepare_reset (xmpp_conn_t *const conn, xmpp_open_handler handler)
 
void conn_parser_reset (xmpp_conn_t *const conn)
 
void handler_fire_stanza (xmpp_conn_t *const conn, xmpp_stanza_t *const stanza)
 Fire off all stanza handlers that match. More...
 
uint64_t handler_fire_timed (xmpp_ctx_t *const ctx)
 Fire off all timed handlers that are ready. More...
 
void handler_reset_timed (xmpp_conn_t *conn, int user_only)
 Reset all timed handlers. More...
 
void handler_add_timed (xmpp_conn_t *const conn, xmpp_timed_handler handler, const unsigned long period, void *const userdata)
 Add a timed system handler. More...
 
void handler_add_id (xmpp_conn_t *const conn, xmpp_handler handler, const char *const id, void *const userdata)
 Add an id based system stanza handler. More...
 
void handler_add (xmpp_conn_t *const conn, xmpp_handler handler, const char *const ns, const char *const name, const char *const type, void *const userdata)
 Add a system stanza handler. More...
 
void handler_system_delete_all (xmpp_conn_t *conn)
 Delete all system handlers. More...
 
void disconnect_mem_error (xmpp_conn_t *const conn)
 Disconnect the stream with a memory error. More...
 
void auth_handle_open (xmpp_conn_t *const conn)
 Set up handlers at stream start. More...
 
void auth_handle_component_open (xmpp_conn_t *const conn)
 
void auth_handle_open_raw (xmpp_conn_t *const conn)
 
void auth_handle_open_stub (xmpp_conn_t *const conn)
 

Detailed Description

Internally used functions and structures.

Macro Definition Documentation

◆ UNUSED

#define UNUSED (   x)    ((void)(x))

◆ MAX_DOMAIN_LEN

#define MAX_DOMAIN_LEN   256

◆ SASL_MASK_PLAIN

#define SASL_MASK_PLAIN   (1 << 0)

◆ SASL_MASK_DIGESTMD5

#define SASL_MASK_DIGESTMD5   (1 << 1)

◆ SASL_MASK_ANONYMOUS

#define SASL_MASK_ANONYMOUS   (1 << 2)

◆ SASL_MASK_SCRAMSHA1

#define SASL_MASK_SCRAMSHA1   (1 << 3)

◆ SASL_MASK_SCRAMSHA256

#define SASL_MASK_SCRAMSHA256   (1 << 4)

◆ SASL_MASK_SCRAMSHA512

#define SASL_MASK_SCRAMSHA512   (1 << 5)

◆ SASL_MASK_SCRAM

Typedef Documentation

◆ xmpp_open_handler

typedef void(* xmpp_open_handler) (xmpp_conn_t *const conn)

Enumeration Type Documentation

◆ xmpp_loop_status_t

run-time context

Enumerator
XMPP_LOOP_NOTSTARTED 
XMPP_LOOP_RUNNING 
XMPP_LOOP_QUIT 

◆ xmpp_conn_state_t

connection

Enumerator
XMPP_STATE_DISCONNECTED 
XMPP_STATE_CONNECTING 
XMPP_STATE_CONNECTED 

◆ anonymous enum

anonymous enum
Enumerator
XMPP_PORT_CLIENT 
XMPP_PORT_CLIENT_LEGACY_SSL 
XMPP_PORT_COMPONENT 

◆ xmpp_stanza_type_t

Enumerator
XMPP_STANZA_UNKNOWN 
XMPP_STANZA_TEXT 
XMPP_STANZA_TAG 

Function Documentation

◆ xmpp_alloc()

void* xmpp_alloc ( const xmpp_ctx_t *const  ctx,
const size_t  size 
)

Allocate memory in a Strophe context.

All Strophe functions will use this to allocate memory.

Parameters
ctxa Strophe context object
sizethe number of bytes to allocate
Returns
a pointer to the allocated memory or NULL on an error

◆ xmpp_realloc()

void* xmpp_realloc ( const xmpp_ctx_t *const  ctx,
void *  p,
const size_t  size 
)

Reallocate memory in a Strophe context.

All Strophe functions will use this to reallocate memory.

Parameters
ctxa Strophe context object
pa pointer to previously allocated memory
sizethe new size in bytes to allocate
Returns
a pointer to the reallocated memory or NULL on an error

◆ xmpp_strdup()

char* xmpp_strdup ( const xmpp_ctx_t *const  ctx,
const char *const  s 
)

implement our own strdup that uses the ctx allocator

Duplicate a string. This function replaces the standard strdup library call with a version that uses the Strophe context object's allocator.

Parameters
ctxa Strophe context object
sa string
Returns
a new allocates string with the same data as s or NULL on error

◆ xmpp_log()

void xmpp_log ( const xmpp_ctx_t *const  ctx,
const xmpp_log_level_t  level,
const char *const  area,
const char *const  fmt,
va_list  ap 
)

Write a log message to the logger.

Write a log message to the logger for the context for the specified level and area. This function takes a printf-style format string and a variable argument list (in va_list) format. This function is not meant to be called directly, but is used via xmpp_error, xmpp_warn, xmpp_info, and xmpp_debug.

Parameters
ctxa Strophe context object
levelthe level at which to log
areathe area to log for
fmta printf-style format string for the message
apvariable argument list supplied for the format string

◆ xmpp_error()

void xmpp_error ( const xmpp_ctx_t *const  ctx,
const char *const  area,
const char *const  fmt,
  ... 
)

Write to the log at the ERROR level.

This is a convenience function for writing to the log at the ERROR level. It takes a printf-style format string followed by a variable list of arguments for formatting.

Parameters
ctxa Strophe context object
areathe area to log for
fmta printf-style format string followed by a variable list of arguments to format

◆ xmpp_warn()

void xmpp_warn ( const xmpp_ctx_t *const  ctx,
const char *const  area,
const char *const  fmt,
  ... 
)

Write to the log at the WARN level.

This is a convenience function for writing to the log at the WARN level. It takes a printf-style format string followed by a variable list of arguments for formatting.

Parameters
ctxa Strophe context object
areathe area to log for
fmta printf-style format string followed by a variable list of arguments to format

◆ xmpp_info()

void xmpp_info ( const xmpp_ctx_t *const  ctx,
const char *const  area,
const char *const  fmt,
  ... 
)

Write to the log at the INFO level.

This is a convenience function for writing to the log at the INFO level. It takes a printf-style format string followed by a variable list of arguments for formatting.

Parameters
ctxa Strophe context object
areathe area to log for
fmta printf-style format string followed by a variable list of arguments to format

◆ xmpp_debug()

void xmpp_debug ( const xmpp_ctx_t *const  ctx,
const char *const  area,
const char *const  fmt,
  ... 
)

Write to the log at the DEBUG level.

This is a convenience function for writing to the log at the DEBUG level. It takes a printf-style format string followed by a variable list of arguments for formatting.

Parameters
ctxa Strophe context object
areathe area to log for
fmta printf-style format string followed by a variable list of arguments to format

◆ conn_disconnect()

void conn_disconnect ( xmpp_conn_t *const  conn)

Disconnect from the XMPP server.

This function immediately disconnects from the XMPP server, and should not be used outside of the Strophe library.

Parameters
conna Strophe connection object

◆ conn_disconnect_clean()

void conn_disconnect_clean ( xmpp_conn_t *const  conn)

Cleanly disconnect the connection.

This function is only called by the stream parser when </stream:stream> is received, and it not intended to be called by code outside of Strophe.

Parameters
conna Strophe connection object

◆ conn_established()

void conn_established ( xmpp_conn_t *const  conn)

◆ conn_open_stream()

void conn_open_stream ( xmpp_conn_t *const  conn)

Send the opening <stream:stream> tag to the server.

This function is used by Strophe to begin an XMPP stream. It should not be used outside of the library.

Parameters
conna Strophe connection object

◆ conn_tls_start()

int conn_tls_start ( xmpp_conn_t *const  conn)

◆ conn_prepare_reset()

void conn_prepare_reset ( xmpp_conn_t *const  conn,
xmpp_open_handler  handler 
)

◆ conn_parser_reset()

void conn_parser_reset ( xmpp_conn_t *const  conn)

◆ handler_fire_stanza()

void handler_fire_stanza ( xmpp_conn_t *const  conn,
xmpp_stanza_t *const  stanza 
)

Fire off all stanza handlers that match.

This function is called internally by the event loop whenever stanzas are received from the XMPP server.

Parameters
conna Strophe connection object
stanzaa Strophe stanza object

◆ handler_fire_timed()

uint64_t handler_fire_timed ( xmpp_ctx_t *const  ctx)

Fire off all timed handlers that are ready.

This function is called internally by the event loop.

Parameters
ctxa Strophe context object
Returns
the time in milliseconds until the next handler will be ready

◆ handler_reset_timed()

void handler_reset_timed ( xmpp_conn_t *  conn,
int  user_only 
)

Reset all timed handlers.

This function is called internally when a connection is successful.

Parameters
conna Strophe connection object
user_onlywhether to reset all handlers or only user ones

◆ handler_add_timed()

void handler_add_timed ( xmpp_conn_t *const  conn,
xmpp_timed_handler  handler,
const unsigned long  period,
void *const  userdata 
)

Add a timed system handler.

This function is used to add internal timed handlers and should not be used outside of the library.

Parameters
conna Strophe connection object
handlera function pointer to a timed handler
periodthe time in milliseconds between firings
userdataan opaque data pointer that will be passed to the handler

◆ handler_add_id()

void handler_add_id ( xmpp_conn_t *const  conn,
xmpp_handler  handler,
const char *const  id,
void *const  userdata 
)

Add an id based system stanza handler.

This function is used to add internal id based stanza handlers and should not be used outside of the library.

Parameters
conna Strophe connection object
handlera function pointer to a stanza handler
ida string with the id
userdataan opaque data pointer that will be passed to the handler

◆ handler_add()

void handler_add ( xmpp_conn_t *const  conn,
xmpp_handler  handler,
const char *const  ns,
const char *const  name,
const char *const  type,
void *const  userdata 
)

Add a system stanza handler.

This function is used to add internal stanza handlers and should not be used outside of the library.

Parameters
conna Strophe connection object
handlera function pointer to a stanza handler
nsa string with the namespace to match
namea string with the stanza name to match
typea string with the 'type' attribute value to match
userdataan opaque data pointer that will be passed to the handler

◆ handler_system_delete_all()

void handler_system_delete_all ( xmpp_conn_t *  conn)

Delete all system handlers.

This function is used to reset conn object before re-connecting.

Parameters
conna Strophe connection object

◆ disconnect_mem_error()

void disconnect_mem_error ( xmpp_conn_t *const  conn)

Disconnect the stream with a memory error.

This is a convenience function used internally by various parts of the Strophe library for terminating the connection because of a memory error.

Parameters
conna Strophe connection object

◆ auth_handle_open()

void auth_handle_open ( xmpp_conn_t *const  conn)

Set up handlers at stream start.

This function is called internally to Strophe for handling the opening of an XMPP stream. It's called by the parser when a stream is opened or reset, and adds the initial handlers for <stream:error/> and <stream:features/>. This function is not intended for use outside of Strophe.

Parameters
conna Strophe connection object

◆ auth_handle_component_open()

void auth_handle_component_open ( xmpp_conn_t *const  conn)

◆ auth_handle_open_raw()

void auth_handle_open_raw ( xmpp_conn_t *const  conn)

◆ auth_handle_open_stub()

void auth_handle_open_stub ( xmpp_conn_t *const  conn)