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_CONN_FLAG_TRUST_TLS   (1UL << 3)
 Trust server's certificate even if it is invalid. More...
 
#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...
 
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. 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...
 
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. 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...
 
void xmpp_ctx_set_timeout (xmpp_ctx_t *const ctx, const unsigned long timeout)
 Set the timeout to use when calling xmpp_run(). 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. More...
 
void xmpp_sha1_digest (const unsigned char *data, size_t len, unsigned char *digest)
 Compute SHA1 message digest. 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. More...
 
void xmpp_sha1_final (xmpp_sha1_t *sha1)
 Finish SHA1 computation. More...
 
char * xmpp_sha1_to_string (xmpp_sha1_t *sha1, char *s, size_t slen)
 Return message digest rendered as a string. More...
 
char * xmpp_sha1_to_string_alloc (xmpp_sha1_t *sha1)
 Return message digest rendered as a 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. More...
 
char * xmpp_base64_decode_str (xmpp_ctx_t *ctx, const char *base64, size_t len)
 Base64 decoding routine. 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. 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_CONN_FLAG_TRUST_TLS

#define XMPP_CONN_FLAG_TRUST_TLS   (1UL << 3)

Trust server's certificate even if it is invalid.

◆ 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

Enumerator
XMPP_LEVEL_DEBUG 
XMPP_LEVEL_INFO 
XMPP_LEVEL_WARN 
XMPP_LEVEL_ERROR 

◆ xmpp_conn_type_t

Enumerator
XMPP_UNKNOWN 
XMPP_CLIENT 
XMPP_COMPONENT 

◆ xmpp_conn_event_t

Enumerator
XMPP_CONN_CONNECT 
XMPP_CONN_RAW_CONNECT 
XMPP_CONN_DISCONNECT 
XMPP_CONN_FAIL 

◆ 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
ctxa Strophe context object
pa 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_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
ctxthe Strophe context object
nodea string representing the node
domaina string representing the domain. Required.
resourcea 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
ctxthe Strophe context object
jidthe 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
ctxa Strophe context object
jidthe 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
ctxthe Strophe context object
jidthe 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
ctxa Strophe context object
jidthe 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
ctxa Strophe context object
Returns
ASCIIZ string