Commit bb5c8d24 bb5c8d240b708efa81f84a73dc6feb47316b0927 by Sergey Poznyakoff

Reformatted in Emacs outline mode

1 parent 0cd21037
Showing 1 changed file with 89 additions and 113 deletions
1 + --> fixed/done
2 - --> pending
3 = --> on hold
4 * --> in progress
5 1
6 [docs] 2 * Documentation
7 3
8 [mailbox or mailbox2] 4 * mailbox
9 5
10 IMPORTANT: 6 ** Generic search interface
11 There is currently a rewrite of the mailbox called mailbox2 to address
12 some of the flaws of the old version.
13 7
14 - generalized search interface 8 ** Maildir support
15 9
16 [mail.local] 10 ** iterator_t is very ineffective. Traversing the list from iterator_first()
11 till iterator_is_done() takes O(n*(n+1)/2) time units, where n is
12 number of elements in the list. To reduce this to O(n), iterator_t
13 must keep the address of the last visited item in the list.
17 14
18 - can it append to an imap mailbox? 15 ** Locking
19 16
20 [pop3] 17 *** Implement a read/write locker_lock() flag so that when MU_LOCKER_WRONLY
18 is set in the locker flags, only write locks actually lock the file,
19 read locks don't do anything.
21 20
22 - pop3d_readline - should this use select(), avoid the race condition, 21 *** implement mailbox_lock() and mailbox_unlock() shortcut functions.
23 and touch the lockfile in time intervals smaller than
24 MU_LOCKER_EXPIRE_TIME?
25 22
26 [imap4d] 23 *** what kind of locking should mh use? See FIXME in mbx_mh.c
27 24
28 - support of mailspools in user home directory, particularly when 25 *** why does mimetest fail on a symlink, but suceed on a dotlocked file?
29 they are in maildir format (I think qmail does this).
30 26
31 - Check interaction with various imap clients. Currently tested with: 27 *** implement a force unlock mode... so that when a mailbox
32 mail (from mailutils itself), mutt, pine, netscape, mozilla. 28 is closed or destroyed it can make sure that the lock
29 is definitely gone.
33 30
34 - Better support of multi-access mailbox 31 ** argcv.c should unescape strings as well as unquote them
35 32
36 - implement charsets in search: 1 SEARCH CHARSET ISO-8859-2 TEXT ... 33 ** write a fnmatch() that doesn't respect []
37 34
38 - implement AUTHENTICATE KERBEROS_V4 and SKEY and CRAM-MD5 and SRP? 35 ** select needed
39 36
40 [mail] 37 ** mailboxes don't remember whether or not they've been opened
41 38
42 - Add support for /etc/mailcap. 39 ** print errors to a debug object, by default
43 40
44 [mailbox] 41 ** does IMAP do an EXAMINE instead of a select if the mailbox is being
42 opened readonly? Does list return whether a mailbox is readonly?
43 Check against CMUs anon server, it is a read-only mailbox.
45 44
46 - iterator_t is very ineffective. Traversing the list from iterator_first() 45 ** mu_cpystr - the size_t* size outputs only give strlen(), not the
47 till iterator_is_done() takes O(n*(n+1)/2), where n is number of elements 46 actual length?
48 in the list. To reduce this to O(n), iterator_t must keep the address
49 of the last visited item in the list.
50 47
51 - locking: 48 ** need code to find a "real" envelope from... an actual email address
49 that DSNs can be sent to.
52 50
53 - implement a read/write locker_lock() flag so that when MU_LOCKER_WRONLY 51 ** need to be able to map some addresses (like mail to "root") to a
54 is set in the locker flags, only write locks actually lock the file, 52 user for the box, a la nullmailer, perhaps
55 read locks don't do anything.
56 53
57 - implement mailbox_lock() and mailbox_unlock() shortcut functions. 54 ** mailer_t: the SMTP mailer isn't as fully implemented as the sendmail
55 mailer.
58 56
59 - what kind of locking should mh use? See FIXME in mbx_mh.c 57 ** make the smtp mailer calls usable standalone, as well as url based,
58 and use them in mail.remote.
60 59
61 - why does mimetest fail on a symlink, but suceed on a dotlocked file? 60 ** header_get_value() returns the newline?
62 61
63 - implement a force unlock mode... so that when a mailbox 62 ** implement a header_field_unfold()?
64 is closed or destroyed it can make sure that the lock
65 is definitely gone.
66 63
67 - lib/argcv.c should unescape strings as well as unquote them 64 ** pipe_open_stream() - implemented with popen()
68 65
69 - write a fnmatch() that doesn't respect [] 66 ** support AUTH=anonymous (imap://cyrus.andrew.cmu.edu/archive.info-cyrus)
70 67
71 - select needed 68 * pop3
72 69
73 - mailboxes don't remember whether or not they've been opened 70 ** pop3d_readline - should this use select(), avoid the race condition,
71 and touch the lockfile in time intervals smaller than MU_LOCKER_EXPIRE_TIME?
74 72
75 - print errors to a debug object, by default 73 * imap4d
76 74
77 - does IMAP do an EXAMINE instead of a select if the mailbox is being 75 ** Check interaction with various imap clients. Currently tested with:
78 opened readonly? Does list return whether a mailbox is readonly? 76 mail (from mailutils itself), mutt, pine, netscape, mozilla.
79 Check against CMUs anon server, it is a read-only mailbox.
80 77
81 - mu_cpystr - the size_t* size outputs only give strlen(), not the 78 ** Better support of multi-access mailbox
82 actual length?
83 79
84 - finish mh mailbox support (they don't have a folder yet) 80 ** implement charsets in search: 1 SEARCH CHARSET ISO-8859-2 TEXT ...
85 81
86 - need code to find a "real" envelope from... an actual email address 82 ** implement AUTHENTICATE KERBEROS_V4 and SKEY and CRAM-MD5 and SRP?
87 that DSNs can be sent to.
88 83
89 - need to be able to map some addresses (like mail to "root") to a 84 * mail
90 user for the box, a la nullmailer, perhaps
91 85
92 - mailer_t: the SMTP mailer isn't as fully implemented as the sendmail 86 ** Add support for /etc/mailcap
93 mailer.
94 87
95 - make the smtp mailer calls useable standalone, as well as url based, 88 * Mailcap API
96 and use them in mail.remote.
97 89
98 - header_get_value() returns the newline? 90 The framework is implemented. Needs extensive testing.
99 91
100 - implement a header_field_unfold()? 92 * Mime.types API
101 93
102 - pipe_open_stream() - implemented with popen() 94 * libmuauth
103 95
104 + Configuration API 96 ** First argument to mu_auth_fp (and second one to mu_auth_runlist) should
97 be struct mu_auth_data ** instead of void *.
105 98
106 - Mailcap API 99 * examples
107 100
108 - Mime.types API 101 ** unify the mbox-* and mimetest examples with messages, it would be nice
102 to have a general purpose tool
109 103
110 + A ticket file format allowing specification of different authentication 104 * mh -- see mh/TODO
111 information for different mailboxes.
112 105
113 - imap4 client login referals 106 * sieve
114 107
115 - imap4 client mailbox referals 108 ** Implement boolean shortcut evaluation for `allof' and `anyof'
116 109
117 - Maildir mailbox support 110 ** uid isn't good to identify messages, use message-id?
118 111
119 + support AUTH=anonymous (imap://cyrus.andrew.cmu.edu/archive.info-cyrus) 112 ** run as daemon, sieveing mail on arrival (need interface for notification
113 of message arrival, this is supported by imap, but we'll have to fake
114 for pop and local spools my polling, why can't you select() on a unix
115 file?)
120 116
121 [libmuauth] 117 NOTE: Do we need it? mail.local already provides this functionality.
122 118
123 - First argument to mu_auth_fp (and second one to mu_auth_runlist) should 119 * utilities
124 be struct mu_auth_data ** instead of void *.
125 120
126 [examples] 121 ** forward only MTA, nullmailer like, but accepting SMTP on 25 from localhost
127 122
128 - unify the mbox-* and mimetest examples with messages, it would be nice 123 ** utility to move all mail from one mailbox to another, like mbox to
129 to have a general purpose tool 124 IMAP, preserving all flags that are possible. can sieve do this, or do
125 I need a mbox-copy() utility?
130 126
131 [mh] 127 ** file viewer, based on the mimetypes api. I want to do a "v foo.blah",
128 have it look up .blah in mime.types, and do the action spec'ed in mailcap.
132 129
133 - see mh/TODO 130 ** all
134 131
135 [sieve] 132 * add nightly build
136 133
137 - Implement boolean shortcut evaluation for `allof' and `anyof' 134 * add more features
138 135
139 - uid isn't good to identify messages, use message-id? 136 * optimize everything
140 137
141 - run as daemon, sieveing mail on arrival (need interface for notification 138 * test everything
142 of message arrival, this is supported by imap, but we'll have to fake
143 for pop and local spools my polling, why can't you select() on a unix
144 file?)
145 Do we need it? mail.local already provides this functionality.
146 139
147 [utilities] 140 * util_strcasestr() from mail/util.c provides the same functionality
141 as i_ascii_casemap_contains() from libsieve/comparator. Merge both
142 versions.
148 143
149 - forward only MTA, nullmailer like, but accepting SMTP on 25 from localhost 144
150 145 Local variables:
151 - utility to move all mail from one mailbox to another, like mbox to 146 mode: outline
152 IMAP, preserving all flags that are possible. can sieve do this, or do 147 paragraph-separate: "[ ]*$"
153 I need a mbox-copy() utility? 148 end:
154
155 - file viewer, based on the mimetypes api. I want to do a "v foo.blah",
156 have it look up .blah in mime.types, and do the action spec'ed in mailcap.
157
158 [all]
159
160 - add nightly build
161
162 - add more features
163
164 - optimize everything
165
166 - test everything
167
168 + add imap server code (JB && Shaleh Oct 11/99)
169
170 - util_strcasestr() from mail/util.c provides the same functionality
171 as i_ascii_casemap_contains() from libsieve/comparator. Merge both
172 versions.
......