From 773b9a41e7354b8541889b03bf80194cd2d90e0b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Wilfried=20G=C3=B6esgens?= Date: Fri, 20 Mar 2009 22:30:00 +0000 Subject: [PATCH] * if we fail to open the template, bail out with an error. * actualy _install_ the template. --- citadel/Makefile.in | 4 +- citadel/citadel_dirs.c | 5 +- citadel/citadel_dirs.h | 1 + citadel/debian/citadel-server.install | 1 + .../{network => }/funambol_newmail_soap.xml | 0 citadel/modules/extnotify/funambol65.c | 47 ++++++++++++++++--- 6 files changed, 48 insertions(+), 10 deletions(-) rename citadel/{network => }/funambol_newmail_soap.xml (100%) diff --git a/citadel/Makefile.in b/citadel/Makefile.in index a7a3f049d..792432b0f 100644 --- a/citadel/Makefile.in +++ b/citadel/Makefile.in @@ -206,7 +206,7 @@ install-data: network/systems; do \ $(srcdir)/mkinstalldirs $(DESTDIR)$(prefix)/$$i; \ done - @for i in citadel.rc public_clients \ + @for i in funambol_newmail_soap.xml citadel.rc public_clients \ `find $(srcdir)/help $(srcdir)/messages $(srcdir)/network -type f | grep -v .svn`; do \ echo $(INSTALL_DATA) $$i $(DESTDIR)$(prefix)/$$i; \ $(INSTALL_DATA) $$i $(DESTDIR)$(prefix)/$$i; \ @@ -233,7 +233,7 @@ install-data-new: done $(srcdir)/mkinstalldirs $(DESTDIR)$(HELP_DIR)/help - @for i in \ + @for i in funambol_newmail_soap.xml \ `find $(srcdir)/help -type f | grep -v .svn`; do \ echo $(INSTALL_DATA) $$i $(DESTDIR)$(HELP_DIR)/$$i; \ $(INSTALL_DATA) $$i $(DESTDIR)$(HELP_DIR)/$$i; \ diff --git a/citadel/citadel_dirs.c b/citadel/citadel_dirs.c index 9d7085bb7..770ee0d5b 100644 --- a/citadel/citadel_dirs.c +++ b/citadel/citadel_dirs.c @@ -33,6 +33,7 @@ char ctdl_data_dir[PATH_MAX]="data"; char ctdl_dspam_dir[PATH_MAX]="dspam"; char ctdl_file_dir[PATH_MAX]="files"; char ctdl_hlp_dir[PATH_MAX]="help"; +char ctdl_shared_dir[PATH_MAX]=""; char ctdl_image_dir[PATH_MAX]="images"; char ctdl_info_dir[PATH_MAX]="info"; char ctdl_key_dir[PATH_MAX]=SSL_DIR; @@ -184,6 +185,8 @@ void calc_dirs_n_files(int relh, int home, const char *relhome, char *ctdldir, #endif COMPUTE_DIRECTORY(ctdl_hlp_dir); StripSlashes(ctdl_hlp_dir, 1); + COMPUTE_DIRECTORY(ctdl_shared_dir); + StripSlashes(ctdl_shared_dir, 1); #ifndef HAVE_DATA_DIR basedir=ctdldir; @@ -328,7 +331,7 @@ void calc_dirs_n_files(int relh, int home, const char *relhome, char *ctdldir, snprintf(file_funambol_msg, sizeof file_funambol_msg, "%sfunambol_newmail_soap.xml", - ctdl_spool_dir); + ctdl_shared_dir); StripSlashes(file_funambol_msg, 0); DBG_PRINT(ctdl_bio_dir); diff --git a/citadel/citadel_dirs.h b/citadel/citadel_dirs.h index 897986d6d..1586ba6ec 100644 --- a/citadel/citadel_dirs.h +++ b/citadel/citadel_dirs.h @@ -14,6 +14,7 @@ extern char ctdl_data_dir[PATH_MAX]; extern char ctdl_dspam_dir[PATH_MAX]; extern char ctdl_file_dir[PATH_MAX]; extern char ctdl_hlp_dir[PATH_MAX]; +extern char ctdl_shared_dir[PATH_MAX]; extern char ctdl_image_dir[PATH_MAX]; extern char ctdl_info_dir[PATH_MAX]; extern char ctdl_key_dir[PATH_MAX]; diff --git a/citadel/debian/citadel-server.install b/citadel/debian/citadel-server.install index b99000cd5..b36649f17 100644 --- a/citadel/debian/citadel-server.install +++ b/citadel/debian/citadel-server.install @@ -1,6 +1,7 @@ etc/citadel/mail.aliases etc/citadel/public_clients usr/share/citadel-server/help +usr/share/citadel-server/funambol_newmail_soap.xml etc/citadel/messages usr/lib/citadel-server/setup usr/lib/citadel-server/base64 diff --git a/citadel/network/funambol_newmail_soap.xml b/citadel/funambol_newmail_soap.xml similarity index 100% rename from citadel/network/funambol_newmail_soap.xml rename to citadel/funambol_newmail_soap.xml diff --git a/citadel/modules/extnotify/funambol65.c b/citadel/modules/extnotify/funambol65.c index 96b9008db..90fe4eb0c 100644 --- a/citadel/modules/extnotify/funambol65.c +++ b/citadel/modules/extnotify/funambol65.c @@ -16,6 +16,7 @@ #include #include #include +#include #include "citadel.h" #include "citadel_dirs.h" @@ -34,20 +35,45 @@ 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) CtdlLogPrintf(CTDL_DEBUG, "Connected to Funambol!\n"); - else + 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); @@ -65,7 +91,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 -- 2.30.2