]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/xmpp/serv_xmpp.c
* xmpp_xml_end(): output what we don't understand in the error message.
[citadel.git] / citadel / modules / xmpp / serv_xmpp.c
index c239ee56b435991ba07dad990de16a731142829c..1268fe302c91e3ee6190657eda6cbd597342002b 100644 (file)
@@ -52,7 +52,6 @@
 #include "support.h"
 #include "config.h"
 #include "user_ops.h"
-#include "policy.h"
 #include "database.h"
 #include "msgbase.h"
 #include "internet_addressing.h"
@@ -319,7 +318,7 @@ void xmpp_xml_end(void *data, const char *supplied_el) {
 
                else {
                        cprintf("<iq type=\"error\" id=\"%s\">", XMPP->iq_id);
-                       cprintf("<error></error>");
+                       cprintf("<error>Don't know howto do '%s'!</error>", XMPP->iq_type);
                        cprintf("</iq>");
                }
 
@@ -390,6 +389,13 @@ void xmpp_xml_end(void *data, const char *supplied_el) {
                XMPP->ping_requested = 1;
        }
 
+       else if (!strcasecmp(el, "stream")) {
+               CtdlLogPrintf(CTDL_DEBUG, "XMPP client shut down their stream\n");
+               xmpp_massacre_roster();
+               cprintf("</stream>\n");
+               CC->kill_me = 1;
+       }
+
        else {
                CtdlLogPrintf(CTDL_DEBUG, "Ignoring unknown tag <%s>\n", el);
        }