* actualy _install_ the template.
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; \
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; \
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;
#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;
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);
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];
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
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><sendNotificationMessages soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
+<arg0 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">^notifyuser</arg0><arg1 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
+<java version="1.5.0_13" class="java.beans.XMLDecoder">
+ <array class="com.funambol.framework.core.Alert" length="1">
+ <void index="0">
+ <object class="com.funambol.framework.core.Alert">
+ <void property="cmdID">
+ <object class="com.funambol.framework.core.CmdID"/>
+ </void>
+ <void property="data">
+ <int>206</int>
+ </void>
+ <void property="items">
+ <void method="add">
+ <object class="com.funambol.framework.core.Item">
+ <void property="meta">
+ <object class="com.funambol.framework.core.Meta">
+ <void property="metInf">
+ <void property="type">
+ <string>application/vnd.omads-email+xml</string>
+ </void>
+ </void>
+ </object>
+ </void>
+ <void property="target">
+ <object class="com.funambol.framework.core.Target">
+ <void property="locURI">
+ <string>^syncsource</string>
+ </void>
+ </object>
+ </void>
+ </object>
+ </void>
+ </void>
+ </object>
+ </void>
+ </array>
+</java>
+</arg1><arg2 href="#id0"/></sendNotificationMessages>
+<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">1</multiRef></soapenv:Body></soapenv:Envelope>
#include <sys/socket.h>
#include <time.h>
#include <libcitadel.h>
+#include <errno.h>
#include "citadel.h"
#include "citadel_dirs.h"
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);
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
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><sendNotificationMessages soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
-<arg0 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">^notifyuser</arg0><arg1 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
-<java version="1.5.0_13" class="java.beans.XMLDecoder">
- <array class="com.funambol.framework.core.Alert" length="1">
- <void index="0">
- <object class="com.funambol.framework.core.Alert">
- <void property="cmdID">
- <object class="com.funambol.framework.core.CmdID"/>
- </void>
- <void property="data">
- <int>206</int>
- </void>
- <void property="items">
- <void method="add">
- <object class="com.funambol.framework.core.Item">
- <void property="meta">
- <object class="com.funambol.framework.core.Meta">
- <void property="metInf">
- <void property="type">
- <string>application/vnd.omads-email+xml</string>
- </void>
- </void>
- </object>
- </void>
- <void property="target">
- <object class="com.funambol.framework.core.Target">
- <void property="locURI">
- <string>^syncsource</string>
- </void>
- </object>
- </void>
- </object>
- </void>
- </void>
- </object>
- </void>
- </array>
-</java>
-</arg1><arg2 href="#id0"/></sendNotificationMessages>
-<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">1</multiRef></soapenv:Body></soapenv:Envelope>