Strophe 0.12
XMPP client library
Functions
stanza.c File Reference

Stanza creation and manipulation. More...

Functions

xmpp_stanza_t * xmpp_stanza_new (xmpp_ctx_t *ctx)
 Create a stanza object. More...
 
xmpp_stanza_t * xmpp_stanza_clone (xmpp_stanza_t *stanza)
 Clone a stanza object. More...
 
static int _stanza_copy_attributes (xmpp_stanza_t *dst, const xmpp_stanza_t *src)
 
xmpp_stanza_t * xmpp_stanza_copy (const xmpp_stanza_t *stanza)
 Copy a stanza and its children. More...
 
int xmpp_stanza_release (xmpp_stanza_t *stanza)
 Release a stanza object and all of its children. More...
 
xmpp_ctx_t * xmpp_stanza_get_context (const xmpp_stanza_t *stanza)
 Get the strophe context that the stanza is associated with. More...
 
int xmpp_stanza_is_text (xmpp_stanza_t *stanza)
 Determine if a stanza is a text node. More...
 
int xmpp_stanza_is_tag (xmpp_stanza_t *stanza)
 Determine if a stanza is a tag node. More...
 
static char * _escape_xml (xmpp_ctx_t *ctx, char *text)
 
static void _render_update (int *written, int length, int lastwrite, size_t *left, char **ptr)
 
static int _render_stanza_recursive (xmpp_stanza_t *stanza, char *buf, size_t buflen)
 
int xmpp_stanza_to_text (xmpp_stanza_t *stanza, char **buf, size_t *buflen)
 Render a stanza object to text. More...
 
int xmpp_stanza_set_name (xmpp_stanza_t *stanza, const char *name)
 Set the name of a stanza. More...
 
const char * xmpp_stanza_get_name (xmpp_stanza_t *stanza)
 Get the stanza name. More...
 
int xmpp_stanza_get_attribute_count (xmpp_stanza_t *stanza)
 Count the attributes in a stanza object. More...
 
int xmpp_stanza_get_attributes (xmpp_stanza_t *stanza, const char **attr, int attrlen)
 Get all attributes for a stanza object. More...
 
int xmpp_stanza_set_attribute (xmpp_stanza_t *stanza, const char *key, const char *value)
 Set an attribute for a stanza object. More...
 
int xmpp_stanza_set_ns (xmpp_stanza_t *stanza, const char *ns)
 Set the stanza namespace. More...
 
int xmpp_stanza_add_child_ex (xmpp_stanza_t *stanza, xmpp_stanza_t *child, int do_clone)
 Add a child stanza to a stanza object. More...
 
int xmpp_stanza_add_child (xmpp_stanza_t *stanza, xmpp_stanza_t *child)
 Add a child stanza to a stanza object. More...
 
int xmpp_stanza_set_text (xmpp_stanza_t *stanza, const char *text)
 Set the text data for a text stanza. More...
 
int xmpp_stanza_set_text_with_size (xmpp_stanza_t *stanza, const char *text, size_t size)
 Set the text data for a text stanza. More...
 
const char * xmpp_stanza_get_id (xmpp_stanza_t *stanza)
 Get the 'id' attribute of the stanza object. More...
 
const char * xmpp_stanza_get_ns (xmpp_stanza_t *stanza)
 Get the namespace attribute of the stanza object. More...
 
const char * xmpp_stanza_get_type (xmpp_stanza_t *stanza)
 Get the 'type' attribute of the stanza object. More...
 
const char * xmpp_stanza_get_to (xmpp_stanza_t *stanza)
 Get the 'to' attribute of the stanza object. More...
 
const char * xmpp_stanza_get_from (xmpp_stanza_t *stanza)
 Get the 'from' attribute of the stanza object. More...
 
xmpp_stanza_t * xmpp_stanza_get_child_by_path (xmpp_stanza_t *stanza,...)
 Get the first child of stanza following a path-like list of names. More...
 
xmpp_stanza_t * xmpp_stanza_get_child_by_name (xmpp_stanza_t *stanza, const char *name)
 Get the first child of stanza with name. More...
 
xmpp_stanza_t * xmpp_stanza_get_child_by_ns (xmpp_stanza_t *stanza, const char *ns)
 Get the first child of a stanza with a given namespace. More...
 
xmpp_stanza_t * xmpp_stanza_get_child_by_name_and_ns (xmpp_stanza_t *stanza, const char *name, const char *ns)
 Get the first child of stanza with name and a given namespace. More...
 
xmpp_stanza_t * xmpp_stanza_get_children (xmpp_stanza_t *stanza)
 Get the list of children. More...
 
xmpp_stanza_t * xmpp_stanza_get_next (xmpp_stanza_t *stanza)
 Get the next sibling of a stanza. More...
 
char * xmpp_stanza_get_text (xmpp_stanza_t *stanza)
 Get the text data for a text stanza. More...
 
const char * xmpp_stanza_get_text_ptr (xmpp_stanza_t *stanza)
 Get the text data pointer for a text stanza. More...
 
int xmpp_stanza_set_id (xmpp_stanza_t *stanza, const char *id)
 Set the 'id' attribute of a stanza. More...
 
int xmpp_stanza_set_type (xmpp_stanza_t *stanza, const char *type)
 Set the 'type' attribute of a stanza. More...
 
int xmpp_stanza_set_to (xmpp_stanza_t *stanza, const char *to)
 Set the 'to' attribute of a stanza. More...
 
int xmpp_stanza_set_from (xmpp_stanza_t *stanza, const char *from)
 Set the 'from' attribute of a stanza. More...
 
const char * xmpp_stanza_get_attribute (xmpp_stanza_t *stanza, const char *name)
 Get an attribute from a stanza. More...
 
int xmpp_stanza_del_attribute (xmpp_stanza_t *stanza, const char *name)
 Delete an attribute from a stanza. More...
 
xmpp_stanza_t * xmpp_stanza_reply (xmpp_stanza_t *stanza)
 Create a stanza object in reply to another. More...
 
xmpp_stanza_t * xmpp_stanza_reply_error (xmpp_stanza_t *stanza, const char *error_type, const char *condition, const char *text)
 Create an error stanza in reply to the provided stanza. More...
 
static xmpp_stanza_t * _stanza_new_with_attrs (xmpp_ctx_t *ctx, const char *name, const char *type, const char *id, const char *to)
 
xmpp_stanza_t * xmpp_message_new (xmpp_ctx_t *ctx, const char *type, const char *to, const char *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 *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 *type, const char *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 type, const char *text)
 Create an <stream:error/> stanza object with given type and error text. More...
 
static void _stub_stream_start (char *name, char **attrs, void *userdata)
 
static void _stub_stream_end (char *name, void *userdata)
 
static void _stream_stanza (xmpp_stanza_t *stanza, void *userdata)
 
xmpp_stanza_t * xmpp_stanza_new_from_string (xmpp_ctx_t *ctx, const char *str)
 Create a stanza object from the string. More...
 

Detailed Description

Stanza creation and manipulation.

Function Documentation

◆ _stanza_copy_attributes()

static int _stanza_copy_attributes ( xmpp_stanza_t *  dst,
const xmpp_stanza_t *  src 
)
static

◆ _escape_xml()

static char * _escape_xml ( xmpp_ctx_t *  ctx,
char *  text 
)
static

◆ _render_update()

static void _render_update ( int *  written,
int  length,
int  lastwrite,
size_t *  left,
char **  ptr 
)
static

◆ _render_stanza_recursive()

static int _render_stanza_recursive ( xmpp_stanza_t *  stanza,
char *  buf,
size_t  buflen 
)
static

◆ _stanza_new_with_attrs()

static xmpp_stanza_t * _stanza_new_with_attrs ( xmpp_ctx_t *  ctx,
const char *  name,
const char *  type,
const char *  id,
const char *  to 
)
static

◆ _stub_stream_start()

static void _stub_stream_start ( char *  name,
char **  attrs,
void *  userdata 
)
static

◆ _stub_stream_end()

static void _stub_stream_end ( char *  name,
void *  userdata 
)
static

◆ _stream_stanza()

static void _stream_stanza ( xmpp_stanza_t *  stanza,
void *  userdata 
)
static