Strophe 0.13
XMPP client library
|
Internally used functions and structures. More...
Data Structures | |
struct | xmpp_handlist_t |
handlers More... | |
struct | xmpp_connlist_t |
struct | xmpp_ctx_t |
struct | xmpp_send_queue_t |
struct | xmpp_queue_t |
struct | xmpp_sm_state_t |
struct | conn_interface |
struct | xmpp_conn_t |
struct | xmpp_stanza_t |
Macros | |
#define | strophe_free_and_null(ctx, p) |
#define | STR_MAYBE_NULL(p) (p) |
#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_EXTERNAL (1 << 6) |
#define | SASL_MASK_SCRAMSHA1_PLUS (1 << 7) |
#define | SASL_MASK_SCRAMSHA256_PLUS (1 << 8) |
#define | SASL_MASK_SCRAM_PLUS (SASL_MASK_SCRAMSHA1_PLUS | SASL_MASK_SCRAMSHA256_PLUS) |
#define | SASL_MASK_SCRAM_WEAK (SASL_MASK_SCRAMSHA1 | SASL_MASK_SCRAMSHA256 | SASL_MASK_SCRAMSHA512) |
#define | SASL_MASK_SCRAM (SASL_MASK_SCRAM_PLUS | SASL_MASK_SCRAM_WEAK) |
Typedefs | |
typedef void(* | xmpp_open_handler) (xmpp_conn_t *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_send_queue_owner_t { XMPP_QUEUE_STROPHE = 0x1 , XMPP_QUEUE_USER = 0x2 , XMPP_QUEUE_SM = 0x800 , XMPP_QUEUE_SM_STROPHE = XMPP_QUEUE_SM | XMPP_QUEUE_STROPHE } |
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 * | strophe_alloc (const xmpp_ctx_t *ctx, size_t size) |
Allocate memory in a Strophe context. | |
void * | strophe_realloc (const xmpp_ctx_t *ctx, void *p, size_t size) |
Reallocate memory in a Strophe context. | |
char * | strophe_strdup (const xmpp_ctx_t *ctx, const char *s) |
implement our own strdup that uses the ctx allocator | |
char * | strophe_strndup (const xmpp_ctx_t *ctx, const char *s, size_t len) |
Duplicate a string with a maximum length. | |
void | strophe_free (const xmpp_ctx_t *ctx, void *p) |
Free memory in a Strophe context. | |
void | strophe_error (const xmpp_ctx_t *ctx, const char *area, const char *fmt,...) |
Write to the log at the ERROR level. | |
void | strophe_warn (const xmpp_ctx_t *ctx, const char *area, const char *fmt,...) |
Write to the log at the WARN level. | |
void | strophe_info (const xmpp_ctx_t *ctx, const char *area, const char *fmt,...) |
Write to the log at the INFO level. | |
void | strophe_debug (const xmpp_ctx_t *ctx, const char *area, const char *fmt,...) |
Write to the log at the DEBUG level. | |
void | strophe_debug_verbose (int level, const xmpp_ctx_t *ctx, const char *area, const char *fmt,...) |
Write to the log at the DEBUG level if verbosity is enabled. | |
void | strophe_log_internal (const xmpp_ctx_t *ctx, xmpp_log_level_t level, const char *area, const char *fmt, va_list ap) |
int | conn_interface_write (struct conn_interface *intf, const void *buff, size_t len) |
int | conn_int_nop (struct conn_interface *intf) |
int | compression_init (xmpp_conn_t *conn) |
void | compression_free (xmpp_conn_t *conn) |
void | compression_handle_feature_children (xmpp_conn_t *conn, const char *text) |
void | conn_disconnect (xmpp_conn_t *conn) |
Disconnect from the XMPP server. | |
void | conn_disconnect_clean (xmpp_conn_t *conn) |
Cleanly disconnect the connection. | |
void | conn_established (xmpp_conn_t *conn) |
void | conn_open_stream (xmpp_conn_t *conn) |
Send the opening <stream:stream> tag to the server. | |
int | conn_tls_start (xmpp_conn_t *conn) |
void | conn_prepare_reset (xmpp_conn_t *conn, xmpp_open_handler handler) |
void | conn_parser_reset (xmpp_conn_t *conn) |
void | handler_fire_stanza (xmpp_conn_t *conn, xmpp_stanza_t *stanza) |
Fire off all stanza handlers that match. | |
uint64_t | handler_fire_timed (xmpp_ctx_t *ctx) |
Fire off all timed handlers that are ready. | |
void | handler_reset_timed (xmpp_conn_t *conn, int user_only) |
Reset all timed handlers. | |
void | handler_add_timed (xmpp_conn_t *conn, xmpp_timed_handler handler, unsigned long period, void *userdata) |
Add a timed system handler. | |
void | handler_add_id (xmpp_conn_t *conn, xmpp_handler handler, const char *id, void *userdata) |
Add an id based system stanza handler. | |
void | handler_add (xmpp_conn_t *conn, xmpp_handler handler, const char *ns, const char *name, const char *type, void *userdata) |
Add a system stanza handler. | |
void | handler_system_delete_all (xmpp_conn_t *conn) |
Delete all system handlers. | |
void | reset_sm_state (xmpp_sm_state_t *sm_state) |
void | disconnect_mem_error (xmpp_conn_t *conn) |
Disconnect the stream with a memory error. | |
void | auth_handle_open (xmpp_conn_t *conn) |
Set up handlers at stream start. | |
void | auth_handle_component_open (xmpp_conn_t *conn) |
void | auth_handle_open_raw (xmpp_conn_t *conn) |
void | auth_handle_open_stub (xmpp_conn_t *conn) |
void | add_queue_back (xmpp_queue_t *queue, xmpp_send_queue_t *item) |
xmpp_send_queue_t * | peek_queue_front (xmpp_queue_t *queue) |
xmpp_send_queue_t * | pop_queue_front (xmpp_queue_t *queue) |
char * | queue_element_free (xmpp_ctx_t *ctx, xmpp_send_queue_t *e) |
void | send_raw (xmpp_conn_t *conn, const char *data, size_t len, xmpp_send_queue_owner_t owner, void *userdata) |
void | send_raw_string (xmpp_conn_t *conn, const char *fmt,...) |
void | send_stanza (xmpp_conn_t *conn, xmpp_stanza_t *stanza, xmpp_send_queue_owner_t owner) |
Internally used functions and structures.
#define strophe_free_and_null | ( | ctx, | |
p | |||
) |
#define STR_MAYBE_NULL | ( | p | ) | (p) |
#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_EXTERNAL (1 << 6) |
#define SASL_MASK_SCRAMSHA1_PLUS (1 << 7) |
#define SASL_MASK_SCRAMSHA256_PLUS (1 << 8) |
#define SASL_MASK_SCRAM_PLUS (SASL_MASK_SCRAMSHA1_PLUS | SASL_MASK_SCRAMSHA256_PLUS) |
#define SASL_MASK_SCRAM_WEAK (SASL_MASK_SCRAMSHA1 | SASL_MASK_SCRAMSHA256 | SASL_MASK_SCRAMSHA512) |
#define SASL_MASK_SCRAM (SASL_MASK_SCRAM_PLUS | SASL_MASK_SCRAM_WEAK) |
typedef void(* xmpp_open_handler) (xmpp_conn_t *conn) |
enum xmpp_loop_status_t |
enum xmpp_conn_state_t |
enum xmpp_stanza_type_t |
void * strophe_alloc | ( | const xmpp_ctx_t * | ctx, |
size_t | size | ||
) |
Allocate memory in a Strophe context.
All Strophe functions will use this to allocate memory.
ctx | a Strophe context object |
size | the number of bytes to allocate |
void * strophe_realloc | ( | const xmpp_ctx_t * | ctx, |
void * | p, | ||
size_t | size | ||
) |
Reallocate memory in a Strophe context.
All Strophe functions will use this to reallocate memory.
ctx | a Strophe context object |
p | a pointer to previously allocated memory |
size | the new size in bytes to allocate |
char * strophe_strdup | ( | const xmpp_ctx_t * | ctx, |
const char * | 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.
ctx | a Strophe context object |
s | a string |
char * strophe_strndup | ( | const xmpp_ctx_t * | ctx, |
const char * | s, | ||
size_t | len | ||
) |
Duplicate a string with a maximum length.
This function replaces the standard strndup library call with a version that uses the Strophe context object's allocator.
ctx | a Strophe context object |
s | a string |
len | the maximum length of the string to copy |
len
symbols of the original string or NULL on error void strophe_free | ( | const xmpp_ctx_t * | ctx, |
void * | p | ||
) |
Free memory in a Strophe context.
All Strophe functions will use this to free allocated memory.
ctx | a Strophe context object |
p | a pointer referencing memory to be freed |
void strophe_error | ( | const xmpp_ctx_t * | ctx, |
const char * | area, | ||
const char * | 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.
ctx | a Strophe context object |
area | the area to log for |
fmt | a printf-style format string followed by a variable list of arguments to format |
void strophe_warn | ( | const xmpp_ctx_t * | ctx, |
const char * | area, | ||
const char * | 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.
ctx | a Strophe context object |
area | the area to log for |
fmt | a printf-style format string followed by a variable list of arguments to format |
void strophe_info | ( | const xmpp_ctx_t * | ctx, |
const char * | area, | ||
const char * | 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.
ctx | a Strophe context object |
area | the area to log for |
fmt | a printf-style format string followed by a variable list of arguments to format |
void strophe_debug | ( | const xmpp_ctx_t * | ctx, |
const char * | area, | ||
const char * | 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.
ctx | a Strophe context object |
area | the area to log for |
fmt | a printf-style format string followed by a variable list of arguments to format |
void strophe_debug_verbose | ( | int | level, |
const xmpp_ctx_t * | ctx, | ||
const char * | area, | ||
const char * | fmt, | ||
... | |||
) |
Write to the log at the DEBUG level if verbosity is enabled.
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.
level | the verbosity level |
ctx | a Strophe context object |
area | the area to log for |
fmt | a printf-style format string followed by a variable list of arguments to format |
void strophe_log_internal | ( | const xmpp_ctx_t * | ctx, |
xmpp_log_level_t | level, | ||
const char * | area, | ||
const char * | fmt, | ||
va_list | ap | ||
) |
int conn_interface_write | ( | struct conn_interface * | intf, |
const void * | buff, | ||
size_t | len | ||
) |
int conn_int_nop | ( | struct conn_interface * | intf | ) |
int compression_init | ( | xmpp_conn_t * | conn | ) |
void compression_free | ( | xmpp_conn_t * | conn | ) |
void compression_handle_feature_children | ( | xmpp_conn_t * | conn, |
const char * | text | ||
) |
void conn_disconnect | ( | xmpp_conn_t * | conn | ) |
Disconnect from the XMPP server.
This function immediately disconnects from the XMPP server, and should not be used outside of the Strophe library.
conn | a Strophe connection object |
void conn_disconnect_clean | ( | xmpp_conn_t * | 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.
conn | a Strophe connection object |
void conn_established | ( | xmpp_conn_t * | conn | ) |
void conn_open_stream | ( | xmpp_conn_t * | 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.
conn | a Strophe connection object |
int conn_tls_start | ( | xmpp_conn_t * | conn | ) |
void conn_prepare_reset | ( | xmpp_conn_t * | conn, |
xmpp_open_handler | handler | ||
) |
void conn_parser_reset | ( | xmpp_conn_t * | conn | ) |
void handler_fire_stanza | ( | xmpp_conn_t * | conn, |
xmpp_stanza_t * | 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.
conn | a Strophe connection object |
stanza | a Strophe stanza object |
uint64_t handler_fire_timed | ( | xmpp_ctx_t * | ctx | ) |
Fire off all timed handlers that are ready.
This function is called internally by the event loop.
ctx | a Strophe context object |
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.
conn | a Strophe connection object |
user_only | whether to reset all handlers or only user ones |
void handler_add_timed | ( | xmpp_conn_t * | conn, |
xmpp_timed_handler | handler, | ||
unsigned long | period, | ||
void * | userdata | ||
) |
Add a timed system handler.
This function is used to add internal timed handlers and should not be used outside of the library.
conn | a Strophe connection object |
handler | a function pointer to a timed handler |
period | the time in milliseconds between firings |
userdata | an opaque data pointer that will be passed to the handler |
void handler_add_id | ( | xmpp_conn_t * | conn, |
xmpp_handler | handler, | ||
const char * | id, | ||
void * | 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.
conn | a Strophe connection object |
handler | a function pointer to a stanza handler |
id | a string with the id |
userdata | an opaque data pointer that will be passed to the handler |
void handler_add | ( | xmpp_conn_t * | conn, |
xmpp_handler | handler, | ||
const char * | ns, | ||
const char * | name, | ||
const char * | type, | ||
void * | userdata | ||
) |
Add a system stanza handler.
This function is used to add internal stanza handlers and should not be used outside of the library.
conn | a Strophe connection object |
handler | a function pointer to a stanza handler |
ns | a string with the namespace to match |
name | a string with the stanza name to match |
type | a string with the 'type' attribute value to match |
userdata | an opaque data pointer that will be passed to the handler |
void handler_system_delete_all | ( | xmpp_conn_t * | conn | ) |
Delete all system handlers.
This function is used to reset conn object before re-connecting.
conn | a Strophe connection object |
void reset_sm_state | ( | xmpp_sm_state_t * | sm_state | ) |
void disconnect_mem_error | ( | xmpp_conn_t * | 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.
conn | a Strophe connection object |
void auth_handle_open | ( | xmpp_conn_t * | 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.
conn | a Strophe connection object |
void auth_handle_component_open | ( | xmpp_conn_t * | conn | ) |
void auth_handle_open_raw | ( | xmpp_conn_t * | conn | ) |
void auth_handle_open_stub | ( | xmpp_conn_t * | conn | ) |
void add_queue_back | ( | xmpp_queue_t * | queue, |
xmpp_send_queue_t * | item | ||
) |
xmpp_send_queue_t * peek_queue_front | ( | xmpp_queue_t * | queue | ) |
xmpp_send_queue_t * pop_queue_front | ( | xmpp_queue_t * | queue | ) |
char * queue_element_free | ( | xmpp_ctx_t * | ctx, |
xmpp_send_queue_t * | e | ||
) |
void send_raw | ( | xmpp_conn_t * | conn, |
const char * | data, | ||
size_t | len, | ||
xmpp_send_queue_owner_t | owner, | ||
void * | userdata | ||
) |
void send_raw_string | ( | xmpp_conn_t * | conn, |
const char * | fmt, | ||
... | |||
) |
void send_stanza | ( | xmpp_conn_t * | conn, |
xmpp_stanza_t * | stanza, | ||
xmpp_send_queue_owner_t | owner | ||
) |