X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fxmpp%2Fserv_xmpp.h;h=84bc29d5cf9a04386d08b89510c7492ffc4d1cd0;hb=62e5cd8b5bcf983f843a7e27d0ecddc4b11b13c3;hp=df1298c9d72b20ebe056f42461077875279d4d3a;hpb=d04e4ad0b8ab9e5b71310030704d61b6eceb530b;p=citadel.git diff --git a/citadel/modules/xmpp/serv_xmpp.h b/citadel/modules/xmpp/serv_xmpp.h index df1298c9d..84bc29d5c 100644 --- a/citadel/modules/xmpp/serv_xmpp.h +++ b/citadel/modules/xmpp/serv_xmpp.h @@ -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);