Strophe 0.9 XMPP client library

Data Structures | Macros | Typedefs | Enumerations | Functions
strophe.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'. More...
#define | XMPP_NS_COMPONENT "jabber:component:accept"
| Namespace definition for 'jabber:component:accept'. More...
#define | XMPP_NS_STREAMS "http://etherx.jabber.org/streams"
| Namespace definition for 'http://etherx.jabber.org/streams'. More...
#define | XMPP_NS_STREAMS_IETF "urn:ietf:params:xml:ns:xmpp-streams"
| Namespace definition for 'urn:ietf:params:xml:ns:xmpp-streams'. More...
#define | XMPP_NS_TLS "urn:ietf:params:xml:ns:xmpp-tls"
| Namespace definition for 'url:ietf:params:xml:ns:xmpp-tls'. More...
#define | XMPP_NS_SASL "urn:ietf:params:xml:ns:xmpp-sasl"
| Namespace definition for 'urn:ietf:params:xml:ns:xmpp-sasl'. More...
#define | XMPP_NS_BIND "urn:ietf:params:xml:ns:xmpp-bind"
| Namespace definition for 'urn:ietf:params:xml:ns:xmpp-bind'. More...
#define | XMPP_NS_SESSION "urn:ietf:params:xml:ns:xmpp-session"
| Namespace definition for 'urn:ietf:params:xml:ns:xmpp-session'. More...
#define | XMPP_NS_AUTH "jabber:iq:auth"
| Namespace definition for 'jabber:iq:auth'. More...
#define | XMPP_NS_DISCO_INFO "http://jabber.org/protocol/disco#info"
| Namespace definition for 'http://jabber.org/protocol/disco#info'. More...
#define | XMPP_NS_DISCO_ITEMS "http://jabber.org/protocol/disco#items"
| Namespace definition for 'http://jabber.org/protocol/disco#items'. More...
#define | XMPP_NS_ROSTER "jabber:iq:roster"
| Namespace definition for 'jabber:iq:roster'. More...
#define | XMPP_EOK 0
| Success error code. More...
#define | XMPP_EMEM -1
| Memory related failure error code. More...
#define | XMPP_EINVOP -2
| Invalid operation error code. More...
#define | XMPP_EINT -3
| Internal failure error code. More...
#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_SHA1_DIGEST_SIZE 20
| Size of the SHA1 message digest. More...

## 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_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. More...
void | xmpp_shutdown (void)
| Shutdown the Strophe library. More...
int | xmpp_version_check (int major, int minor)
| Check that Strophe supports a specific API version. More...
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. More...
void | xmpp_ctx_free (xmpp_ctx_t *const ctx)
| Free a Strophe context object that is no longer in use. More...
void | xmpp_free (const xmpp_ctx_t *const ctx, void *p)
| Free memory in a Strophe context. More...
xmpp_log_t * | xmpp_get_default_logger (xmpp_log_level_t level)
| Get a default logger with filtering. More...
xmpp_conn_t * | xmpp_conn_new (xmpp_ctx_t *const ctx)
| Create a new Strophe connection object. More...
xmpp_conn_t * | xmpp_conn_clone (xmpp_conn_t *const conn)
| Clone a Strophe connection object. More...
int | xmpp_conn_release (xmpp_conn_t *const conn)
| Release a Strophe connection object. More...
long | xmpp_conn_get_flags (const xmpp_conn_t *const conn)
| Return applied flags for the connection. More...
int | xmpp_conn_set_flags (xmpp_conn_t *const conn, long flags)
| Set flags for the connection. More...
const char * | xmpp_conn_get_jid (const xmpp_conn_t *const conn)
| Get the JID which is or will be bound to the connection. More...
const char * | xmpp_conn_get_bound_jid (const xmpp_conn_t *const conn)
| Get the JID discovered during binding time. More...
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. More...
const char * | xmpp_conn_get_pass (const xmpp_conn_t *const conn)
| Get the password used for authentication of a connection. More...
void | xmpp_conn_set_pass (xmpp_conn_t *const conn, const char *const pass)
| Set the password used to authenticate the connection. More...
xmpp_ctx_t * | xmpp_conn_get_context (xmpp_conn_t *const conn)
| Get the strophe context that the connection is associated with. More...
void | xmpp_conn_disable_tls (xmpp_conn_t *const conn)
| Disable TLS for this connection, called by users of the library. More...
int | xmpp_conn_is_secured (xmpp_conn_t *const conn)
| Return whether TLS session is established or not. More...
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. More...
int | xmpp_connect_client (xmpp_conn_t *const conn, const char *const altdomain, unsigned short altport, xmpp_conn_handler callback, void *const userdata)
| Initiate a connection to the XMPP server. More...
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. More...
int | xmpp_connect_raw (xmpp_conn_t *const conn, const char *const altdomain, unsigned short altport, xmpp_conn_handler callback, void *const userdata)
| Initiate a raw connection to the XMPP server. More...
int | xmpp_conn_open_stream_default (xmpp_conn_t *const conn)
| Send the default opening stream tag. More...
int | xmpp_conn_open_stream (xmpp_conn_t *const conn, char **attributes, size_t attributes_len)
| Send an opening stream tag. More...
int | xmpp_conn_tls_start (xmpp_conn_t *const conn)
| Start synchronous TLS handshake with the server. More...
void | xmpp_disconnect (xmpp_conn_t *const conn)
| Initiate termination of the connection to the XMPP server. More...
void | xmpp_send (xmpp_conn_t *const conn, xmpp_stanza_t *const stanza)
| Send an XML stanza to the XMPP server. More...
void | xmpp_send_raw_string (xmpp_conn_t *const conn, const char *const fmt,...)
| Send a raw string to the XMPP server. More...
void | xmpp_send_raw (xmpp_conn_t *const conn, const char *const data, const size_t len)
| Send raw bytes to the XMPP server. More...
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. More...
void | xmpp_timed_handler_delete (xmpp_conn_t *const conn, xmpp_timed_handler handler)
| Delete a timed handler. More...
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. More...
void | xmpp_handler_delete (xmpp_conn_t *const conn, xmpp_handler handler)
| Delete a stanza handler. More...
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. More...
void | xmpp_id_handler_delete (xmpp_conn_t *const conn, xmpp_handler handler, const char *const id)
| Delete an id based stanza handler. More...
xmpp_stanza_t * | xmpp_stanza_new (xmpp_ctx_t *ctx)
| Create a stanza object. More...
xmpp_stanza_t * | xmpp_stanza_clone (xmpp_stanza_t *const stanza)
| Clone a stanza object. More...
xmpp_stanza_t * | xmpp_stanza_copy (const xmpp_stanza_t *const stanza)
| Copy a stanza and its children. More...
int | xmpp_stanza_release (xmpp_stanza_t *const stanza)
| Release a stanza object and all of its children. More...
int | xmpp_stanza_is_text (xmpp_stanza_t *const stanza)
| Determine if a stanza is a text node. More...
int | xmpp_stanza_is_tag (xmpp_stanza_t *const stanza)
| Determine if a stanza is a tag node. More...
int | xmpp_stanza_to_text (xmpp_stanza_t *stanza, char **const buf, size_t *const buflen)
| Render a stanza object to text. More...
xmpp_stanza_t * | xmpp_stanza_get_children (xmpp_stanza_t *const stanza)
| Get the list of children. More...
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. More...
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. More...
xmpp_stanza_t * | xmpp_stanza_get_next (xmpp_stanza_t *const stanza)
| Get the next sibling of a stanza. More...
int | xmpp_stanza_add_child (xmpp_stanza_t *stanza, xmpp_stanza_t *child)
| Add a child stanza to a stanza object. More...
const char * | xmpp_stanza_get_attribute (xmpp_stanza_t *const stanza, const char *const name)
| Get an attribute from a stanza. More...
int | xmpp_stanza_get_attribute_count (xmpp_stanza_t *const stanza)
| Count the attributes in a stanza object. More...
int | xmpp_stanza_get_attributes (xmpp_stanza_t *const stanza, const char **attr, int attrlen)
| Get all attributes for a stanza object. More...
char * | xmpp_stanza_get_text (xmpp_stanza_t *const stanza)
| Get the text data for a text stanza. More...
const char * | xmpp_stanza_get_text_ptr (xmpp_stanza_t *const stanza)
| Get the text data pointer for a text stanza. More...
const char * | xmpp_stanza_get_name (xmpp_stanza_t *const stanza)
| Get the stanza name. More...
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. More...
int | xmpp_stanza_set_name (xmpp_stanza_t *stanza, const char *const name)
| Set the name of a stanza. More...
int | xmpp_stanza_set_text (xmpp_stanza_t *stanza, const char *const text)
| Set the text data for a text stanza. More...
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. More...
int | xmpp_stanza_del_attribute (xmpp_stanza_t *const stanza, const char *const name)
| Delete an attribute from a stanza. More...
const char * | xmpp_stanza_get_ns (xmpp_stanza_t *const stanza)
| Get the namespace attribute of the stanza object. More...
const char * | xmpp_stanza_get_type (xmpp_stanza_t *const stanza)
| Get the 'type' attribute of the stanza object. More...
const char * | xmpp_stanza_get_id (xmpp_stanza_t *const stanza)
| Get the 'id' attribute of the stanza object. More...
const char * | xmpp_stanza_get_to (xmpp_stanza_t *const stanza)
| Get the 'to' attribute of the stanza object. More...
const char * | xmpp_stanza_get_from (xmpp_stanza_t *const stanza)
| Get the 'from' attribute of the stanza object. More...
int | xmpp_stanza_set_ns (xmpp_stanza_t *const stanza, const char *const ns)
| Set the stanza namespace. More...
int | xmpp_stanza_set_id (xmpp_stanza_t *const stanza, const char *const id)
| Set the 'id' attribute of a stanza. More...
int | xmpp_stanza_set_type (xmpp_stanza_t *const stanza, const char *const type)
| Set the 'type' attribute of a stanza. More...
int | xmpp_stanza_set_to (xmpp_stanza_t *const stanza, const char *const to)
| Set the 'to' attribute of a stanza. More...
int | xmpp_stanza_set_from (xmpp_stanza_t *const stanza, const char *const from)
| Set the 'from' attribute of a stanza. More...
xmpp_stanza_t * | xmpp_stanza_reply (xmpp_stanza_t *const stanza)
| Create a stanza object in reply to another. More...
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. More...
char * | xmpp_message_get_body (xmpp_stanza_t *msg)
| Get text from <body> child element. More...
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. More...
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. More...
xmpp_stanza_t * | xmpp_presence_new (xmpp_ctx_t *ctx)
| Create a <presence> stanza object. More...
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. More...
char * | xmpp_jid_bare (xmpp_ctx_t *ctx, const char *jid)
| Create a bare JID from a JID. More...
char * | xmpp_jid_node (xmpp_ctx_t *ctx, const char *jid)
| Create a node string from a JID. More...
char * | xmpp_jid_domain (xmpp_ctx_t *ctx, const char *jid)
| Create a domain string from a JID. More...
char * | xmpp_jid_resource (xmpp_ctx_t *ctx, const char *jid)
| Create a resource string from a JID. More...
void | xmpp_run_once (xmpp_ctx_t *ctx, const unsigned long timeout)
| Run the event loop once. More...
void | xmpp_run (xmpp_ctx_t *ctx)
| Start the event loop. More...
void | xmpp_stop (xmpp_ctx_t *ctx)
| Stop the event loop. More...
char * | xmpp_uuid_gen (xmpp_ctx_t *ctx)
| Generate UUID version 4. More...
char * | xmpp_sha1 (xmpp_ctx_t *ctx, const unsigned char *data, size_t len)
| Compute SHA1 message digest Returns an allocated string which represents SHA1 message digest in hexadecimal notation. More...
xmpp_sha1_t * | xmpp_sha1_new (xmpp_ctx_t *ctx)
| Create new SHA1 object. More...
void | xmpp_sha1_free (xmpp_sha1_t *sha1)
| Destroy SHA1 object. More...
void | xmpp_sha1_update (xmpp_sha1_t *sha1, const unsigned char *data, size_t len)
| Update SHA1 context with the next portion of data Can be called repeatedly. More...
void | xmpp_sha1_final (xmpp_sha1_t *sha1)
| Finish SHA1 computation Don't call xmpp_sha1_update() after this function. More...
char * | xmpp_sha1_to_string (xmpp_sha1_t *sha1, char *s, size_t slen)
| Return message digest rendered as a string Stores the string to a user's buffer and returns the buffer. More...
char * | xmpp_sha1_to_string_alloc (xmpp_sha1_t *sha1)
| Return message digest rendered as a string Returns an allocated string. More...
void | xmpp_sha1_to_digest (xmpp_sha1_t *sha1, unsigned char *digest)
| Stores message digest to a user's buffer. More...
char * | xmpp_base64_encode (xmpp_ctx_t *ctx, const unsigned char *data, size_t len)
| Base64 encoding routine Returns an allocated string which must be freed with xmpp_free(). More...
char * | xmpp_base64_decode_str (xmpp_ctx_t *ctx, const char *base64, size_t len)
| Base64 decoding routine Returns an allocated string which must be freed with xmpp_free(). More...
void | xmpp_base64_decode_bin (xmpp_ctx_t *ctx, const char *base64, size_t len, unsigned char **out, size_t *outlen)
| Base64 decoding routine Returns an allocated buffer which must be freed with xmpp_free(). More...

## 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_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_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_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