XMPP: Cleanup
[citadel.git] / citadel / modules / xmpp / serv_xmpp.h
index df1298c9d72b20ebe056f42461077875279d4d3a..84bc29d5cf9a04386d08b89510c7492ffc4d1cd0 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;
@@ -64,6 +65,15 @@ enum {
        XMPP_EVT_LOGOUT
 };
 
+
+typedef void (*xmpp_handler_func)(void *data, const char *supplied_el, const char **attr);
+
+typedef struct __xmpp_handler {
+       int               Flags;
+       xmpp_handler_func Handler;
+}xmpp_handler;
+
+
 void xmpp_cleanup_function(void);
 void xmpp_greeting(void);
 void xmpp_command_loop(void);
@@ -71,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);
@@ -83,3 +92,35 @@ void xmpp_massacre_roster(void);
 void xmpp_delete_old_buddies_who_no_longer_exist_from_the_client_roster(void);
 int xmpp_is_visible(struct CitContext *from, struct CitContext *to_whom);
 char *xmlesc(char *buf, char *str, int bufsiz);
+
+extern int XMPPSrvDebugEnable;
+
+#define DBGLOG(LEVEL) if ((LEVEL != LOG_DEBUG) || (XMPPSrvDebugEnable != 0))
+
+#define XMPP_syslog(LEVEL, FORMAT, ...)                                \
+       DBGLOG(LEVEL) syslog(LEVEL,                             \
+                            "XMPP: " FORMAT, __VA_ARGS__)
+
+#define XMPPM_syslog(LEVEL, FORMAT)            \
+       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);