]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/extnotify/funambol65.c
* this include is needed on *bsd
[citadel.git] / citadel / modules / extnotify / funambol65.c
index b323d8b1791dab5532db6d9526fa7350034a0600..cebed9a05d2fda83a06d8c11ad2e893b9163bfea 100644 (file)
@@ -16,6 +16,8 @@
 #include <sys/socket.h>
 #include <time.h>
 #include <libcitadel.h>
+#include <errno.h>
+#include <unistd.h>
 
 #include "citadel.h"
 #include "citadel_dirs.h"
@@ -24,6 +26,7 @@
 #include "config.h"
 #include "sysdep_decls.h"
 #include "msgbase.h"
+#include "ctdl_module.h"
 
 /*
 * \brief Sends a message to the Funambol server notifying 
 int notify_funambol_server(char *user) {
        char port[1024];
        int sock = -1;
-       char *buf;
-       char *SOAPMessage;
-       char *SOAPHeader;
-       char *funambolCreds;
-       FILE *template;
+       char *buf = NULL;
+       char *SOAPMessage = NULL;
+       char *SOAPHeader = NULL;
+       char *funambolCreds = NULL;
+       FILE *template = NULL;
        
        sprintf(port, "%d", config.c_funambol_port);
        sock = sock_connect(config.c_funambol_host, port, "tcp");
        if (sock >= 0) 
-               lprintf(CTDL_DEBUG, "Connected to Funambol!\n");
-       else 
+               CtdlLogPrintf(CTDL_DEBUG, "Connected to Funambol!\n");
+       else {
+               char buf[SIZ];
+
+               snprintf(buf, SIZ, 
+                        "Unable to connect to %s:%d [%s]; won't send notification\r\n", 
+                        config.c_funambol_host, 
+                        config.c_funambol_port, 
+                        strerror(errno));
+               CtdlLogPrintf(CTDL_ERR, buf);
+
+               aide_message(buf, "External notifier unable to connect remote host!");
                goto bail;
+       }
        // Load the template SOAP message. Get mallocs done too
        template = fopen(file_funambol_msg, "r");
+
+       if (template == NULL) {
+               char buf[SIZ];
+
+               snprintf(buf, SIZ, 
+                        "Cannot load template file %s [%s]won't send notification\r\n", 
+                        file_funambol_msg, strerror(errno));
+               CtdlLogPrintf(CTDL_ERR, buf);
+
+               aide_message(buf, "External notifier unable to find message template!");
+               goto free;
+       }
+
+
        buf = malloc(SIZ);
        memset(buf, 0, SIZ);
        SOAPMessage = malloc(3072);
@@ -64,7 +92,14 @@ int notify_funambol_server(char *user) {
        fclose(template);
        
        if (strlen(SOAPMessage) < 0) {
-               printf("Cannot load template file\r\n");
+               char buf[SIZ];
+
+               snprintf(buf, SIZ, 
+                        "Cannot load template file %s; won't send notification\r\n", 
+                        file_funambol_msg);
+               CtdlLogPrintf(CTDL_ERR, buf);
+
+               aide_message(buf, "External notifier unable to load message template!");
                goto free;
        }
        // Do substitutions
@@ -103,16 +138,16 @@ int notify_funambol_server(char *user) {
        sock_shutdown(sock, SHUT_WR);
        
        /* Response */
-       lprintf(CTDL_DEBUG, "Awaiting response\n");
+       CtdlLogPrintf(CTDL_DEBUG, "Awaiting response\n");
         if (sock_getln(sock, buf, SIZ) < 0) {
                 goto free;
         }
-        lprintf(CTDL_DEBUG, "<%s\n", buf);
+        CtdlLogPrintf(CTDL_DEBUG, "<%s\n", buf);
        if (strncasecmp(buf, "HTTP/1.1 200 OK", strlen("HTTP/1.1 200 OK"))) {
                
                goto free;
        }
-       lprintf(CTDL_DEBUG, "Funambol notified\n");
+       CtdlLogPrintf(CTDL_DEBUG, "Funambol notified\n");
 free:
        if (funambolCreds != NULL) free(funambolCreds);
        if (SOAPMessage != NULL) free(SOAPMessage);