#include <string.h>#include <stdlib.h>#include <sys/types.h>#include <stdio.h>#include <errno.h>#include <syslog.h>#include <strings.h>#include <unistd.h>#include <sys/time.h>#include "expat.h"#include <varargs.h>


Go to the source code of this file.
Definition in file xmpp/xode.h.
| #define MAXSHORTSTR 203 |
Definition at line 45 of file xmpp/xode.h.
| #define QUAD_T unsigned long long |
Definition at line 46 of file xmpp/xode.h.
| #define snprintf ap_snprintf |
Definition at line 77 of file xmpp/xode.h.
| #define VA_END va_end(ap) |
Definition at line 62 of file xmpp/xode.h.
| #define VA_LOCAL_DECL va_list ap; |
Definition at line 60 of file xmpp/xode.h.
| #define VA_START | ( | f | ) | va_start(ap) |
Definition at line 61 of file xmpp/xode.h.
| #define vsnprintf ap_vsnprintf |
Definition at line 82 of file xmpp/xode.h.
| #define XODE_STREAM_CLOSE 2 |
Definition at line 279 of file xmpp/xode.h.
| #define XODE_STREAM_ERROR 4 |
Definition at line 280 of file xmpp/xode.h.
| #define XODE_STREAM_MAXDEPTH 100 |
Definition at line 275 of file xmpp/xode.h.
| #define XODE_STREAM_MAXNODE 1000000 |
Definition at line 274 of file xmpp/xode.h.
| #define XODE_STREAM_NODE 1 |
Definition at line 278 of file xmpp/xode.h.
| #define XODE_STREAM_ROOT 0 |
Definition at line 277 of file xmpp/xode.h.
| #define XODE_TYPE_ATTRIB 1 |
Definition at line 180 of file xmpp/xode.h.
| #define XODE_TYPE_CDATA 2 |
Definition at line 181 of file xmpp/xode.h.
| #define XODE_TYPE_LAST 2 |
Definition at line 183 of file xmpp/xode.h.
| #define XODE_TYPE_TAG 0 |
Definition at line 179 of file xmpp/xode.h.
| #define XODE_TYPE_UNDEF -1 |
Definition at line 184 of file xmpp/xode.h.
| typedef struct xode_struct _xode |
| typedef struct xode_pool_struct _xode_pool |
| typedef struct xode_stream_struct _xode_stream |
| typedef struct xode_struct * xode |
| typedef struct xode_pool_struct * xode_pool |
| typedef void(* xode_pool_cleaner)(void *arg) |
Definition at line 95 of file xmpp/xode.h.
| typedef struct xode_spool_struct * xode_spool |
| typedef struct xode_stream_struct * xode_stream |
| typedef void(* xode_stream_onNode)(int type, xode x, void *arg) |
Definition at line 282 of file xmpp/xode.h.
| int ap_snprintf | ( | char * | , | |
| size_t | , | |||
| const char * | , | |||
| ... | ||||
| ) |
| int ap_vsnprintf | ( | char * | , | |
| size_t | , | |||
| const char * | , | |||
| va_list | ap | |||
| ) |
Definition at line 670 of file jabber/xode.c.
References _xode_strcmp(), NULL, xode_cmp(), xode_get_data(), xode_get_firstattrib(), xode_get_firstchild(), xode_get_name(), xode_get_nextsibling(), xode_get_type(), XODE_TYPE_ATTRIB, XODE_TYPE_CDATA, and XODE_TYPE_TAG.
Referenced by xode_cmp().
Definition at line 755 of file jabber/xode.c.
References NULL, xode_get_firstattrib(), xode_get_firstchild(), xode_get_name(), xode_has_attribs(), xode_has_children(), xode_insert_node(), and xode_new().
Definition at line 772 of file jabber/xode.c.
References NULL, xode_get_firstattrib(), xode_get_firstchild(), xode_get_name(), xode_has_attribs(), xode_has_children(), xode_insert_node(), and xode_new_frompool().
| void xode_free | ( | xode | node | ) |
Definition at line 801 of file jabber/xode.c.
References NULL, xode_struct::p, and xode_pool_free().
Referenced by _xode_stream_cleanup(), conn_free(), do_send_message_component(), in_stream_node_callback(), out_stream_node_callback(), stream_node_callback(), xj_jcon_send_msg(), xj_jcon_send_presence(), xj_jcon_send_subscribe(), xj_jcon_set_roster(), xj_jcon_user_auth(), xj_manage_jab(), xode_from_file(), xode_from_str(), and xode_send_domain().
| xode xode_from_file | ( | char * | file | ) |
Definition at line 141 of file jabber/xode_from.c.
References _xode_expat_charData(), _xode_expat_endElement(), _xode_expat_startElement(), buf, len, NULL, snprintf, and xode_free().
| xode xode_from_str | ( | char * | str, | |
| int | len | |||
| ) |
Definition at line 81 of file jabber/xode_from.c.
References _xode_expat_charData(), _xode_expat_endElement(), _xode_expat_startElement(), NULL, and xode_free().
| xode xode_from_strx | ( | char * | str, | |
| int | len, | |||
| int * | err, | |||
| int * | pos | |||
| ) |
Definition at line 111 of file jabber/xode_from.c.
References _xode_expat_charData(), _xode_expat_endElement(), _xode_expat_startElement(), and NULL.
| char* xode_get_attrib | ( | xode | owner, | |
| const char * | name | |||
| ) |
Definition at line 453 of file jabber/xode.c.
References _xode_search(), xode_struct::data, xode_struct::firstattrib, NULL, and XODE_TYPE_ATTRIB.
Referenced by in_stream_node_callback(), out_stream_node_callback(), stream_node_callback(), xj_jcon_user_auth(), xj_manage_jab(), and xode_get_tag().
| char* xode_get_data | ( | xode | node | ) |
Definition at line 545 of file jabber/xode.c.
References xode_struct::data, NULL, xode_get_firstchild(), xode_get_nextsibling(), xode_get_type(), XODE_TYPE_CDATA, and XODE_TYPE_TAG.
Referenced by _xode_tag2str(), _xode_to_prettystr(), _xode_tospool(), in_stream_node_callback(), stream_node_callback(), xj_manage_jab(), xode_cmp(), xode_get_tagdata(), and xode_insert_node().
| int xode_get_datasz | ( | xode | node | ) |
Definition at line 562 of file jabber/xode.c.
References xode_struct::data_sz, NULL, xode_get_firstchild(), xode_get_nextsibling(), xode_get_type(), XODE_TYPE_CDATA, and XODE_TYPE_TAG.
Referenced by xode_insert_node().
Definition at line 496 of file jabber/xode.c.
References xode_struct::firstattrib, and NULL.
Referenced by _xode_tag2str(), _xode_to_prettystr(), xode_cmp(), xode_dup(), xode_dup_frompool(), and xode_insert_tagnode().
Definition at line 503 of file jabber/xode.c.
References xode_struct::firstchild, and NULL.
Referenced by _xode_to_prettystr(), _xode_tospool(), out_stream_node_callback(), xj_manage_jab(), xode_cmp(), xode_dup(), xode_dup_frompool(), xode_get_data(), xode_get_datasz(), and xode_insert_tagnode().
| char* xode_get_name | ( | xode | node | ) |
Definition at line 538 of file jabber/xode.c.
References xode_struct::name, and NULL.
Referenced by _xode_tag2str(), _xode_to_prettystr(), in_stream_node_callback(), out_stream_node_callback(), stream_node_callback(), xj_jcon_user_auth(), xj_manage_jab(), xode_cmp(), xode_dup(), xode_dup_frompool(), xode_get_tag(), xode_insert_node(), and xode_insert_tagnode().
Definition at line 517 of file jabber/xode.c.
References xode_struct::next, and NULL.
Referenced by _xode_tag2str(), _xode_to_prettystr(), _xode_tospool(), out_stream_node_callback(), xj_manage_jab(), xode_cmp(), xode_get_data(), xode_get_datasz(), xode_get_tag(), and xode_insert_node().
Definition at line 531 of file jabber/xode.c.
References NULL, and xode_struct::parent.
Referenced by _xode_expat_endElement(), _xode_stream_endElement(), and _xode_tospool().
Definition at line 604 of file jabber/xode.c.
References NULL, and xode_struct::p.
Referenced by _xode_appendsibling(), _xode_tag2str(), _xode_tospool(), xode_stream_eat(), xode_to_prettystr(), and xode_wrap().
Definition at line 339 of file jabber/xode.c.
References _xode_search(), _xode_strcmp(), xode_struct::firstchild, NULL, xode_get_attrib(), xode_get_name(), xode_get_nextsibling(), xode_get_tag(), xode_get_type(), and XODE_TYPE_TAG.
Referenced by in_stream_node_callback(), stream_node_callback(), xj_jcon_user_auth(), xj_manage_jab(), xode_get_tag(), and xode_get_tagdata().
| char* xode_get_tagdata | ( | xode | parent, | |
| const char * | name | |||
| ) |
| int xode_get_type | ( | xode | node | ) |
Definition at line 581 of file jabber/xode.c.
References NULL, and xode_struct::type.
Referenced by _xode_to_prettystr(), _xode_tospool(), xode_cmp(), xode_get_data(), xode_get_datasz(), xode_get_tag(), and xode_insert_node().
| void* xode_get_vattrib | ( | xode | owner, | |
| const char * | name | |||
| ) |
Definition at line 483 of file jabber/xode.c.
References _xode_search(), xode_struct::firstattrib, xode_struct::firstchild, NULL, and XODE_TYPE_ATTRIB.
| int xode_has_attribs | ( | xode | node | ) |
Definition at line 597 of file jabber/xode.c.
References xode_struct::firstattrib, and NULL.
Referenced by xode_dup(), xode_dup_frompool(), and xode_insert_tagnode().
| int xode_has_children | ( | xode | node | ) |
Definition at line 590 of file jabber/xode.c.
References xode_struct::firstchild, and NULL.
Referenced by _xode_tospool(), xode_dup(), xode_dup_frompool(), and xode_insert_tagnode().
| void xode_hide | ( | xode | child | ) |
Definition at line 611 of file jabber/xode.c.
References _xode_hidesibling(), xode_struct::firstchild, xode_struct::lastchild, xode_struct::next, NULL, xode_struct::parent, and xode_struct::prev.
| void xode_hide_attrib | ( | xode | parent, | |
| const char * | name | |||
| ) |
Definition at line 630 of file jabber/xode.c.
References _xode_hidesibling(), _xode_search(), xode_struct::firstattrib, xode_struct::lastattrib, xode_struct::next, NULL, xode_struct::prev, and XODE_TYPE_ATTRIB.
Definition at line 292 of file jabber/xode.c.
References _xode_insert(), _xode_merge(), xode_struct::data, xode_struct::data_sz, xode_struct::lastchild, NULL, xode_struct::p, xode_struct::type, xode_pool_malloc(), and XODE_TYPE_CDATA.
Referenced by _xode_expat_charData(), _xode_stream_charData(), do_send_message_component(), do_send_message_server(), in_stream_node_callback(), out_stream_node_callback(), stream_node_callback(), xj_jcon_send_msg(), xj_jcon_send_presence(), xj_jcon_user_auth(), xode_insert_node(), and xode_stream_eat().
Definition at line 731 of file jabber/xode.c.
References NULL, xode_get_data(), xode_get_datasz(), xode_get_name(), xode_get_nextsibling(), xode_get_type(), xode_insert_cdata(), xode_insert_tagnode(), xode_put_attrib(), XODE_TYPE_ATTRIB, XODE_TYPE_CDATA, and XODE_TYPE_TAG.
Referenced by xode_dup(), xode_dup_frompool(), xode_insert_tagnode(), and xode_send_domain().
Definition at line 271 of file jabber/xode.c.
References _xode_insert(), and XODE_TYPE_TAG.
Referenced by _xode_expat_startElement(), _xode_stream_startElement(), do_send_message_component(), do_send_message_server(), xj_jcon_send_presence(), xj_jcon_user_auth(), and xode_insert_tagnode().
Definition at line 717 of file jabber/xode.c.
References xode_get_firstattrib(), xode_get_firstchild(), xode_get_name(), xode_has_attribs(), xode_has_children(), xode_insert_node(), and xode_insert_tag().
Referenced by xode_insert_node().
| xode xode_new | ( | const char * | name | ) |
Definition at line 230 of file jabber/xode.c.
References _xode_new(), NULL, and XODE_TYPE_TAG.
Referenced by _xode_expat_startElement(), xode_dup(), and xode_stream_eat().
Definition at line 254 of file jabber/xode.c.
References _xode_new(), and XODE_TYPE_TAG.
Referenced by _xode_stream_startElement(), xode_dup_frompool(), and xode_wrap().
| xode xode_new_tag | ( | const char * | name | ) |
Definition at line 238 of file jabber/xode.c.
References _xode_new(), NULL, and XODE_TYPE_TAG.
Referenced by conn_new(), do_send_message_component(), do_send_message_server(), in_stream_node_callback(), out_stream_node_callback(), stream_node_callback(), xj_jcon_send_msg(), xj_jcon_send_presence(), xj_jcon_send_subscribe(), xj_jcon_set_roster(), and xj_jcon_user_auth().
| void xode_pool_cleanup | ( | xode_pool | p, | |
| xode_pool_cleaner | f, | |||
| void * | arg | |||
| ) |
Definition at line 234 of file jabber/xpool.c.
References _xode_pool_free(), xode_pool_struct::cleanup, and xode_pool_free::next.
| void xode_pool_free | ( | xode_pool | p | ) |
Definition at line 215 of file jabber/xpool.c.
References _xode_pool__free, xode_pool_free::arg, xode_pool_struct::cleanup, xode_pool_free::f, xode_pool_free::next, and NULL.
| xode_pool xode_pool_heap | ( | int | bytes | ) |
| void* xode_pool_malloc | ( | xode_pool | p, | |
| int | size | |||
| ) |
Definition at line 139 of file jabber/xpool.c.
References _xode_pool__free, _xode_pool__malloc, _xode_pool_cleanup_append(), _xode_pool_free(), _xode_pool_heap(), xode_pool_heap::block, xode_pool_struct::heap, NULL, xode_pool_struct::size, xode_pool_heap::size, and xode_pool_heap::used.
| void* xode_pool_malloco | ( | xode_pool | p, | |
| int | size | |||
| ) |
| void* xode_pool_mallocx | ( | xode_pool | p, | |
| int | size, | |||
| char | c | |||
| ) |
| xode_pool xode_pool_new | ( | void | ) |
| int xode_pool_size | ( | xode_pool | p | ) |
| char* xode_pool_strdup | ( | xode_pool | p, | |
| const char * | src | |||
| ) |
| void xode_put_attrib | ( | xode | owner, | |
| const char * | name, | |||
| const char * | value | |||
| ) |
Definition at line 424 of file jabber/xode.c.
References _xode_appendsibling(), _xode_new(), _xode_search(), xode_struct::data, xode_struct::data_sz, xode_struct::firstattrib, xode_struct::lastattrib, NULL, xode_struct::p, xode_pool_strdup(), and XODE_TYPE_ATTRIB.
Referenced by _xode_put_expatattribs(), do_send_message_component(), do_send_message_server(), in_stream_node_callback(), out_stream_node_callback(), xj_jcon_send_msg(), xj_jcon_send_presence(), xj_jcon_send_subscribe(), xj_jcon_set_roster(), xj_jcon_user_auth(), xode_insert_node(), and xode_put_vattrib().
| void xode_put_vattrib | ( | xode | owner, | |
| const char * | name, | |||
| void * | value | |||
| ) |
Definition at line 466 of file jabber/xode.c.
References _xode_search(), xode_struct::firstattrib, xode_struct::firstchild, NULL, xode_put_attrib(), and XODE_TYPE_ATTRIB.
| void xode_spool_add | ( | xode_spool | s, | |
| char * | str | |||
| ) |
Definition at line 62 of file jabber/xode_str.c.
References xode_spool_node::c, xode_spool_struct::first, xode_spool_struct::last, xode_spool_struct::len, len, xode_spool_node::next, NULL, xode_spool_struct::p, xode_pool_malloc(), and xode_pool_strdup().
| void xode_spool_free | ( | xode_spool | s | ) |
Definition at line 40 of file jabber/xode_str.c.
References xode_pool_free(), and xode_spool_getpool().
| int xode_spool_getlen | ( | const xode_spool | s | ) |
| xode_pool xode_spool_getpool | ( | const xode_spool | s | ) |
| xode_spool xode_spool_new | ( | void | ) |
Definition at line 57 of file jabber/xode_str.c.
References xode_pool_heap(), and xode_spool_newfrompool().
| xode_spool xode_spool_newfrompool | ( | xode_pool | p | ) |
Definition at line 45 of file jabber/xode_str.c.
References xode_spool_struct::first, xode_spool_struct::last, xode_spool_struct::len, NULL, xode_spool_struct::p, s, and xode_pool_malloc().
| char* xode_spool_str | ( | xode_pool | p, | |
| ... | ||||
| ) |
Definition at line 132 of file jabber/xode_str.c.
References NULL, s, xode_spool_add(), xode_spool_newfrompool(), and xode_spool_tostr().
| char* xode_spool_tostr | ( | xode_spool | s | ) |
Definition at line 109 of file jabber/xode_str.c.
References xode_spool_node::c, xode_spool_struct::first, xode_spool_struct::len, xode_spool_node::next, NULL, xode_spool_struct::p, and xode_pool_malloc().
| void xode_spooler | ( | xode_spool | s, | |
| ... | ||||
| ) |
| int xode_stream_eat | ( | xode_stream | xs, | |
| char * | buff, | |||
| int | len | |||
| ) |
Definition at line 149 of file jabber/xstream.c.
References xode_stream_struct::arg, xode_stream_struct::cdata_len, xode_stream_struct::f, xode_stream_struct::node, NULL, xode_stream_struct::parser, xode_stream_struct::status, xode_get_pool(), xode_insert_cdata(), xode_new(), xode_pool_size(), XODE_STREAM_ERROR, and XODE_STREAM_MAXNODE.
| xode_stream xode_stream_new | ( | xode_pool | p, | |
| xode_stream_onNode | f, | |||
| void * | arg | |||
| ) |
Definition at line 120 of file jabber/xstream.c.
References _xode_stream_charData(), _xode_stream_cleanup(), _xode_stream_endElement(), _xode_stream_startElement(), xode_stream_struct::arg, xode_stream_struct::f, NULL, xode_stream_struct::p, xode_stream_struct::parser, xode_pool_cleanup(), and xode_pool_malloco().
| char* xode_strescape | ( | xode_pool | p, | |
| char * | buf | |||
| ) |
| char* xode_strunescape | ( | xode_pool | p, | |
| char * | buf | |||
| ) |
| int xode_to_file | ( | char * | file, | |
| xode | node | |||
| ) |
| char* xode_to_prettystr | ( | xode | node | ) |
Definition at line 853 of file jabber/xode.c.
References _xode_to_prettystr(), NULL, s, xode_get_pool(), xode_spool_newfrompool(), and xode_spool_tostr().
| char* xode_to_str | ( | xode | node | ) |
Definition at line 663 of file jabber/xode.c.
References _xode_tospool(), and xode_spool_tostr().
Referenced by stream_node_callback(), xj_jcon_send_msg(), xj_jcon_send_presence(), xj_jcon_send_subscribe(), xj_jcon_set_roster(), xj_jcon_user_auth(), xode_send(), and xode_to_file().
Definition at line 789 of file jabber/xode.c.
References xode_struct::firstchild, xode_struct::lastchild, NULL, xode_struct::parent, xode_get_pool(), and xode_new_frompool().
Referenced by xj_jcon_send_msg(), xj_jcon_set_roster(), and xj_jcon_user_auth().
1.5.6