X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fxmpp%2Fserv_xmpp.c;h=ea58e3b627dbf9efd6fe658419ed5dfc14f29ee5;hb=8904d5e7123ba2f4588f48deed392b1a2d9faa39;hp=b06d11aef107c4017d3849be24ecf9b932ccd44a;hpb=85a4d8d0b5af0edda2a0fa27c66457b775eb1209;p=citadel.git diff --git a/citadel/modules/xmpp/serv_xmpp.c b/citadel/modules/xmpp/serv_xmpp.c index b06d11aef..ea58e3b62 100644 --- a/citadel/modules/xmpp/serv_xmpp.c +++ b/citadel/modules/xmpp/serv_xmpp.c @@ -64,11 +64,10 @@ #define HAVE_XML_STOPPARSER #endif -struct xmpp_event *xmpp_queue = NULL; HashList *XMPP_StartHandlers = NULL; HashList *XMPP_EndHandlers = NULL; HashList *XMPP_SupportedNamespaces = NULL; -HashList *XMPP_NameSpaces = 0; +HashList *XMPP_NameSpaces = NULL; HashList *FlatToken = NULL; int XMPPSrvDebugEnable = 0; @@ -272,27 +271,6 @@ void xmpp_start_bind(void *data, const char *supplied_el, const char **attr) XMPP->bind_requested = 1; } -void xmpp_start_iq(void *data, const char *supplied_el, const char **attr) -{ -/* - int i; - for (i=0; attr[i] != NULL; i+=2) { - if (!strcasecmp(attr[i], "type")) { - safestrncpy(XMPP->iq_type, attr[i+1], sizeof XMPP->iq_type); - } - else if (!strcasecmp(attr[i], "id")) { - safestrncpy(XMPP->iq_id, attr[i+1], sizeof XMPP->iq_id); - } - else if (!strcasecmp(attr[i], "from")) { - safestrncpy(XMPP->iq_from, attr[i+1], sizeof XMPP->iq_from); - } - else if (!strcasecmp(attr[i], "to")) { - safestrncpy(XMPP->iq_to, attr[i+1], sizeof XMPP->iq_to); - } - } -*/ -} - void xmpp_start_auth(void *data, const char *supplied_el, const char **attr) { int i; @@ -304,7 +282,7 @@ void xmpp_start_auth(void *data, const char *supplied_el, const char **attr) } } } - +/* void xmpp_start_message(void *data, const char *supplied_el, const char **attr) { int i; @@ -315,7 +293,7 @@ void xmpp_start_message(void *data, const char *supplied_el, const char **attr) } } } - +*/ void xmpp_start_html(void *data, const char *supplied_el, const char **attr) { ++XMPP->html_tag_level; @@ -808,7 +786,6 @@ void LogXMPPSrvDebugEnable(const int n) XMPPSrvDebugEnable = n; } const char *CitadelServiceXMPP="XMPP"; -extern void xmpp_cleanup_events(void); @@ -900,7 +877,9 @@ void XMPP_RegisterTokenProperty(const char *NS, long NSLen, Put(ThisNamespace, Token, TLen, th, HDeleteTokenHandler); } - Put(th->Properties, Property, PLen, h, HFreePropertyHandler); + + if (PLen > 0) + Put(th->Properties, Property, PLen, h, HFreePropertyHandler); /* if (!GetHash(FlatToken, Token, TLen, &pv)) { @@ -910,7 +889,14 @@ void XMPP_RegisterTokenProperty(const char *NS, long NSLen, */ } - +void xmpp_cleanup(void) +{ + DeleteHash(&XMPP_StartHandlers); + DeleteHash(&XMPP_EndHandlers); + DeleteHash(&XMPP_SupportedNamespaces); + DeleteHash(&XMPP_NameSpaces); + DeleteHash(&FlatToken); +} CTDL_MODULE_INIT(xmpp) { @@ -944,9 +930,8 @@ CTDL_MODULE_INIT(xmpp) AddXMPPStartHandler(HKEY("stream"), xmpp_stream_start, 0); AddXMPPStartHandler(HKEY("query"), xmpp_start_query, 0); AddXMPPStartHandler(HKEY("bind"), xmpp_start_bind, 0); - AddXMPPStartHandler(HKEY("iq"), xmpp_start_iq, 0); AddXMPPStartHandler(HKEY("auth"), xmpp_start_auth, 0); - AddXMPPStartHandler(HKEY("message"), xmpp_start_message, 0); +/// AddXMPPStartHandler(HKEY("message"), xmpp_start_message, 0); AddXMPPStartHandler(HKEY("html"), xmpp_start_html, 0); @@ -956,7 +941,7 @@ CTDL_MODULE_INIT(xmpp) CtdlRegisterSessionHook(xmpp_logout_hook, EVT_LOGOUT, PRIO_LOGOUT + 90); CtdlRegisterSessionHook(xmpp_login_hook, EVT_UNSTEALTH, PRIO_UNSTEALTH + 1); CtdlRegisterSessionHook(xmpp_logout_hook, EVT_STEALTH, PRIO_STEALTH + 1); - CtdlRegisterCleanupHook(xmpp_cleanup_events); + CtdlRegisterCleanupHook(xmpp_cleanup); } /* return our module name for the log */