Apply patches sugested by Taroe Hong plus some more bugfixes.
[citadel.git] / citadel / modules / xmpp / serv_xmpp.h
index 715abd41dc0524d05fc301c1e9a84773d5c7583c..b8133cdbbdd84275791049c4eca020c5f327740d 100644 (file)
  *  
  */
 
+#include "xmpp_xmacros.h"
+#include "xmpp_util.h"
+
+
 typedef struct _citxmpp {                      /* Information about the current session */
        StrBuf *OutBuf;
        XML_Parser xp;                  /* XML parser instance for incoming client stream */
@@ -26,10 +30,9 @@ typedef struct _citxmpp {                    /* Information about the current session */
        char client_jid[256];           /* "full JID" of the client */
        int last_event_processed;
 
-       char iq_type[256];              /* for <iq> stanzas */
-       char iq_id[256];
-       char iq_from[256];
-       char iq_to[256];
+       TheToken_iq IQ;
+       TheToken_message Message;
+
        char iq_client_username[256];   /* username requested by the client (NON SASL ONLY) */
        char iq_client_password[256];   /* password requested by the client (NON SASL ONLY) */
        char iq_client_resource[256];   /* resource name requested by the client */
@@ -38,7 +41,6 @@ typedef struct _citxmpp {                     /* Information about the current session */
 
        char sasl_auth_mech[32];        /* SASL auth mechanism requested by the client */
 
-       char message_to[256];
        char *message_body;             /* Message body in transit */
        int html_tag_level;             /* <html> tag nesting level */
 
@@ -57,7 +59,6 @@ struct xmpp_event {
        int session_which_generated_this_event;
 };
 
-extern struct xmpp_event *xmpp_queue;
 extern int queue_event_seq;
 
 enum {
@@ -80,14 +81,14 @@ void xmpp_command_loop(void);
 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_query_namespace(TheToken_iq *iq, char *);
 void xmpp_output_incoming_messages(void);
 void xmpp_queue_event(int, char *);
 void xmpp_process_events(void);
 void xmpp_presence_notify(char *, int);
 void xmpp_roster_item(struct CitContext *);
-void xmpp_send_message(char *, char *);
-void xmpp_non_sasl_authenticate(char *, char *, char *, char *);
+void xmpp_send_message(StrBuf *, char *);
+void xmpp_non_sasl_authenticate(StrBuf *IQ_id, char *, char *, char *);
 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);
@@ -106,15 +107,6 @@ extern int XMPPSrvDebugEnable;
                             "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,
@@ -126,19 +118,5 @@ void AddXMPPEndHandler(const char *key,
                       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
+
+