* initiall sieve listing support. authentication works now, we at least answer with...
authorWilfried Göesgens <willi@citadel.org>
Thu, 7 Sep 2006 20:59:04 +0000 (20:59 +0000)
committerWilfried Göesgens <willi@citadel.org>
Thu, 7 Sep 2006 20:59:04 +0000 (20:59 +0000)
16 files changed:
citadel/Makefile.in
citadel/citadel.h
citadel/config.guess
citadel/config.h
citadel/config.sub
citadel/control.c
citadel/debian/changelog
citadel/debian/citadel-server.substvars
citadel/debian/control
citadel/routines2.c
citadel/serv_extensions.c
citadel/serv_extensions.h
citadel/server.h
citadel/setup.c
citadel/sysconfig.h
citadel/techdoc/roadmap.txt

index d53d46074461936c39bd1e6a56634c9a59a921a3..d2aced0b28e34ff45247cbcc65482274d0fb742c 100644 (file)
@@ -49,6 +49,7 @@ SERV_MODULES=serv_chat.o \
        serv_expire.o \
        serv_vandelay.o \
        serv_calendar.o \
+       serv_managesieve.o \
        ical_dezonify.o \
        serv_ldap.o \
        serv_autocompletion.o 
@@ -99,7 +100,7 @@ SOURCES=aidepost.c auth.c base64.c chkpwd.c citadel.c citadel_ipc.c \
        serv_listsub.c serv_mrtg.c serv_netfilter.c serv_network.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 server_main.c setup.c snprintf.c \
+       serv_vandelay.c serv_vcard.c serv_managesieve.c server_main.c setup.c snprintf.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 de4ded2ff0a8ab0a947f8eeee2b110d6fd994aa9..c6e988a5ddc563f95d344c2a7a5030e04671de28 100644 (file)
@@ -254,7 +254,7 @@ enum {
 #define VIEW_NOTES             5       /* Notes view */
 #define        VIEW_WIKI               6       /* Wiki view */
 #define VIEW_CALBRIEF          7       /* Brief Calendar view */
-
+#define VIEW_SIEVE              8       /* Sieve manage rules store */
 
 #ifdef __cplusplus
 }
index c38553dc74bb4f06a43f734903d1e1c0f1ed6fdb..396482d6cb50b24a598700992f65d340165591d6 100755 (executable)
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+#   Inc.
 
-timestamp='2006-02-23'
+timestamp='2006-07-02'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -210,7 +211,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
        exit ;;
     macppc:MirBSD:*:*)
-       echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+       echo powerpc-unknown-mirbsd${UNAME_RELEASE}
        exit ;;
     *:MirBSD:*:*)
        echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
@@ -770,6 +771,8 @@ EOF
        case ${UNAME_MACHINE} in
            pc98)
                echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+           amd64)
+               echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
            *)
                echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
        esac
@@ -780,9 +783,6 @@ EOF
     i*:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit ;;
-    i*:MSYS_NT-*:*:*)
-       echo ${UNAME_MACHINE}-pc-mingw32
-       exit ;;
     i*:windows32*:*)
        # uname -m includes "-pc" on this system.
        echo ${UNAME_MACHINE}-mingw32
@@ -790,10 +790,10 @@ EOF
     i*:PW*:*)
        echo ${UNAME_MACHINE}-pc-pw32
        exit ;;
-    x86:Interix*:[345]*)
+    x86:Interix*:[3456]*)
        echo i586-pc-interix${UNAME_RELEASE}
        exit ;;
-    EM64T:Interix*:[345]*)
+    EM64T:Interix*:[3456]*)
        echo x86_64-unknown-interix${UNAME_RELEASE}
        exit ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
@@ -831,6 +831,9 @@ EOF
     arm*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
+    avr32*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
     cris:Linux:*:*)
        echo cris-axis-linux-gnu
        exit ;;
@@ -989,7 +992,7 @@ EOF
        LIBC=gnulibc1
        # endif
        #else
-       #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun)
+       #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
        LIBC=gnu
        #else
        LIBC=gnuaout
index 79185a401ae6cc4945899e8454329f9b94d66539..d29076eec55e36b48d3fd55dfbfc0eae99ec69d0 100644 (file)
@@ -74,6 +74,8 @@ struct config {
        char c_journal_dest[128];       /* Where to send journalized msgs   */
        char c_default_cal_zone[128];   /* Default calendar time zone       */
        int c_pftcpdict_port;           /* postfix tcptable support, see http://www.postfix.org/tcp_table.5.html */
+       int c_managesieve_port;         /* managesieve port. */
+
 };
 
 
index ad9f39571183b5c22b2d269bb52eb9ad50227430..387c18d1a135c2e33cb9f911c198efdf7b12b96c 100755 (executable)
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+#   Inc.
 
-timestamp='2006-02-23'
+timestamp='2006-07-02'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -240,7 +241,7 @@ case $basic_machine in
        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
        | am33_2.0 \
-       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
        | bfin \
        | c4x | clipper \
        | d10v | d30v | dlx | dsp16xx \
@@ -248,7 +249,8 @@ case $basic_machine in
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
        | i370 | i860 | i960 | ia64 \
        | ip2k | iq2000 \
-       | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \
+       | m32c | m32r | m32rle | m68000 | m68k | m88k \
+       | maxq | mb | microblaze | mcore \
        | mips | mipsbe | mipseb | mipsel | mipsle \
        | mips16 \
        | mips64 | mips64el \
@@ -274,11 +276,11 @@ case $basic_machine in
        | pdp10 | pdp11 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
        | pyramid \
-       | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+       | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
        | sh64 | sh64le \
-       | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
-       | sparcv8 | sparcv9 | sparcv9b \
-       | strongarm \
+       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+       | spu | strongarm \
        | tahoe | thumb | tic4x | tic80 | tron \
        | v850 | v850e \
        | we32k \
@@ -286,9 +288,6 @@ case $basic_machine in
        | z8k)
                basic_machine=$basic_machine-unknown
                ;;
-       m32c)
-               basic_machine=$basic_machine-unknown
-               ;;
        m6811 | m68hc11 | m6812 | m68hc12)
                # Motorola 68HC11/12.
                basic_machine=$basic_machine-unknown
@@ -318,7 +317,7 @@ case $basic_machine in
        | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
        | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-       | avr-* \
+       | avr-* | avr32-* \
        | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
        | clipper-* | craynv-* | cydra-* \
@@ -329,7 +328,7 @@ case $basic_machine in
        | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
        | i*86-* | i860-* | i960-* | ia64-* \
        | ip2k-* | iq2000-* \
-       | m32r-* | m32rle-* \
+       | m32c-* | m32r-* | m32rle-* \
        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
        | m88110-* | m88k-* | maxq-* | mcore-* \
        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
@@ -358,11 +357,11 @@ case $basic_machine in
        | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
        | pyramid-* \
        | romp-* | rs6000-* \
-       | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+       | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-       | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
        | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
        | tahoe-* | thumb-* \
        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
        | tron-* \
@@ -373,8 +372,6 @@ case $basic_machine in
        | ymp-* \
        | z8k-*)
                ;;
-       m32c-*)
-               ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
        386bsd)
@@ -1128,7 +1125,7 @@ case $basic_machine in
        sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
                basic_machine=sh-unknown
                ;;
-       sparc | sparcv8 | sparcv9 | sparcv9b)
+       sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
                basic_machine=sparc-sun
                ;;
        cydra)
@@ -1217,7 +1214,7 @@ case $os in
              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-             | -skyos* | -haiku* | -rdos*)
+             | -skyos* | -haiku* | -rdos* | -toppers*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1369,6 +1366,9 @@ else
 # system, and we'll never get to this point.
 
 case $basic_machine in
+        spu-*)
+               os=-elf
+               ;;
        *-acorn)
                os=-riscix1.2
                ;;
@@ -1378,9 +1378,9 @@ case $basic_machine in
        arm*-semi)
                os=-aout
                ;;
-    c4x-* | tic4x-*)
-        os=-coff
-        ;;
+        c4x-* | tic4x-*)
+               os=-coff
+               ;;
        # This must come before the *-dec entry.
        pdp10-*)
                os=-tops20
index eb0317b8a83fee3ebca02416b6b7dedb990cb70f..7e01f13b1b5b983ce4342a1389fc6b93eee22286 100644 (file)
@@ -223,6 +223,7 @@ void cmd_conf(char *argbuf)
                cprintf("%s\n", config.c_journal_dest);
                cprintf("%s\n", config.c_default_cal_zone);
                cprintf("%d\n", config.c_pftcpdict_port);
+               cprintf("%d\n", config.c_managesieve_port);
                cprintf("000\n");
        }
 
@@ -425,6 +426,9 @@ void cmd_conf(char *argbuf)
                        case 50:
                                config.c_pftcpdict_port = atoi(buf);
                                break;
+                       case 51:
+                               config.c_managesieve_port = atoi(buf);
+                               break;
                        }
                        ++a;
                }
index 95fecaa1deb743b2cf5cba0eddb3c570fbf5272d..3600ed02515ca44be355627ea2b00e2074986328 100644 (file)
@@ -1,3 +1,10 @@
+citadel (6.84-1) unstable; urgency=low
+       
+  * update to actual Citadel CVS. many new features. see Packages changelog.
+
+ -- Wilfried Goesgens <w.goesgens@chaosindustries.de>  Do, 31 Aug 2006 23:11:00 +0200
+       
+
 citadel (6.82-1) unstable; urgency=low
        
   * update to actual Citadel CVS. many new features. see Packages changelog.
index a8fe3cff5d20eaabf0bae27f6105caf01ec07c70..7dbe5f8efae722248df006b69f186b51c00e512d 100644 (file)
@@ -1 +1,2 @@
 misc:Depends=debconf (>= 0.5) | debconf-2.0
+shlibs:Depends=libc6 (>= 2.3.6-6), libdb4.3 (>= 4.3.28-1), libldap2 (>= 2.1.17-1), libncurses5 (>= 5.4-5), libssl0.9.8 (>= 0.9.8b-1), zlib1g (>= 1:1.2.1)
index 74f3f2cbc3f7fa128faf53dda749559f6b4e8a2a..0b03fd901a6ed9ed498d912d30cd83631de45968 100644 (file)
@@ -2,7 +2,7 @@ Source: citadel
 Section: mail
 Priority: optional
 Maintainer: Wilfried Goesgens <w.goesgens@chaosindutries.de>
-Build-Depends: debhelper (>= 4.0.0), libical-dev, autotools-dev, zlib1g-dev , libssl-dev, libncurses5-dev, libdb4.3-dev, libldap2-dev, libsasl2-dev, libgnutls11-dev, libgcrypt11-dev, bison, libpam0g-dev, gettext, libdb3-util
+Build-Depends: debhelper (>= 4.0.0), libical-dev, autotools-dev, zlib1g-dev , libssl-dev, libncurses5-dev, libdb4.3-dev, libldap2-dev, libsasl2-dev, libgnutls-dev | libgnutls11-dev, libgcrypt11-dev, bison, libpam0g-dev, gettext, libdb3-util
 Standards-Version: 3.6.1
 
 Package: citadel-server
@@ -10,7 +10,7 @@ Architecture: any
 Pre-Depends: debconf
 Provides: pop3-server, imap-server
 Conflicts: pop3-server, imap-server
-Depends: ${shlibs:Depends}, ${misc:Depends}, debconf, libical, libssl0.9.7, libncurses5, libdb4.3, libldap2, libsasl2, libgnutls11, libgcrypt11, libc6, libgpg-error0, ucf, libdb3-util
+Depends: ${shlibs:Depends}, ${misc:Depends}, debconf, libical, libssl0.9.7, libncurses5, libdb4.3, libldap2, libsasl2, libgnutls | libgnutls11, libgcrypt11, libc6, libgpg-error0, ucf, libdb3-util
 Suggests: citadel-mta
 Description: Citadel is the good old BBS system grown up to a Groupware.
  Citadel is a different kind of messaging and collaboration platform. While 
index d0e82ed81f9e187980afa26e7491fa6c61fa0353..068cf9bba29469d4e76c978b5723d5df43ac2cc8 100644 (file)
@@ -644,7 +644,7 @@ void read_bio(CtdlIPC *ipc)
 void do_system_configuration(CtdlIPC *ipc)
 {
 
-#define NUM_CONFIGS 51
+#define NUM_CONFIGS 52
 
        char buf[SIZ];
        char sc[NUM_CONFIGS][256];
@@ -744,6 +744,7 @@ void do_system_configuration(CtdlIPC *ipc)
        strprompt("SMTP MSA server port (-1 to disable)", &sc[38][0], 5);
        strprompt("SMTPS server port (-1 to disable)", &sc[41][0], 5);
        strprompt("Postfix TCP Dictionary Port server port (-1 to disable)", &sc[50][0], 5);
+       strprompt("ManageSieve server port (-1 to disable)", &sc[51][0], 5);
 
        /* This logic flips the question around, because it's one of those
         * situations where 0=yes and 1=no
index b81c2caf6c168975b6d74159e42a4c5294eda9dc..cb0618a61cdee24d3affd39ed8a2b499c30ce3af 100644 (file)
@@ -127,6 +127,7 @@ void initialize_server_extensions(void)
        lprintf(CTDL_INFO, "%s\n", serv_fulltext_init());
        lprintf(CTDL_INFO, "%s\n", serv_autocompletion_init());
        lprintf(CTDL_INFO, "%s\n", serv_postfix_tcpdict());
+       lprintf(CTDL_INFO, "%s\n", serv_managesieve_init());
 }
 
 
index 288f7b9928f84c3ae7044ffb6462ca52679b7dbf..f2376914973d9147daacb6a6fc6cbc3d876257bd 100644 (file)
@@ -35,6 +35,7 @@ char *serv_vcard_init(void);
 char *serv_fulltext_init(void);
 char *serv_autocompletion_init(void);
 char *serv_postfix_tcpdict(void);
+char *serv_managesieve_init(void);
 /*
  */
 
index 2b60be19372c40d96a2253db6f05a85c65d11771..c45b081c332f6d7bb5b6a794cd3c02e435e5b33e 100644 (file)
@@ -125,6 +125,7 @@ struct CitContext {
        struct citimap *IMAP;
        struct citpop3 *POP3;
        struct citsmtp *SMTP;
+       struct citmgsve *MGSVE; /**< Managesieve Session struct */
        char *SMTP_RECPS;
        char *SMTP_ROOMS;
        struct cit_ical *CIT_ICAL;              /* calendaring data */
index 75ade1484757eb7361af60ddb89fd0f66504cc73..e2c6e644c48775f8d83f4a3ee629dae114a0e853 100644 (file)
@@ -1300,6 +1300,7 @@ int main(int argc, char *argv[])
        if (config.c_pop3s_port == 0) config.c_pop3s_port = 995;
        if (config.c_imaps_port == 0) config.c_imaps_port = 993;
        if (config.c_pftcpdict_port == 0) config.c_pftcpdict_port = -1;
+       if (config.c_managesieve_port == 0) config.c_managesieve_port = -1;
 
        /* Go through a series of dialogs prompting for config info */
        if (setup_type != UI_SILENT) {
index 92dbee7a5d4906c96bb88b707fe7f37ed4a1e45d..7a138576c69af5ea32b7dc8b8702c713f8ecc059 100644 (file)
 #define USERNOTESROOM          "Notes"
 #define USERTRASHROOM          "Trash"
 #define PAGELOGROOM            "Sent/Received Pages"
+#define SIEVERULES              "SieveRules"
 #define SYSCONFIGROOM          "Local System Configuration"
 #define SMTP_SPOOLOUT_ROOM     "__CitadelSMTPspoolout__"
 #define DELETED_MSGS_ROOM      "__CitadelDeletedMessages__"
index fe1b31aa3b727e40cdccf0c8cf0b82a963aeb9ca..f1827c6766d949b27066531d2b188d898eba1a1d 100644 (file)
@@ -78,4 +78,16 @@ some code and deciding what to work on.
   the actual berkeley db version in its state file, and in case of an up/downgrade
   moan this to the user / logfile. bdb upgrades should trigger a mail to aide.
 
+* easy management of external room access. there should be a gui way for room aliases.
 
+* backcheck of aliases. citadel must check, if on save of the aliases there will be a 
+  race between other users / users aliases. 
+  -> citadel must check while saving the aliases, if the mail delivers yet to another 
+     person than the one just saving the aliases. if yes, it should do something like 
+     mail to foo@bar.org is already delivered to joeblow@bar.org
+
+* uid to name in webcit / imap; citadel shouldn't display something like uid.room
+  to other users, if they share it to others. it should do something like username/room
+  where username should be a floor.
+
+* webcit should be made more resistant to html injections, especialy the chat window.
\ No newline at end of file