* Applied Matt's patches to submit messages to Funambol
authorArt Cancro <ajc@citadel.org>
Sat, 20 Jan 2007 05:19:03 +0000 (05:19 +0000)
committerArt Cancro <ajc@citadel.org>
Sat, 20 Jan 2007 05:19:03 +0000 (05:19 +0000)
  and also implement config options for it

citadel/Makefile.in
citadel/config.h
citadel/control.c
citadel/msgbase.c
citadel/serv_extensions.c
citadel/serv_extensions.h

index d6fe48f54b6664bddcd60fb2b8140321cda1bcd6..a10bf3cb044c96f818c6bd8a4d6939034e014030 100644 (file)
@@ -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
index 5ae0aff6b92298cb6a882d73cc1fdcbaf03eb1ad..1dd6c8b929e6c3b5119f4fa31ab51a0a9766cdd8 100644 (file)
@@ -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 */
 };
 
 
index bc7d7958e402a0283caf2db0020b61e3173641c1..d340fcd0539795eb36813ef9f91c2e90b4130bc6 100644 (file)
@@ -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;
                }
index 9212602d4d8b699530d10f677897df566655201c..2b09ed2b9fa71eb62753c853d34306dabbaa7198 100644 (file)
@@ -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);
index 428b47eef19a60cf12266b90790e78dcd7dd4f51..ca6349c7fad492616c559e0740240149b6c12cd1 100644 (file)
@@ -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);
index 1868fc3355d212a46c6c113669eae385738f0c79..590d05c8e9058427804090912ae94ce4164ba7ca 100644 (file)
@@ -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);
 /*
  */