From df760149065408b585995da925fba6deedb57054 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Sat, 20 Jan 2007 05:19:03 +0000 Subject: [PATCH] * Applied Matt's patches to submit messages to Funambol and also implement config options for it --- citadel/Makefile.in | 5 +++-- citadel/config.h | 4 ++++ citadel/control.c | 24 ++++++++++++++++++++++++ citadel/msgbase.c | 2 ++ citadel/serv_extensions.c | 2 +- citadel/serv_extensions.h | 1 + 6 files changed, 35 insertions(+), 3 deletions(-) diff --git a/citadel/Makefile.in b/citadel/Makefile.in index d6fe48f54..a10bf3cb0 100644 --- a/citadel/Makefile.in +++ b/citadel/Makefile.in @@ -53,7 +53,8 @@ SERV_MODULES=serv_chat.o \ serv_managesieve.o \ ical_dezonify.o \ serv_ldap.o \ - serv_autocompletion.o + serv_autocompletion.o \ + serv_funambol.o UTIL_TARGETS=aidepost msgform \ citmail userlist sendcommand \ @@ -102,7 +103,7 @@ SOURCES=aidepost.c auth.c base64.c chkpwd.c citadel.c citadel_ipc.c \ serv_newuser.c serv_pas2.c serv_pop3.c serv_rwho.c serv_smtp.c \ serv_spam.c serv_test.c serv_mrtg.c serv_spam.c serv_upgrade.c \ serv_vandelay.c serv_vcard.c serv_managesieve.c server_main.c \ - serv_sieve.c setup.c snprintf.c imap_acl.c \ + serv_sieve.c serv_funambol.c setup.c snprintf.c imap_acl.c \ stress.c support.c sysdep.c tools.c user_ops.c userlist.c \ whobbs.c vcard.c serv_notes.c serv_fulltext.c ft_wordbreaker.c \ crc16.c journaling.c citadel_dirs.c diff --git a/citadel/config.h b/citadel/config.h index 5ae0aff6b..1dd6c8b92 100644 --- a/citadel/config.h +++ b/citadel/config.h @@ -76,6 +76,10 @@ struct config { int c_pftcpdict_port; /* postfix tcptable support, see http://www.postfix.org/tcp_table.5.html */ int c_managesieve_port; /* managesieve port. */ int c_auth_mode; /* 0 = built-in Citadel auth; 1 = underlying host system auth */ + char c_funambol_host[256]; /* Funambol host. Blank to disable */ + int c_funambol_port; /* Funambol port */ + char c_funambol_source[256]; /* Funambol sync source */ + char c_funambol_auth[256]; /* Funambol auth details */ }; diff --git a/citadel/control.c b/citadel/control.c index bc7d7958e..d340fcd05 100644 --- a/citadel/control.c +++ b/citadel/control.c @@ -242,6 +242,11 @@ void cmd_conf(char *argbuf) cprintf("%s\n", config.c_default_cal_zone); cprintf("%d\n", config.c_pftcpdict_port); cprintf("%d\n", config.c_managesieve_port); + cprintf("%d\n", config.c_auth_mode); + cprintf("%s\n", config.c_funambol_host); + cprintf("%d\n", config.c_funambol_port); + cprintf("%s\n", config.c_funambol_source); + cprintf("%s\n", config.c_funambol_auth); cprintf("000\n"); } @@ -447,6 +452,25 @@ void cmd_conf(char *argbuf) case 51: config.c_managesieve_port = atoi(buf); break; + case 52: + config.c_auth_mode = atoi(buf); + case 53: + safestrncpy(config.c_funambol_host, buf, + sizeof config.c_funambol_host); + break; + case 54: + config.c_funambol_port = atoi(buf); + break; + case 55: + safestrncpy(config.c_funambol_source, + buf, + sizeof config.c_funambol_source); + break; + case 56: + safestrncpy(config.c_funambol_auth, + buf, + sizeof config.c_funambol_auth); + break; } ++a; } diff --git a/citadel/msgbase.c b/citadel/msgbase.c index 9212602d4..2b09ed2b9 100644 --- a/citadel/msgbase.c +++ b/citadel/msgbase.c @@ -2567,6 +2567,8 @@ long CtdlSubmitMsg(struct CtdlMessage *msg, /* message to save */ lprintf(CTDL_DEBUG, "Delivering private local mail to <%s>\n", recipient); if (getuser(&userbuf, recipient) == 0) { + // Add a flag so the Funambol module knows its mail + msg->cm_fields['W'] = strdup(recipient); MailboxName(actual_rm, sizeof actual_rm, &userbuf, MAILROOM); CtdlSaveMsgPointerInRoom(actual_rm, newmsgid, 0, msg); diff --git a/citadel/serv_extensions.c b/citadel/serv_extensions.c index 428b47eef..ca6349c7f 100644 --- a/citadel/serv_extensions.c +++ b/citadel/serv_extensions.c @@ -234,7 +234,7 @@ void initialize_server_extensions(void) lprintf(CTDL_INFO, "%s\n", serv_postfix_tcpdict()); lprintf(CTDL_INFO, "%s\n", serv_sieve_init()); lprintf(CTDL_INFO, "%s\n", serv_managesieve_init()); - + lprintf(CTDL_INFO, "%s\n", serv_funambol_init()); for (filter = 1; filter != 0; filter = filter << 1) if ((filter & DetailErrorFlags) != 0) LogPrintMessages(filter); diff --git a/citadel/serv_extensions.h b/citadel/serv_extensions.h index 1868fc335..590d05c8e 100644 --- a/citadel/serv_extensions.h +++ b/citadel/serv_extensions.h @@ -37,6 +37,7 @@ char *serv_autocompletion_init(void); char *serv_postfix_tcpdict(void); char *serv_managesieve_init(void); char *serv_sieve_init(void); +char *serv_funambol_init(void); /* */ -- 2.30.2