Strophe: mesode.h File Reference

Strophe 0.9 XMPP client library

Data Structures | Macros | Typedefs | Enumerations | Functions
mesode.h File Reference

Strophe public C API definitions. More...

## Data Structures
struct | xmpp_mem_t
struct | xmpp_log_t
struct | xmpp_stream_error_t

## Macros
#define | XMPP_NS_CLIENT "jabber:client"
| Namespace definition for 'jabber:client'.
#define | XMPP_NS_COMPONENT "jabber:component:accept"
| Namespace definition for 'jabber:component:accept'.
#define | XMPP_NS_STREAMS "http://etherx.jabber.org/streams"
| Namespace definition for 'http://etherx.jabber.org/streams'.
#define | XMPP_NS_STREAMS_IETF "urn:ietf:params:xml:ns:xmpp-streams"
| Namespace definition for 'urn:ietf:params:xml:ns:xmpp-streams'.
#define | XMPP_NS_TLS "urn:ietf:params:xml:ns:xmpp-tls"
| Namespace definition for 'url:ietf:params:xml:ns:xmpp-tls'.
#define | XMPP_NS_SASL "urn:ietf:params:xml:ns:xmpp-sasl"
| Namespace definition for 'urn:ietf:params:xml:ns:xmpp-sasl'.
#define | XMPP_NS_BIND "urn:ietf:params:xml:ns:xmpp-bind"
| Namespace definition for 'urn:ietf:params:xml:ns:xmpp-bind'.
#define | XMPP_NS_SESSION "urn:ietf:params:xml:ns:xmpp-session"
| Namespace definition for 'urn:ietf:params:xml:ns:xmpp-session'.
#define | XMPP_NS_AUTH "jabber:iq:auth"
| Namespace definition for 'jabber:iq:auth'.
#define | XMPP_NS_DISCO_INFO "http://jabber.org/protocol/disco#info"
| Namespace definition for 'http://jabber.org/protocol/disco#info'.
#define | XMPP_NS_DISCO_ITEMS "http://jabber.org/protocol/disco#items"
| Namespace definition for 'http://jabber.org/protocol/disco#items'.
#define | XMPP_NS_ROSTER "jabber:iq:roster"
| Namespace definition for 'jabber:iq:roster'.
#define | XMPP_EOK 0
| Success error code.
#define | XMPP_EMEM -1
| Memory related failure error code.
#define | XMPP_EINVOP -2
| Invalid operation error code.
#define | XMPP_EINT -3
| Internal failure error code.
#define | XMPP_CONN_FLAG_DISABLE_TLS (1UL << 0)
#define | XMPP_CONN_FLAG_MANDATORY_TLS (1UL << 1)
#define | XMPP_CONN_FLAG_LEGACY_SSL (1UL << 2)
#define | XMPP_CONN_FLAG_TRUST_TLS (1UL << 3)
| Trust server's certificate even if it is invalid.
#define | XMPP_CONN_FLAG_LEGACY_AUTH (1UL << 4)
| Enable legacy authentication support.
#define | XMPP_SHA1_DIGEST_SIZE 20
| Size of the SHA1 message digest.

## Typedefs
typedef void(* | xmpp_log_handler) (void *const userdata, const xmpp_log_level_t level, const char *const area, const char *const msg)
typedef void(* | xmpp_conn_handler) (xmpp_conn_t *const conn, const xmpp_conn_event_t event, const int error, xmpp_stream_error_t *const stream_error, void *const userdata)
typedef int(* | xmpp_certfail_handler) (xmpp_tlscert_t *cert, const char *const errormsg)
typedef int(* | xmpp_timed_handler) (xmpp_conn_t *const conn, void *const userdata)
typedef int(* | xmpp_handler) (xmpp_conn_t *const conn, xmpp_stanza_t *const stanza, void *const userdata)

## Enumerations
enum | xmpp_log_level_t { XMPP_LEVEL_DEBUG , XMPP_LEVEL_INFO , XMPP_LEVEL_WARN , XMPP_LEVEL_ERROR }
enum | xmpp_conn_type_t { XMPP_UNKNOWN , XMPP_CLIENT , XMPP_COMPONENT }
enum | xmpp_conn_event_t { XMPP_CONN_CONNECT , XMPP_CONN_RAW_CONNECT , XMPP_CONN_DISCONNECT , XMPP_CONN_FAIL }
enum | xmpp_error_type_t { XMPP_SE_BAD_FORMAT , XMPP_SE_BAD_NS_PREFIX , XMPP_SE_CONFLICT , XMPP_SE_CONN_TIMEOUT , XMPP_SE_HOST_GONE , XMPP_SE_HOST_UNKNOWN , XMPP_SE_IMPROPER_ADDR , XMPP_SE_INTERNAL_SERVER_ERROR , XMPP_SE_INVALID_FROM , XMPP_SE_INVALID_ID , XMPP_SE_INVALID_NS , XMPP_SE_INVALID_XML , XMPP_SE_NOT_AUTHORIZED , XMPP_SE_POLICY_VIOLATION , XMPP_SE_REMOTE_CONN_FAILED , XMPP_SE_RESOURCE_CONSTRAINT , XMPP_SE_RESTRICTED_XML , XMPP_SE_SEE_OTHER_HOST , XMPP_SE_SYSTEM_SHUTDOWN , XMPP_SE_UNDEFINED_CONDITION , XMPP_SE_UNSUPPORTED_ENCODING , XMPP_SE_UNSUPPORTED_STANZA_TYPE , XMPP_SE_UNSUPPORTED_VERSION , XMPP_SE_XML_NOT_WELL_FORMED }

## Functions
void | xmpp_initialize (void)
| Initialize the Strophe library.
void | xmpp_shutdown (void)
| Shutdown the Strophe library.
int | xmpp_version_check (int major, int minor)
| Check that Strophe supports a specific API version.
xmpp_ctx_t * | xmpp_ctx_new (const xmpp_mem_t *const mem, const xmpp_log_t *const log)
| Create and initialize a Strophe context object.
void | xmpp_ctx_free (xmpp_ctx_t *const ctx)
| Free a Strophe context object that is no longer in use.
void | xmpp_free (const xmpp_ctx_t *const ctx, void *p)
| Free memory in a Strophe context.
xmpp_log_t * | xmpp_get_default_logger (xmpp_log_level_t level)
| Get a default logger with filtering.
void | xmpp_send_error (xmpp_conn_t *const conn, xmpp_error_type_t const type, char *const text)
xmpp_conn_t * | xmpp_conn_new (xmpp_ctx_t *const ctx)
| Create a new Strophe connection object.
xmpp_conn_t * | xmpp_conn_clone (xmpp_conn_t *const conn)
| Clone a Strophe connection object.
int | xmpp_conn_release (xmpp_conn_t *const conn)
| Release a Strophe connection object.
long | xmpp_conn_get_flags (const xmpp_conn_t *const conn)
| Return applied flags for the connection.
int | xmpp_conn_set_flags (xmpp_conn_t *const conn, long flags)
| Set flags for the connection.
const char * | xmpp_conn_get_jid (const xmpp_conn_t *const conn)
| Get the JID which is or will be bound to the connection.
const char * | xmpp_conn_get_bound_jid (const xmpp_conn_t *const conn)
| Get the JID discovered during binding time.
void | xmpp_conn_set_jid (xmpp_conn_t *const conn, const char *const jid)
| Set the JID of the user that will be bound to the connection.
const char * | xmpp_conn_get_pass (const xmpp_conn_t *const conn)
| Get the password used for authentication of a connection.
void | xmpp_conn_set_pass (xmpp_conn_t *const conn, const char *const pass)
| Set the password used to authenticate the connection.
xmpp_ctx_t * | xmpp_conn_get_context (xmpp_conn_t *const conn)
| Get the strophe context that the connection is associated with.
void | xmpp_conn_disable_tls (xmpp_conn_t *const conn)
| Disable TLS for this connection, called by users of the library.
void | xmpp_conn_tlscert_path (xmpp_conn_t *const conn, char *path)
int | xmpp_conn_is_secured (xmpp_conn_t *const conn)
| Return whether TLS session is established or not.
void | xmpp_conn_set_keepalive (xmpp_conn_t *const conn, int timeout, int interval)
| Set TCP keepalive parameters Turn on TCP keepalive and set timeout and interval.
xmpp_tlscert_t * | xmpp_conn_tls_peer_cert (xmpp_conn_t *const conn)
int | xmpp_conn_tlscert_version (xmpp_tlscert_t *cert)
char * | xmpp_conn_tlscert_serialnumber (xmpp_tlscert_t *cert)
char * | xmpp_conn_tlscert_subjectname (xmpp_tlscert_t *cert)
char * | xmpp_conn_tlscert_issuername (xmpp_tlscert_t *cert)
char * | xmpp_conn_tlscert_fingerprint (xmpp_tlscert_t *cert)
char * | xmpp_conn_tlscert_notbefore (xmpp_tlscert_t *cert)
char * | xmpp_conn_tlscert_notafter (xmpp_tlscert_t *cert)
char * | xmpp_conn_tlscert_signature_algorithm (xmpp_tlscert_t *cert)
char * | xmpp_conn_tlscert_key_algorithm (xmpp_tlscert_t *cert)
void | xmpp_conn_free_tlscert (xmpp_ctx_t *ctx, xmpp_tlscert_t *cert)
int | xmpp_connect_client (xmpp_conn_t *const conn, const char *const altdomain, unsigned short altport, xmpp_certfail_handler certfail_cb, xmpp_conn_handler callback, void *const userdata)
| Initiate a connection to the XMPP server.
int | xmpp_connect_component (xmpp_conn_t *const conn, const char *const server, unsigned short port, xmpp_conn_handler callback, void *const userdata)
| Initiate a component connection to server.
int | xmpp_connect_raw (xmpp_conn_t *const conn, const char *const altdomain, unsigned short altport, xmpp_certfail_handler certfail_cb, xmpp_conn_handler callback, void *const userdata)
| Initiate a raw connection to the XMPP server.
int | xmpp_conn_open_stream_default (xmpp_conn_t *const conn)
| Send the default opening stream tag.
int | xmpp_conn_open_stream (xmpp_conn_t *const conn, char **attributes, size_t attributes_len)
| Send an opening stream tag.
int | xmpp_conn_tls_start (xmpp_conn_t *const conn)
| Start synchronous TLS handshake with the server.
void | xmpp_disconnect (xmpp_conn_t *const conn)
| Initiate termination of the connection to the XMPP server.
void | xmpp_send (xmpp_conn_t *const conn, xmpp_stanza_t *const stanza)
| Send an XML stanza to the XMPP server.
void | xmpp_send_raw_string (xmpp_conn_t *const conn, const char *const fmt,...)
| Send a raw string to the XMPP server.
void | xmpp_send_raw (xmpp_conn_t *const conn, const char *const data, const size_t len)
| Send raw bytes to the XMPP server.
void | xmpp_timed_handler_add (xmpp_conn_t *const conn, xmpp_timed_handler handler, const unsigned long period, void *const userdata)
| Add a timed handler.
void | xmpp_timed_handler_delete (xmpp_conn_t *const conn, xmpp_timed_handler handler)
| Delete a timed handler.
void | xmpp_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 stanza handler.
void | xmpp_handler_delete (xmpp_conn_t *const conn, xmpp_handler handler)
| Delete a stanza handler.
void | xmpp_id_handler_add (xmpp_conn_t *const conn, xmpp_handler handler, const char *const id, void *const userdata)
| Add an id based stanza handler.
void | xmpp_id_handler_delete (xmpp_conn_t *const conn, xmpp_handler handler, const char *const id)
| Delete an id based stanza handler.
xmpp_stanza_t * | xmpp_stanza_new (xmpp_ctx_t *ctx)
| Create a stanza object.
xmpp_stanza_t * | xmpp_stanza_new_from_string (xmpp_ctx_t *ctx, const char *str)
| Create a stanza object from the string.
xmpp_stanza_t * | xmpp_stanza_clone (xmpp_stanza_t *const stanza)
| Clone a stanza object.
xmpp_stanza_t * | xmpp_stanza_copy (const xmpp_stanza_t *const stanza)
| Copy a stanza and its children.
int | xmpp_stanza_release (xmpp_stanza_t *const stanza)
| Release a stanza object and all of its children.
int | xmpp_stanza_is_text (xmpp_stanza_t *const stanza)
| Determine if a stanza is a text node.
int | xmpp_stanza_is_tag (xmpp_stanza_t *const stanza)
| Determine if a stanza is a tag node.
int | xmpp_stanza_to_text (xmpp_stanza_t *stanza, char **const buf, size_t *const buflen)
| Render a stanza object to text.
xmpp_stanza_t * | xmpp_stanza_get_children (xmpp_stanza_t *const stanza)
| Get the list of children.
xmpp_stanza_t * | xmpp_stanza_get_child_by_name (xmpp_stanza_t *const stanza, const char *const name)
| Get the first child of stanza with name.
xmpp_stanza_t * | xmpp_stanza_get_child_by_ns (xmpp_stanza_t *const stanza, const char *const ns)
| Get the first child of a stanza with a given namespace.
xmpp_stanza_t * | xmpp_stanza_get_child_by_name_and_ns (xmpp_stanza_t *const stanza, const char *const name, const char *const ns)
| Get the first child of stanza with name and a given namespace.
xmpp_stanza_t * | xmpp_stanza_get_next (xmpp_stanza_t *const stanza)
| Get the next sibling of a stanza.
int | xmpp_stanza_add_child (xmpp_stanza_t *stanza, xmpp_stanza_t *child)
| Add a child stanza to a stanza object.
const char * | xmpp_stanza_get_attribute (xmpp_stanza_t *const stanza, const char *const name)
| Get an attribute from a stanza.
int | xmpp_stanza_get_attribute_count (xmpp_stanza_t *const stanza)
| Count the attributes in a stanza object.
int | xmpp_stanza_get_attributes (xmpp_stanza_t *const stanza, const char **attr, int attrlen)
| Get all attributes for a stanza object.
char * | xmpp_stanza_get_text (xmpp_stanza_t *const stanza)
| Get the text data for a text stanza.
const char * | xmpp_stanza_get_text_ptr (xmpp_stanza_t *const stanza)
| Get the text data pointer for a text stanza.
const char * | xmpp_stanza_get_name (xmpp_stanza_t *const stanza)
| Get the stanza name.
int | xmpp_stanza_set_attribute (xmpp_stanza_t *const stanza, const char *const key, const char *const value)
| Set an attribute for a stanza object.
int | xmpp_stanza_set_name (xmpp_stanza_t *stanza, const char *const name)
| Set the name of a stanza.
int | xmpp_stanza_set_text (xmpp_stanza_t *stanza, const char *const text)
| Set the text data for a text stanza.
int | xmpp_stanza_set_text_with_size (xmpp_stanza_t *stanza, const char *const text, const size_t size)
| Set the text data for a text stanza.
int | xmpp_stanza_del_attribute (xmpp_stanza_t *const stanza, const char *const name)
| Delete an attribute from a stanza.
const char * | xmpp_stanza_get_ns (xmpp_stanza_t *const stanza)
| Get the namespace attribute of the stanza object.
const char * | xmpp_stanza_get_type (xmpp_stanza_t *const stanza)
| Get the 'type' attribute of the stanza object.
const char * | xmpp_stanza_get_id (xmpp_stanza_t *const stanza)
| Get the 'id' attribute of the stanza object.
const char * | xmpp_stanza_get_to (xmpp_stanza_t *const stanza)
| Get the 'to' attribute of the stanza object.
const char * | xmpp_stanza_get_from (xmpp_stanza_t *const stanza)
| Get the 'from' attribute of the stanza object.
int | xmpp_stanza_set_ns (xmpp_stanza_t *const stanza, const char *const ns)
| Set the stanza namespace.
int | xmpp_stanza_set_id (xmpp_stanza_t *const stanza, const char *const id)
| Set the 'id' attribute of a stanza.
int | xmpp_stanza_set_type (xmpp_stanza_t *const stanza, const char *const type)
| Set the 'type' attribute of a stanza.
int | xmpp_stanza_set_to (xmpp_stanza_t *const stanza, const char *const to)
| Set the 'to' attribute of a stanza.
int | xmpp_stanza_set_from (xmpp_stanza_t *const stanza, const char *const from)
| Set the 'from' attribute of a stanza.
xmpp_stanza_t * | xmpp_stanza_reply (xmpp_stanza_t *const stanza)
| Create a stanza object in reply to another.
xmpp_stanza_t * | xmpp_message_new (xmpp_ctx_t *ctx, const char *const type, const char *const to, const char *const id)
| Create a <message> stanza object with given attributes.
char * | xmpp_message_get_body (xmpp_stanza_t *msg)
| Get text from <body> child element.
int | xmpp_message_set_body (xmpp_stanza_t *msg, const char *const text)
| Add <body> child element to a <message> stanza with the given text.
xmpp_stanza_t * | xmpp_iq_new (xmpp_ctx_t *ctx, const char *const type, const char *const id)
| Create an <iq> stanza object with given attributes.
xmpp_stanza_t * | xmpp_presence_new (xmpp_ctx_t *ctx)
| Create a <presence> stanza object.
xmpp_stanza_t * | xmpp_error_new (xmpp_ctx_t *ctx, xmpp_error_type_t const type, const char *const text)
| Create an <stream:error/> stanza object with given type and error text.
char * | xmpp_jid_new (xmpp_ctx_t *ctx, const char *node, const char *domain, const char *resource)
| Create a JID string from component parts node, domain, and resource.
char * | xmpp_jid_bare (xmpp_ctx_t *ctx, const char *jid)
| Create a bare JID from a JID.
char * | xmpp_jid_node (xmpp_ctx_t *ctx, const char *jid)
| Create a node string from a JID.
char * | xmpp_jid_domain (xmpp_ctx_t *ctx, const char *jid)
| Create a domain string from a JID.
char * | xmpp_jid_resource (xmpp_ctx_t *ctx, const char *jid)
| Create a resource string from a JID.
void | xmpp_run_once (xmpp_ctx_t *ctx, const unsigned long timeout)
| Run the event loop once.
void | xmpp_run (xmpp_ctx_t *ctx)
| Start the event loop.
void | xmpp_stop (xmpp_ctx_t *ctx)
| Stop the event loop.
void | xmpp_ctx_set_timeout (xmpp_ctx_t *const ctx, const unsigned long timeout)
| Set the timeout to use when calling xmpp_run().
char * | xmpp_uuid_gen (xmpp_ctx_t *ctx)
| Generate UUID version 4.
char * | xmpp_sha1 (xmpp_ctx_t *ctx, const unsigned char *data, size_t len)
| Compute SHA1 message digest.
void | xmpp_sha1_digest (const unsigned char *data, size_t len, unsigned char *digest)
| Compute SHA1 message digest.
xmpp_sha1_t * | xmpp_sha1_new (xmpp_ctx_t *ctx)
| Create new SHA1 object.
void | xmpp_sha1_free (xmpp_sha1_t *sha1)
| Destroy SHA1 object.
void | xmpp_sha1_update (xmpp_sha1_t *sha1, const unsigned char *data, size_t len)
| Update SHA1 context with the next portion of data.
void | xmpp_sha1_final (xmpp_sha1_t *sha1)
| Finish SHA1 computation.
char * | xmpp_sha1_to_string (xmpp_sha1_t *sha1, char *s, size_t slen)
| Return message digest rendered as a string.
char * | xmpp_sha1_to_string_alloc (xmpp_sha1_t *sha1)
| Return message digest rendered as a string.
void | xmpp_sha1_to_digest (xmpp_sha1_t *sha1, unsigned char *digest)
| Stores message digest to a user's buffer.
char * | xmpp_base64_encode (xmpp_ctx_t *ctx, const unsigned char *data, size_t len)
| Base64 encoding routine.
char * | xmpp_base64_decode_str (xmpp_ctx_t *ctx, const char *base64, size_t len)
| Base64 decoding routine.
void | xmpp_base64_decode_bin (xmpp_ctx_t *ctx, const char *base64, size_t len, unsigned char **out, size_t *outlen)
| Base64 decoding routine.

## Detailed Description

Strophe public C API definitions.

## Macro Definition Documentation

## ◆ XMPP_NS_CLIENT

#define XMPP_NS_CLIENT "jabber:client"

Namespace definition for 'jabber:client'.

## ◆ XMPP_NS_COMPONENT

#define XMPP_NS_COMPONENT "jabber:component:accept"

Namespace definition for 'jabber:component:accept'.

## ◆ XMPP_NS_STREAMS

#define XMPP_NS_STREAMS "http://etherx.jabber.org/streams"

Namespace definition for 'http://etherx.jabber.org/streams'.

## ◆ XMPP_NS_STREAMS_IETF

#define XMPP_NS_STREAMS_IETF "urn:ietf:params:xml:ns:xmpp-streams"

Namespace definition for 'urn:ietf:params:xml:ns:xmpp-streams'.

## ◆ XMPP_NS_TLS

#define XMPP_NS_TLS "urn:ietf:params:xml:ns:xmpp-tls"

Namespace definition for 'url:ietf:params:xml:ns:xmpp-tls'.

## ◆ XMPP_NS_SASL

#define XMPP_NS_SASL "urn:ietf:params:xml:ns:xmpp-sasl"

Namespace definition for 'urn:ietf:params:xml:ns:xmpp-sasl'.

## ◆ XMPP_NS_BIND

#define XMPP_NS_BIND "urn:ietf:params:xml:ns:xmpp-bind"

Namespace definition for 'urn:ietf:params:xml:ns:xmpp-bind'.

## ◆ XMPP_NS_SESSION

#define XMPP_NS_SESSION "urn:ietf:params:xml:ns:xmpp-session"

Namespace definition for 'urn:ietf:params:xml:ns:xmpp-session'.

## ◆ XMPP_NS_AUTH

#define XMPP_NS_AUTH "jabber:iq:auth"

Namespace definition for 'jabber:iq:auth'.

## ◆ XMPP_NS_DISCO_INFO

#define XMPP_NS_DISCO_INFO "http://jabber.org/protocol/disco#info"

Namespace definition for 'http://jabber.org/protocol/disco#info'.

## ◆ XMPP_NS_DISCO_ITEMS

#define XMPP_NS_DISCO_ITEMS "http://jabber.org/protocol/disco#items"

Namespace definition for 'http://jabber.org/protocol/disco#items'.

## ◆ XMPP_NS_ROSTER

#define XMPP_NS_ROSTER "jabber:iq:roster"

Namespace definition for 'jabber:iq:roster'.

## ◆ XMPP_EOK

#define XMPP_EOK 0

Success error code.

## ◆ XMPP_EMEM

#define XMPP_EMEM -1

Memory related failure error code.

This is returned on allocation errors and signals that the host may be out of memory.

## ◆ XMPP_EINVOP

#define XMPP_EINVOP -2

Invalid operation error code.

This error code is returned when the operation was invalid and signals that the Strophe API is being used incorrectly.

## ◆ XMPP_EINT

#define XMPP_EINT -3

Internal failure error code.

## ◆ XMPP_CONN_FLAG_DISABLE_TLS

#define XMPP_CONN_FLAG_DISABLE_TLS (1UL << 0)

## ◆ XMPP_CONN_FLAG_MANDATORY_TLS

#define XMPP_CONN_FLAG_MANDATORY_TLS (1UL << 1)

## ◆ XMPP_CONN_FLAG_LEGACY_SSL

#define XMPP_CONN_FLAG_LEGACY_SSL (1UL << 2)

## ◆ XMPP_CONN_FLAG_TRUST_TLS

#define XMPP_CONN_FLAG_TRUST_TLS (1UL << 3)

Trust server's certificate even if it is invalid.

## ◆ XMPP_CONN_FLAG_LEGACY_AUTH

#define XMPP_CONN_FLAG_LEGACY_AUTH (1UL << 4)

Enable legacy authentication support.

## ◆ XMPP_SHA1_DIGEST_SIZE

#define XMPP_SHA1_DIGEST_SIZE 20

Size of the SHA1 message digest.

## Typedef Documentation

## ◆ xmpp_log_handler

typedef void(* xmpp_log_handler) (void *const userdata, const xmpp_log_level_t level, const char *const area, const char *const msg)

## ◆ xmpp_conn_handler

typedef void(* xmpp_conn_handler) (xmpp_conn_t *const conn, const xmpp_conn_event_t event, const int error, xmpp_stream_error_t *const stream_error, void *const userdata)

## ◆ xmpp_certfail_handler

typedef int(* xmpp_certfail_handler) (xmpp_tlscert_t *cert, const char *const errormsg)

## ◆ xmpp_timed_handler

typedef int(* xmpp_timed_handler) (xmpp_conn_t *const conn, void *const userdata)

## ◆ xmpp_handler

typedef int(* xmpp_handler) (xmpp_conn_t *const conn, xmpp_stanza_t *const stanza, void *const userdata)

## Enumeration Type Documentation

## ◆ xmpp_log_level_t

enum xmpp_log_level_t

Enumerator
XMPP_LEVEL_DEBUG |
XMPP_LEVEL_INFO |
XMPP_LEVEL_WARN |
XMPP_LEVEL_ERROR |

## ◆ xmpp_conn_type_t

enum xmpp_conn_type_t

Enumerator
XMPP_UNKNOWN |
XMPP_CLIENT |
XMPP_COMPONENT |

## ◆ xmpp_conn_event_t

enum xmpp_conn_event_t

Enumerator
XMPP_CONN_CONNECT |
XMPP_CONN_RAW_CONNECT |
XMPP_CONN_DISCONNECT |
XMPP_CONN_FAIL |

## ◆ xmpp_error_type_t

enum xmpp_error_type_t

Enumerator
XMPP_SE_BAD_FORMAT |
XMPP_SE_BAD_NS_PREFIX |
XMPP_SE_CONFLICT |
XMPP_SE_CONN_TIMEOUT |
XMPP_SE_HOST_GONE |
XMPP_SE_HOST_UNKNOWN |
XMPP_SE_IMPROPER_ADDR |
XMPP_SE_INTERNAL_SERVER_ERROR |
XMPP_SE_INVALID_FROM |
XMPP_SE_INVALID_ID |
XMPP_SE_INVALID_NS |
XMPP_SE_INVALID_XML |
XMPP_SE_NOT_AUTHORIZED |
XMPP_SE_POLICY_VIOLATION |
XMPP_SE_REMOTE_CONN_FAILED |
XMPP_SE_RESOURCE_CONSTRAINT |
XMPP_SE_RESTRICTED_XML |
XMPP_SE_SEE_OTHER_HOST |
XMPP_SE_SYSTEM_SHUTDOWN |
XMPP_SE_UNDEFINED_CONDITION |
XMPP_SE_UNSUPPORTED_ENCODING |
XMPP_SE_UNSUPPORTED_STANZA_TYPE |
XMPP_SE_UNSUPPORTED_VERSION |
XMPP_SE_XML_NOT_WELL_FORMED |

## Function Documentation

## ◆ xmpp_free()

void xmpp_free | ( | const xmpp_ctx_t *const | ctx,
|  | void * | p )

Free memory in a Strophe context.

All Strophe functions will use this to free allocated memory.

Parameters

  ctx | a Strophe context object
  p | a pointer referencing memory to be freed

## ◆ xmpp_send_error()

void xmpp_send_error | ( | xmpp_conn_t *const | conn,
|  | xmpp_error_type_t const | type,
|  | char *const | text )

## ◆ xmpp_conn_tlscert_path()

void xmpp_conn_tlscert_path | ( | xmpp_conn_t *const | conn,
|  | char * | path )

## ◆ xmpp_conn_tls_peer_cert()

xmpp_tlscert_t * xmpp_conn_tls_peer_cert | ( | xmpp_conn_t *const | conn | ) |

## ◆ xmpp_conn_tlscert_version()

int xmpp_conn_tlscert_version | ( | xmpp_tlscert_t * | cert | ) |

## ◆ xmpp_conn_tlscert_serialnumber()

char * xmpp_conn_tlscert_serialnumber | ( | xmpp_tlscert_t * | cert | ) |

## ◆ xmpp_conn_tlscert_subjectname()

char * xmpp_conn_tlscert_subjectname | ( | xmpp_tlscert_t * | cert | ) |

## ◆ xmpp_conn_tlscert_issuername()

char * xmpp_conn_tlscert_issuername | ( | xmpp_tlscert_t * | cert | ) |

## ◆ xmpp_conn_tlscert_fingerprint()

char * xmpp_conn_tlscert_fingerprint | ( | xmpp_tlscert_t * | cert | ) |

## ◆ xmpp_conn_tlscert_notbefore()

char * xmpp_conn_tlscert_notbefore | ( | xmpp_tlscert_t * | cert | ) |

## ◆ xmpp_conn_tlscert_notafter()

char * xmpp_conn_tlscert_notafter | ( | xmpp_tlscert_t * | cert | ) |

## ◆ xmpp_conn_tlscert_signature_algorithm()

char * xmpp_conn_tlscert_signature_algorithm | ( | xmpp_tlscert_t * | cert | ) |

## ◆ xmpp_conn_tlscert_key_algorithm()

char * xmpp_conn_tlscert_key_algorithm | ( | xmpp_tlscert_t * | cert | ) |

## ◆ xmpp_conn_free_tlscert()

void xmpp_conn_free_tlscert | ( | xmpp_ctx_t * | ctx,
|  | xmpp_tlscert_t * | cert )

## ◆ xmpp_jid_new()

char * xmpp_jid_new | ( | xmpp_ctx_t * | ctx,
|  | const char * | node,
|  | const char * | domain,
|  | const char * | resource )

Create a JID string from component parts node, domain, and resource.

Parameters

  ctx | the Strophe context object
  node | a string representing the node
  domain | a string representing the domain. Required.
  resource | a string representing the resource

Returns
  an allocated string with the full JID or NULL if no domain is specified

## ◆ xmpp_jid_bare()

char * xmpp_jid_bare | ( | xmpp_ctx_t * | ctx,
|  | const char * | jid )

Create a bare JID from a JID.

Parameters

  ctx | the Strophe context object
  jid | the JID

Returns
  an allocated string with the bare JID or NULL on an error

## ◆ xmpp_jid_node()

char * xmpp_jid_node | ( | xmpp_ctx_t * | ctx,
|  | const char * | jid )

Create a node string from a JID.

Parameters

  ctx | a Strophe context object
  jid | the JID

Returns
  an allocated string with the node or NULL if no node is found or an error occurs

## ◆ xmpp_jid_domain()

char * xmpp_jid_domain | ( | xmpp_ctx_t * | ctx,
|  | const char * | jid )

Create a domain string from a JID.

Parameters

  ctx | the Strophe context object
  jid | the JID

Returns
  an allocated string with the domain or NULL on an error

## ◆ xmpp_jid_resource()

char * xmpp_jid_resource | ( | xmpp_ctx_t * | ctx,
|  | const char * | jid )

Create a resource string from a JID.

Parameters

  ctx | a Strophe context object
  jid | the JID

Returns
  an allocated string with the resource or NULL if no resource is found or an error occurs

## ◆ xmpp_uuid_gen()

char * xmpp_uuid_gen | ( | xmpp_ctx_t * | ctx | ) |

Generate UUID version 4.

This function allocates memory for the resulting string and must be freed with xmpp_free().

Parameters

  ctx | a Strophe context object

Returns
  ASCIIZ string