]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/xmpp/serv_xmpp.c
* rather have one typedef than dozends of structs all over the source
[citadel.git] / citadel / modules / xmpp / serv_xmpp.c
index 682fdb2c44a854971cfcdff633124570a859be71..a4a5f28ecc6375e84f32b17b7ee693a08e6824bf 100644 (file)
@@ -409,7 +409,7 @@ void xmpp_xml_end(void *data, const char *supplied_el) {
 
 void xmpp_xml_chardata(void *data, const XML_Char *s, int len)
 {
-       struct citxmpp *X = XMPP;
+       citxmpp *X = XMPP;
 
        if (X->chardata_alloc == 0) {
                X->chardata_alloc = SIZ;
@@ -453,8 +453,8 @@ void xmpp_cleanup_function(void) {
  */
 void xmpp_greeting(void) {
        strcpy(CC->cs_clientname, "XMPP session");
-       CC->session_specific_data = malloc(sizeof(struct citxmpp));
-       memset(XMPP, 0, sizeof(struct citxmpp));
+       CC->session_specific_data = malloc(sizeof(citxmpp));
+       memset(XMPP, 0, sizeof(citxmpp));
        XMPP->last_event_processed = queue_event_seq;
 
        /* XMPP does not use a greeting, but we still have to initialize some things. */
@@ -476,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);
 }
 
@@ -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);