]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/xmpp/serv_xmpp.c
* cosmetic changes
[citadel.git] / citadel / modules / xmpp / serv_xmpp.c
index b3cdab14ff87455203f189d6e7fb83af7c8e069e..bab30ab7f9ada500861c0bf5fcde5452b9250abb 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>");
                }
 
@@ -477,22 +476,22 @@ void xmpp_greeting(void) {
 
 /* 
  * Main command loop for XMPP sessions.
+ * Right now we're reading one byte at a time and sending it to the XML parser.
+ * There's got to be a better way to do this.
  */
 void xmpp_command_loop(void) {
-       char cmdbuf[16];
+       char cmdbuf[2];
        int retval;
 
        time(&CC->lastcmd);
-       memset(cmdbuf, 0, sizeof cmdbuf); /* Clear it, just in case */
+       memset(cmdbuf, 0, sizeof cmdbuf);
        retval = client_read(cmdbuf, 1);
        if (retval != 1) {
-               CtdlLogPrintf(CTDL_ERR, "Client disconnected: ending session.\r\n");
+               CtdlLogPrintf(CTDL_ERR, "Client disconnected: ending session.\n");
                CC->kill_me = 1;
                return;
        }
 
-       /* FIXME ... this is woefully inefficient. */
-
        XML_Parse(XMPP->xp, cmdbuf, 1, 0);
 }
 
@@ -511,6 +510,7 @@ void xmpp_async_loop(void) {
  */
 void xmpp_login_hook(void) {
        xmpp_queue_event(XMPP_EVT_LOGIN, CC->cs_inet_email);
+       xmpp_delete_old_buddies_who_no_longer_exist_from_the_client_roster();
 }
 
 
@@ -532,7 +532,8 @@ CTDL_MODULE_INIT(xmpp)
                                        xmpp_greeting,
                                        xmpp_command_loop,
                                        xmpp_async_loop,
-                                       CitadelServiceXMPP);
+                                       CitadelServiceXMPP
+               );
                CtdlRegisterSessionHook(xmpp_cleanup_function, EVT_STOP);
                 CtdlRegisterSessionHook(xmpp_login_hook, EVT_LOGIN);
                 CtdlRegisterSessionHook(xmpp_logout_hook, EVT_LOGOUT);