/* The features of this stream are... */
cprintf("<stream:features>");
-#ifdef HAVE_OPENSSL_XXXX_COMMENTED_OUT
- /* TLS encryption (but only if it isn't already active) */
+ /*
+ * TLS encryption (but only if it isn't already active)
+ */
+#ifdef HAVE_OPENSSL
if (!CC->redirect_ssl) {
cprintf("<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'></starttls>");
}
}
/*
- CtdlLogPrintf(CTDL_DEBUG, "XMPP ELEMENT START: <%s>\n", el);
+ syslog(LOG_DEBUG, "XMPP ELEMENT START: <%s>\n", el);
for (i=0; attr[i] != NULL; i+=2) {
- CtdlLogPrintf(CTDL_DEBUG, " Attribute '%s' = '%s'\n", attr[i], attr[i+1]);
+ syslog(LOG_DEBUG, " Attribute '%s' = '%s'\n", attr[i], attr[i+1]);
}
uncomment for more verbosity */
}
/*
- CtdlLogPrintf(CTDL_DEBUG, "XMPP ELEMENT END : <%s>\n", el);
+ syslog(LOG_DEBUG, "XMPP ELEMENT END : <%s>\n", el);
if (XMPP->chardata_len > 0) {
- CtdlLogPrintf(CTDL_DEBUG, " chardata: %s\n", XMPP->chardata);
+ syslog(LOG_DEBUG, " chardata: %s\n", XMPP->chardata);
}
uncomment for more verbosity */
* Unknown query ... return the XML equivalent of a blank stare
*/
else {
- CtdlLogPrintf(CTDL_DEBUG,
+ syslog(LOG_DEBUG,
"Unknown query <%s> - returning <service-unavailable/>\n",
el
);
#ifdef HAVE_OPENSSL
cprintf("<proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>");
CtdlModuleStartCryptoMsgs(NULL, NULL, NULL);
- if (!CC->redirect_ssl) CC->kill_me = 1;
+ if (!CC->redirect_ssl) CC->kill_me = KILLME_NO_CRYPTO;
#else
cprintf("<failure xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>");
- CC->kill_me = 1;
+ CC->kill_me = KILLME_NO_CRYPTO;
#endif
}
}
else if (!strcasecmp(el, "stream")) {
- CtdlLogPrintf(CTDL_DEBUG, "XMPP client shut down their stream\n");
+ syslog(LOG_DEBUG, "XMPP client shut down their stream\n");
xmpp_massacre_roster();
cprintf("</stream>\n");
- CC->kill_me = 1;
+ CC->kill_me = KILLME_CLIENT_LOGGED_OUT;
}
else {
- CtdlLogPrintf(CTDL_DEBUG, "Ignoring unknown tag <%s>\n", el);
+ syslog(LOG_DEBUG, "Ignoring unknown tag <%s>\n", el);
}
XMPP->chardata_len = 0;
XMPP->xp = XML_ParserCreateNS("UTF-8", ':');
if (XMPP->xp == NULL) {
- CtdlLogPrintf(CTDL_ALERT, "Cannot create XML parser!\n");
- CC->kill_me = 1;
+ syslog(LOG_ALERT, "Cannot create XML parser!\n");
+ CC->kill_me = KILLME_XML_PARSER;
return;
}
XML_Parse(XMPP->xp, ChrPtr(stream_input), rc, 0);
}
else {
- CtdlLogPrintf(CTDL_ERR, "Client disconnected: ending session.\n");
- CC->kill_me = 1;
+ syslog(LOG_ERR, "Client disconnected: ending session.\n");
+ CC->kill_me = KILLME_CLIENT_DISCONNECTED;
}
FreeStrBuf(&stream_input);
}
const char *CitadelServiceXMPP="XMPP";
-
+extern void xmpp_cleanup_events(void);
CTDL_MODULE_INIT(xmpp)
{
if (!threading) {
CtdlRegisterSessionHook(xmpp_logout_hook, EVT_LOGOUT);
CtdlRegisterSessionHook(xmpp_login_hook, EVT_UNSTEALTH);
CtdlRegisterSessionHook(xmpp_logout_hook, EVT_STEALTH);
+ CtdlRegisterCleanupHook(xmpp_cleanup_events);
+
}
/* return our Subversion id for the Log */