[dovecot-cvs] dovecot TODO,1.29,1.30

cras at procontrol.fi cras at procontrol.fi
Tue Dec 17 07:08:17 EET 2002


Update of /home/cvs/dovecot
In directory danu:/tmp/cvs-serv11053

Modified Files:
	TODO 
Log Message:
updated



Index: TODO
===================================================================
RCS file: /home/cvs/dovecot/TODO,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- TODO	1 Dec 2002 14:43:09 -0000	1.29
+++ TODO	17 Dec 2002 05:08:15 -0000	1.30
@@ -10,11 +10,15 @@
       stat()..unlink()? no easy way to fix this really, just replace it with a
       fcntl() lock.
     - SEARCH FROM/TO/CC/BCC now generates the field from ENVELOPE which it
-      uses for matching. This however gives different results than when
+      uses for matching. This however may give different results than when
       matching from headers.
     - SIGHUP didn't update imap_listen. this is a bit annoying to fix though,
       since new listen() may fail for a few times because auth processes may
       not die immediately..
+    - if user tries to create huge subfolder hierarchy we start truncating
+      them. rather give error message instead.
+    - We can use Linux sendfile() up to 2GB, after that we get EOVERFLOW and
+      fail. We should rather fallback to mmap+write at that point.
 
  - reliability fixes:
     - if we deleted mail from index but didn't write modify log, other
@@ -30,6 +34,7 @@
       failures aren't handled too well. Rather should be handled in similiar
       way to locking failures, so that at least we don't try to rebuild the
       index because of it.
+    - fsck should check binary tree
 
  - checks:
    - if we have entries in modifylog with UID 10..11, 9..12, 8..13 etc.
@@ -64,11 +69,17 @@
     - check with strace what dovecot does when evolution checks new mail,
       it's quite a lot. some things probably wouldn't need to be done
       (mkdirs/symlinking inbox) and other things could be cached in memory.
+    - sort: we could create alternative binary tree file(s) for different sort
+      conditions, ".tree-sort" or something. sort code itself already supports
+      this optimization.
 
  - lib-charset:
      - utf8_toupper() is a must. and a bit difficult if we want to do it right.
      - add support for other things than iconv() as well? we could reuse
        the code from cyrus or courier
+     - cache iconvs? they'd probably be faster if we just reset the
+       conversion instead of opening new one every time. and there will likely
+       be only one or two charsets which are used for nearly all conversions.
 
  - allow index files to be in completely separate location than mail data.
    mails could be read through slow NFS access but indexes from fast local
@@ -211,6 +222,12 @@
  - ..wonder what it would look like if I did s/FooBarBaz/struct foo_bar_baz/..
  - nearest_power() could be problematic with things that want it for ints,
    not size_t..
+ - go through the sources and mark all manual buffer writings with @UNSAFE
+   tag. try to change them to use buffer API instead.
+     - rfc822-tokenize, subscription-file.c, custom_flags ioloop,
+     - hash?, [io]stream-file.c?
+     - temp-string.c should use Buffer?
+     - master and auth processes are horrible
 
 optional optimizations:
  - provide some helper binary to save new mail into mailboxes with CR+LF
@@ -314,13 +331,6 @@
      - binary (draft-nerenberg-imap-binary)
 	 - perhaps not too useful. I'd like to make Dovecot fully
 	   binary-safe though.
-     - sort (draft-ietf-imapext-sort)
-	 - basically sorted SEARCH, requiring CHARSET support for
-	   UTF-8 and ASCII
-	 - we could create alternative binary tree file(s) for different sort
-	   conditions, ".tree-sort" or something. or if we decide to just
-	   keep it in memory, btree could still be best choice.
-	 - required by squirrelmail (webmail)
      - thread (draft-ietf-imapext-thread)
          - basically SORT but reply with thread lists
 	 - possibly use a binary tree too .. or maybe it's enough to use the




More information about the dovecot-cvs mailing list