]> Pileus Git - ~andy/fetchmail/blob - TODO.txt
326f2b870bb726da944948fc18156c557a6b928f
[~andy/fetchmail] / TODO.txt
1 Note that there is a separate todo.html with different content than this.
2
3 soon - MUST:
4 - add FAQ entry and error emssage pointers to auth failures in automatic
5   auth
6 - audit if there are further untrusted data report_*() calls.
7 - Debian Bug #475239, MIME decoder may break up words (need to quote results)
8 - put bare IP addresses in brackets for SMTP (check if there are RFC
9   1123/5321/5322 differences)
10 - Debian Bug #531589: fetchmail ignores SIGUSR1 in idle mode.
11 - Fix further occurrences of SMTP reply code handling:
12    - for proper smtp_reponse caching of multiline codes (there are some)
13    - for stomping over control characters.
14 - check if smtpname and smtpaddress in particular work as advertised,
15   thread "Fetchmail with Postfix virtual users" around 2009-09-23 on
16   fetchmail-users@, by Joost Roeleveld and Gerard Seibert.
17 - virtual domain DOCUMENTATION (rewriting @example.com to
18   @virtual.example.com possible? Joost Roeleveld, thread "Fetchmail with
19   Postfix virtual users" around 2009-09-23 on fetchmail-users@).
20
21 soon - SHOULD:
22 - add repoll for all kinds of auth failures
23   (requires framework to track which auth failed in auto mode)
24 - SockOpen sometimes exits with errno == 0, confusing users (found with
25   Google RealTime on Twitter)
26 - make sure the man page completely lists all options (f. i. sslcertpath) in
27   the tables.
28 - allow \Deleted without \Seen, rf. 
29   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=466299
30 - document IMAP4 ACL requirements
31 - CRYPTO: log configured server name on certificate mismatch (perhaps pay
32   attention to via entries and stuff like that)
33 - CRYPTO: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=432618
34   * write a table of combinations of TLS/SSL options
35 - add To: header to warning mails (authfail for instance)
36 - Fix TOCTOU race around prc_filecheck*
37 - Read CAPABILITY from greeting if present, saves one round trip.
38 - Check if LAST argument is properly validated against message count.
39 - add Message-ID: header and other SHOULD headers to warning mails?
40 - report actual SMTP error with "SMTP listener refused delivery", sugg.
41   Richard Brooksby, fetchmail-users 2010-04-06.
42
43 soon - MAY:
44 - find a better replacement for sscanf parsing - we don't usually
45   detect errors in format strings such as "* %d FETCH " because we don't
46   check if the FETCH is (a) present, (b) consumed.
47 - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=471176
48   => fetchmail: support utf-8 encoding in log file
49   Revisit http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=400719
50   => syslog messages are localised
51   http://lists.debian.org/debian-devel/2006/11/msg01068.html
52 - when logging to syslog, disable locale?
53 - Get rid of peeking in socket.c? MSG_PEEK seems non-portable.
54 - revise ticker, and add something like .........20%.... ... 100%
55   (suggested by Yue Wu)
56
57 questionable:
58 - Convert POP3 UIDs to X-UIDL?
59 - fetch IMAP message in one go (fetchmail-devel by Adam Simpkins
60   <simpkins@cisco.com> around Nov 2nd)?
61
62 6.4:
63 - Properly free host/user entries (through C++ class instantiation and destructors...)
64 - Remove stupid options, such as spambounce, or deferred bounces for anything
65   but wrong addresses
66 - Do not ever guess envelope from content headers such as To:/Cc:/Resent-To: or
67   similar.
68 - Replace sscanf/fscanf by functions that do range checking
69   (strtol/strtoul), and make arguments unsigned long.
70 - drop LAST support
71 - use PS_PROTOCOL for pre-/post-connect command failures - 6.3 uses 
72   PS_SYNTAX, and that's not necessarily the case. At least if the 
73   command terminates with a signal, we should report PS_PROTOCOL.
74 - revisit maximum allowed rcfile permissions, fix inconsistency
75   (silently allowing g+x).
76 - make UID code more efficient, parsing is O(n^2), should be no worse
77   than O(n log n), lookup is O(n), should be O(log n).
78   * Idea for C: use <search.h> tfind/tsearch. Need to split idlist up
79     so it only keeps the ids, and use an array to track status.
80 - help systematic debugging
81     - by making logging more strict (Postfix's msg_* as example??)
82     - by adding a --loggingtest or something that emits 
83       a set of test log messages at various severity levels, in order to 
84       make sure people get complete logs.
85     - by adding messages where fetchmail stuffed its output.
86 - Debian Bug #454291 fetchmail --quit: should check, that pid file 
87   really contains pid of fetchmail process (Dmitry Nezhevenko)
88   => use fcntl() lock?
89 - feature to skip first N or all messages upon first download, or fetch
90   last N.
91 - download only messages whose headers match a filter (by Toby, Usenet
92   Nov 2007 de.comm.software.mailserver
93   Message-ID: <1195033726.123704.296060@k79g2000hse.googlegroups.com>)
94 - feature request by Daniel Goering <g_daniel@gmx.net> on
95   fetchmail-devel 2007-11-15: populate .fetchids from current messages.
96   (it'll probably be useful to limit this to "all but the 10 latest" or
97   "all before date this-and-that")
98 - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374514
99   "Deleting fetchids file" vs. POP3 - probably unneeded if we use IMAP UIDs.
100 - CRYPTO: change SSL/TLS UI incompatibly, making it easier to use
101 - CRYPTO: allow selection of SSL/TLS Ciphers
102 - CRYPTO: perhaps switch to libgsasl and libgnutls (which doesn't talk SSLv2,
103   but we should abandon that anyways).
104 - CRYPTO: perhaps port to NSS? Check license and features and required procedure
105   changes. - Redhat Bugs #333741 (crypto consolidation), #346891 (port fetchmail to NSS)
106 - CRYPTO: make the SSL default v3 (rather than v23).
107 - CRYPTO: remove sslfingerprint? too easily abused (see NEWS)
108 - CRYPTO: force sslcertck
109 - CRYPTO: by default forbid cleartext or other compromising password
110   schemes over insecure connections?
111 - put more hints to the FAQ (should we call it FGA?) as first support place
112 - make sure we print socket error messages such as connection reset by
113   peer to hint users the problem is not in fetchmail
114 - require envelope option for multidrop ; if not found in header, defer message?
115 - > b) When the envelope header is specified, but it isn't found, a
116   > warning is logged and the mail is forwarded to the postmaster
117   > ("WARNING: Envelope header $HEADER found, cannot identify the
118   > recipient.  Forwarding to the postmaster")
119   Rob MacGregor 2007-03-16 Patch to the man page, fetchmail-devel@
120 - integrate Isaac Wilcox's test rig
121 - look at Tony Earnshaw's .spec file
122 - look at Gentoo patches
123 - remove dead replacement functions: strdup (Andreas Krennmair), ...
124 - more SMTP/LMTP error detail on message rejections even outside verbose mode.
125   Ian D. Allen, fetchmail-users. Two messages with examples.
126   What goes here? fetchmailrc location, server, port, user, folder, anything else?
127 - see if "AUTH SSH" can be made to work for POP3
128 - revisit BerliOS patches
129 - check recent list mail
130 - check Debian BTS and other bug trackers
131 - better logging (log all headers, log forward destination + method)
132 - check strict envelope N Received parsing,
133   see mail from Admin Att on fetchmail-users
134 - 6.3.4-pending-deletes.patch
135 - fetchmail -s with running daemon complains rather than silently
136   restarting daemon
137 - send warning message when connection fails?
138 - check FAQ O5 - do we really prefer From: over envelope?!?
139 - add code to allow safe authentication schemes if TLS fails
140 - make APOP an authenticator, integrate with regular auto authentication
141   but stuff it at the end
142 - allow forcing RETR (RETR vs. TOP, fetchmail-users, drbob 2008-01-11)
143 - CRYPTO: use SASL?
144 - make logfile more useful (redirect not only in daemon mode)
145 - close/reopen logfile on certain signals (for newsyslog/logrotate
146   support)
147 - for virtual mapping, we don't currently support local user aliases or 
148   regexp matching with replacement. This would be useful for hosting 
149   several virtual domains in one multidrop mailbox, as in 
150   qmail/courier's:
151
152   @one.example:bob-one
153   @two.example:bob-two
154
155   Result:
156   some@one.example maps to bob-one-some@serverdomain
157   another@two.example maps to bob-two-example@serverdomain
158
159   we can strip the bob-*, but but we don't support domain catchalls 
160   here, and we cannot currently delegate or rewrite the remaining 
161   one-* or two-* users in a useful way. All local parts of the upstream 
162   domains must be known and mapped in the configuration file.
163   (See fetchmail-users, Michelle Konzack, 2009-05-03, "4 multidrop but one 
164    destination server" and followup)
165
166   This probably entails some form of extended user mapping inside 
167   fetchmail, for map_name() in transact.c, and possibly 
168   find_server_names() ibidem.
169 - more verbose diagnostics, what, why, how, ... (what does fetchmail do, what
170   does it expect, what does it get instead, what does that mean, how can the
171   user fix it; references to the manual)
172
173
174 DOCUMENTATION:
175 - Add info whether Keywords are global, server or user keywords
176 - consolidate multidrop documentation
177 - HOWTO (on configuration, and on SSL in particular)