]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/xmpp/serv_xmpp.h
XMPP: add function to generate XML-Stanzas
[citadel.git] / citadel / modules / xmpp / serv_xmpp.h
index faebc3615aea668b6df7a5d153318e2e3ed4b552..715abd41dc0524d05fc301c1e9a84773d5c7583c 100644 (file)
@@ -17,6 +17,7 @@
  */
 
 typedef struct _citxmpp {                      /* Information about the current session */
+       StrBuf *OutBuf;
        XML_Parser xp;                  /* XML parser instance for incoming client stream */
        char server_name[256];          /* who they think we are */
        char *chardata;
@@ -80,7 +81,6 @@ void xmpp_async_loop(void);
 void xmpp_sasl_auth(char *, char *);
 void xmpp_output_auth_mechs(void);
 void xmpp_query_namespace(char *, char *, char *, char *);
-void xmpp_wholist_presence_dump(void);
 void xmpp_output_incoming_messages(void);
 void xmpp_queue_event(int, char *);
 void xmpp_process_events(void);
@@ -105,3 +105,40 @@ extern int XMPPSrvDebugEnable;
        DBGLOG(LEVEL) syslog(LEVEL,             \
                             "XMPP: " FORMAT);
 
+
+void XUnbuffer(void);
+void XPutBody(const char *Str, long Len);
+void XPutProp(const char *Str, long Len);
+void XPut(const char *Str, long Len);
+#define XPUT(CONSTSTR) XPut(CONSTSTR, sizeof(CONSTSTR) -1)
+
+void XPrintf(const char *Format, ...);
+
+
+void AddXMPPStartHandler(const char *key,
+                        long len,
+                        xmpp_handler_func Handler,
+                        int Flags);
+
+void AddXMPPEndHandler(const char *key,
+                      long len,
+                      xmpp_handler_func Handler,
+                      int Flags);
+
+
+#define XCLOSED (1<<0)
+void XPrint(const char *Token, long tlen,
+           int Flags,
+           ...);
+
+#define TYPE_STR 1
+#define TYPE_OPTSTR 2
+#define TYPE_INT 3
+#define TYPE_BODYSTR 4
+#define TYPE_ARGEND 5
+#define XPROPERTY(NAME, VALUE, VLEN) TYPE_STR, NAME, sizeof(NAME)-1, VALUE, VLEN
+#define XOPROPERTY(NAME, VALUE, VLEN) TYPE_OPTSTR, NAME, sizeof(NAME)-1, VALUE, VLEN
+#define XCPROPERTY(NAME, VALUE) TYPE_STR, NAME, sizeof(NAME)-1, VALUE, sizeof(VALUE) - 1
+#define XIPROPERTY(NAME, LVALUE) TYPE_INT, NAME, SIZEOF(NAME)-1
+#define XBODY(VALUE, VLEN) TYPE_BODYSTR, VALUE, VLEN
+#define XCFGBODY(WHICH) TYPE_BODYSTR, config.WHICH, configlen.WHICH