From 4529947f70a935a72e455e37b922edaee3b45677 Mon Sep 17 00:00:00 2001 From: Erwin Hoffmann Date: Thu, 21 Sep 2023 18:12:32 +0200 Subject: added doc directory --- doc/OLD/AUTHORS | 45 ++ doc/OLD/ChangeLog.1.2 | 1237 ++++++++++++++++++++++++++++++++++++ doc/OLD/ChangeLog.1.3 | 76 +++ doc/OLD/HTML/bincimap-faq.html | 926 +++++++++++++++++++++++++++ doc/OLD/HTML/bincimap-goals.html | 160 +++++ doc/OLD/HTML/bincimap-imapdir.html | 257 ++++++++ doc/OLD/HTML/bincimap-tech.html | 503 +++++++++++++++ doc/OLD/HTML/bincimap.css | 8 + doc/OLD/README | 109 ++++ doc/OLD/README.SSL | 141 ++++ 10 files changed, 3462 insertions(+) create mode 100644 doc/OLD/AUTHORS create mode 100755 doc/OLD/ChangeLog.1.2 create mode 100644 doc/OLD/ChangeLog.1.3 create mode 100644 doc/OLD/HTML/bincimap-faq.html create mode 100644 doc/OLD/HTML/bincimap-goals.html create mode 100644 doc/OLD/HTML/bincimap-imapdir.html create mode 100644 doc/OLD/HTML/bincimap-tech.html create mode 100644 doc/OLD/HTML/bincimap.css create mode 100644 doc/OLD/README create mode 100644 doc/OLD/README.SSL (limited to 'doc/OLD') diff --git a/doc/OLD/AUTHORS b/doc/OLD/AUTHORS new file mode 100644 index 0000000..1ece119 --- /dev/null +++ b/doc/OLD/AUTHORS @@ -0,0 +1,45 @@ +The following parties have participated in writing code or otherwise +contributed to the Binc IMAP project: + +Author: +Andreas Aardal Hanssen + +Several users have been very helpful with bug reports and suggestions, and +the author is very grateful for their contributions. + +Some users have also gone to the extra effort of debugging the cause of a +bug, or have found a way of implementing a feature, and have either provided +a very good description of what is needed, or they have actually provided a +patch that has been added to Binc IMAP. + +While adding extra value to the discussion around the discovery of a bug or +the evaluation of a new feature, these contributors also take some load of +the author's back, so they deserve extra thanks. + +In this list are also included people who have contributed with mirrors and +translations of the web pages. + +Henry Baragar +Jürgen Botz +Charlie Brady +Caskey Dickson +Ketil Froyn +Gary Gordon +Marek Gutkowski +Daniel James +Zak Johnson +Sergei Kolobov +Rafal Kupka +Eivind Kvedalen +HIROSHIMA Naoki +Greger Stolt Nilsen +John Starks +Peter Stuge +Gerrit Pape +Jeremy Rossi +Dale Woolridge + +If you have contributed to the Binc IMAP project but are not listed here +(this happens quite often), please send a mail to andreas-binc@bincimap.org +and I'll add you to the list. + diff --git a/doc/OLD/ChangeLog.1.2 b/doc/OLD/ChangeLog.1.2 new file mode 100755 index 0000000..2fc7c86 --- /dev/null +++ b/doc/OLD/ChangeLog.1.2 @@ -0,0 +1,1237 @@ +* Thu Jul 21 2005 Andreas Aardal Hanssen +- Fixed the INTERNALDATE response (again), so it uses the +DDDD + format instead of GMT, CEST and so on. +- The command line switch for "depot" was fixed. +- When renaming files / setting flags, the file list is read + first, and the files are then renamed afterwards. This fixed + a bug on XFS, where renaming the files also changes the order + in which they are scanned. +- Integrated Jerry Lundström's patch to make sure that the + Mailbox::path variable is not reset when a mailbox is closed. +- Released 1.2.13final + +* Sun Mar 06 2005 Andreas Aardal Hanssen +- Added quoting in the configure script to make it more cross platform. +- Updated Copyright notices to include 2005 +- Remove the log messages about a possible crash when Binc IMAP was + unable to grab the mailbox lock. +- Maildir fix: Always add :2, to files that are moved to cur/. +- Made sure the state of the STARTTLS capability is correct, also when + in STARTTLS mode. +- The time zone is now removed from the greeting if strftime fails (if + the time zone is not set, for example). %Z is used instead of %z, to + avoid text time zones ("GMT" becomes "+0100"). +- Fixed the BODY response, so if no longer includes any extensions. +- The -p short option for --auth-penalty has been removed; it was a + conflicting short option. +- The LIST reference can now end with the delimiter character. +- EINVAL is caught in fsync(), which allows Binc IMAP to work better on + an NFS share. +- Released 1.2.12final + +* Mon Dec 13 2004 Andreas Aardal Hanssen +- Fixed a lockup due to dangling symlinks in the Maildir +- Replaced opendir()/dirfd() with open(), and Binc doesn't + use O_DIRECTORY anymore. +- Fixed a bug with FIELDS in a BODY fetch being empty. +- Fixed so EXAMINE no longer writes the cache file. Ensure that + the read-only flag is always set correctly. +- Fixed so the \Recent flag is always remembered when the flags + are reset. +- When in read-only mode, all messages earlier marked as + expunged are replaced properly in the internal message map. +- Fixed a missing space in the response from RFC822.TEXT. +- Fixed two bugs when saving the subscribed list on a full + file system. +- Some compile fixes +- Released 1.2.11final + +* Sun Sep 19 2004 Andreas Aardal Hanssen +- Released 1.2.10final + +* Mon Sep 13 2004 Andreas Aardal Hanssen +- For proper crash safety also on Linux systems, sync the directories + as well as the files. +- In the MIME parser, count the number of lines and bytes in + the parent multiparts correctly. +- When committing flags changes, restart the filename scan if the + rename fails because the file name suddenly changed. +- Treat INBOX as case-insensitive when using wildcards in LIST and + LSUB. +- Replaced '%i' with '%d' in convert.h to avoid strange problems with + sprintf generating wrong Maildir file names. +- Binc no longer checks invalid mailbox paths like ".." and "". +- Released 1.2.10beta1 + +* Mon Jul 26 2004 Andreas Aardal Hanssen +- Fixed a bug which made all mailboxes read-only if an EXAMINE had + been used throughout the session. + +* Tue Jul 20 2004 Andreas Aardal Hanssen +- Made the README paths correspond to the ones generated by configure. +- Released 1.2.9final + +* Mon Jul 12 2004 Andreas Aardal Hanssen +- Fixed a few bugs where session.setLastError() was used instead of + session.setResponseCode(). +- Fixed a charset detection bug in SEARCH. +- Set Binc to ignore the SIGPIPE signal. +- Released 1.2.9beta2 +- Fixed a compile error. +- Released 1.2.9beta3 + +* Sun Jul 04 2004 Andreas Aardal Hanssen +- Fixed a bug with concurrent access when both clients issued + EXPUNGE requests on messages that had arrived within the same + session. +- Released 1.2.9beta1 + +* Wed Jun 09 2004 Andreas Aardal Hanssen +- Binc IMAP now treats all other checkpassword exit codes than 0, 2 + and 111 as "authentication failed". + +* Sun Jun 06 2004 Andreas Aardal Hanssen +- Instead of keeping silent about a failed pending update check, the + server will not explicitly close the connection, as it was intended + for it to do. +- The cause of an error caused by failures to read the cache or + uidvalidity files is properly reported now. +- If no umask is passed via the conf files, the umask is not set + (inherited by the parent process instead). +- Released 1.2.8beta1 + +* Thu Jun 03 2004 Andreas Aardal Hanssen +- Fixed a bug with Session::loadSubscribe trimming entries read from + .bincimap-subscribed, reported by Seth LaForge. +- Fix a bug with subscribing to mailboxes. Now, mailboxes can only be + subscribed to once. +- Allow FETCH to give FLAGS, EXISTS and RECENT notifications for + tighter synchronization with the depot. + +* Sun May 31 2004 Andreas Aardal Hanssen +- Compile fix for FreeBSD (pid_t) + +* Sun May 30 2004 Andreas Aardal Hanssen +- A compile fix in configure.in by removing unnecessary quoting. + +* Tue May 25 2004 Andreas Aardal Hanssen +- Added Henry Baragar's patches to fix the untagged NO responses + for unsupported commands. The responses are now tagged. + +* Sun May 23 2004 Andreas Aardal Hanssen +- UID STORE now responds with a UID data member as part of the + untagged FETCH responses. +- When copying, the message is now rewound before data is read. This + fixes partial copies of messages that have recently been parsed. +- bincimapd now takes the mailbox path as an option unqualified + argument to bincimapd, which overrides the mailbox path inherited + from bincimap-up or set through command line options. This fixes + a problem with vmailmgr. +- Added Daniel James' patch for fixing fetching of RFC822.TEXT, + which should be equivalent to BODY[TEXT] but included the header + in the response. + +* Fri May 21 2004 Andreas Aardal Hanssen +- Fixed problem with the sequence set '*'. Binc IMAP claimed no + messages matched this set, but now the highest UID or sequence + number matches. + +* Sun Apr 18 2004 Andreas Aardal Hanssen +- Released 1.2.7final + +* Mon Apr 12 2004 Andreas Aardal Hanssen +- Added Gerrit's patch to compile on certain 64bit architectures. + +* Sun Apr 03 2004 Andreas Aardal Hanssen +- No longer wastes time in configure step checking for features that + we don't check defines for in the sources. +- No longer checks for sstream/ostream - we don't use them anyway. +- Updated man pages to be slightly more accurate. +- From now of, Binc IMAP's tarballs by default install under + /usr/local, and setting --prefix will change this path. All Binc + IMAP files will be contained inside this directory. The RPM packages + are completely unchanged from before, and still use /opt/bincimap, + and so on. +- Updated README to reflect this new packaging style. +- Binc now generates maildir message names that conform to DjB's + suggestions for modern delivery agents. +- Released 1.2.7beta6-1 + +* Sun Mar 07 2004 Andreas Aardal Hanssen +- Fixed a mistake with handling the new command line parser. The + precedence of global config, command line arguments and local config + are now identical to that in 1.2.6. +- Released 1.2.7beta5-1 + +* Thu Mar 04 2004 Andreas Aardal Hanssen +- configure.in now also searches correctly for the OpenSSL include + path. +- Updated info on default locations for service files in README.in. +- Removed down files from supervise directories. +- Added option to force scanning when doing a pendingUpdates(). + This will also force all messages in new/ to be moved to cur/ + regardless of how the messages were stored there. +- Refined the algorithm for moving messages from new/ a tad; messages + created by Binc IMAP now get the string BincIMAP in their name. + Messages with BincIMAP in their name are always moved from new/ + immediately, otherwise the timestamp is checked. +- Released 1.2.7beta3-1 +- Typo in operator-append.cc fixed. +- Released 1.2.7beta4-1 + +* Tue Mar 02 2004 Andreas Aardal Hanssen +- COPY now uses the canonical form of the destination mailbox, so copying + to "Inbox/go" is interpreted as "INBOX/go". +- Released 1.2.7beta2-1 + +* Sun Feb 21 2004 Andreas Aardal Hanssen +- SELECT also reports RECENT and EXISTS on empty mailboxes. +- Fixes to the prioritization of default args over command line options. +- Fixes to configure.in allow correct handling of --with-openssl-libs + option. +- The magic "." mailbox with IMAPdir is now skipped. +- Added configure.in autocheck for -lsocket. +- Default values of --localstatedir, --sysconfdir and --datadir fixed. +- Fixed errors in README and README.SSL. +- Released 1.2.7beta1-1 +- Fixed more errors in configure.in with detection of SSL libs. + +* Tue Feb 10 2004 Andreas Aardal Hanssen +- Replaced command line parser, as a first step towards completely + eliminating all mysterious problems related to the ordering of + command line arguments. + +* Thu Feb 05 2004 Andreas Aardal Hanssen +- Released 1.2.6-1 + +* Tue Feb 03 2004 Andreas Aardal Hanssen +- Obfuscated email addresses in AUTHORS and sources files. +- Removed tests directory from distribution +- Moved xinetd and service scripts to localstatedir, which defaults + to /var/opt/bincimap. This has not yet been enabled in the RPM + files. +- Fixed the checks for the OpenSSL libraries. It now also attempts to + link OpenSSL, and searches several standard locations. +- The configure script now treats --enable-static and --disable-static + properly. +- Cleaned up configure.in somewhat +- Added "ca path" to bincimap.conf and command line options. +- The new "ca path" and "ca file" options are now used to read CA + certificates. This did not work properly before. +- Updated man pages with these new changes. +- Added proper handling for systems that use instead of + . +- Increased internal transfer buffer size from 1024 bytes to 8192 bytes. +- Added a fix in io-ssl.cc which only does a select on stdin if + SSL_pending() returns 0. This prevents a lockup in APPEND, among + others. +- A fix in maildir-readcache.cc handles empty mailboxes properly, + also when the cache files are missing. +- The cache files are always generated on first select, unless the + mailbox is selected in read-only mode (EXAMINE). +- Improved documentation and logging in maildir-scan.cc. +- Speedup in copying of files. We no longer wait 1 second for each + copy, but only as many microseconds as necessary for ensuring that our + own file names do not collide. We still wait one second before moving + external new/ messages into cur/. +- Bumped cache file format because of a regression introduced in 1.2.4 + which miscalculated message sizes, causing lockups. +- Fixed the bug that miscalculated message sizes. +- Fixed mime-printheader.cc. The merge of the output of BODY[TEXT] + and BODY[HEADER] is now exactly the output of BODY[], and its size + is the same as RFC822.SIZE. +- Fixed a bug in APPEND where months were stored off-by-one. +- APPEND now reads chunks of 8192 bytes instead of 1024. +- Improved algorithm in APPEND make the code easier to read and + maintain. +- Added --depot=[Maildir++|IMAPdir] command line option. +- 1.2.6beta5-1 + +* Tue Jan 20 2004 Andreas Aardal Hanssen +- Removed time_t <-> int implicit conversion and overload ambiguity. +- Rewrote the flow of the APPEND command, and the readStr command + in io.cc. +- Fixed behavior of fetching TEXT attribute. +- 1.2.6beta3-1 + +* Fri Jan 16 2004 Andreas Aardal Hanssen +- Fixed a bug where FETCH sometimes claimed that mime parts had + the wrong size. +- Reverted an erroneous change from 1.2.3 to 1.2.4 in io.cc, where + readStr() no longer initialized the input buffer to "". +- AppendOperator now stores the correct date on saved messages. +- 1.2.6b2-1 + +* Wed Jan 14 2004 Andreas Aardal Hanssen +- Two bugs were fixed that prevented a message that was saved to a + mailbox from getting the requested internaldate. +- A bug in the unfolding of MIME headers erroneously removed what was + believed to be comments from within quoted text. This messed up + parsing multipart messages with parenthesis in their boundary + strings. +- 1.2.6b1-1 +- Removed folder prefixes from header comments in all files. The + comments now only mention the base name of the file. + +* Mon Jan 12 2004 Andreas Aardal Hanssen +- LIST and LSUB now return X if X/* is queried for, as recommended + by Marc Crispin on the IMAP protocol list. +- AUTHENTICATE PLAIN now writes "+ \r\n" instead of "+\r\n" as an + initial response. KMail got confused by only the "+", while pine + got confused by "+ OK". This compromise makes AUTHENTICATE PLAIN + work for both clients, while still being completely IMAP compliant. +- Added Daniel James' patch which fixes HEADER.FIELDS.NOT behavior. + +* Fri Jan 09 2004 Andreas Aardal Hanssen +- Fixed problem with APPEND locking up +- Fixed bug where clients were not informed when messages were + expunged. +- 1.2.5-1 + +* Thu Jan 08 2003 Andreas Aardal Hanssen +- Headers now display 2002-2004 in copyright notice. +- 1.2.4-1 + +* Wed Jan 07 2003 Andreas Aardal Hanssen +- Removed mime-printstruct.cc - it caused compile problems, and is + not in use. +- Added Zak Johnson's patch to fix TRYCREATE +- Added Jason Parson's patch to fix a problem with creating lock files. + The open function didn't get the mode argument, and the lock was + created with random mode bits set. + +* Thu Dec 18 2003 Andreas Aardal Hanssen +- Removed lex/yacc storage parser and replaced it and the whole + Storage class with a new approach. This uses less memory and is + faster. Refactoring of units depending on Storage was required. +- Binc no longer requires the SSL cipher list to be set. If left + empty or not set, the default ciphers in OpenSSL are used. + +* Mon Dec 15 2003 Andreas Aardal Hanssen +- Removed memory bloat. Binc IMAP no longer reads entire fetch + responses into memory before outputting them, with the exception + of header fetch responses. + +* Mon Dec 08 2003 Andreas Aardal Hanssen +- Fixed two bugs in FETCH that messed up the fetch attributes and + gave the full header when fetching only selected fields. +- Fixed a bug in the MIME parser. We now successfully parse + Mark Crispin's torture tests completely. + +* Fri Dec 05 2003 Andreas Aardal Hanssen +- Server now correctly displays BAD response if the stub is not + parsed correctly. + +* Thu Dec 04 2003 Andreas Aardal Hanssen +- Added README.SSL +- README and README.SSL now mention the LifeWithBincIMAP.org site. + +* Tue Dec 02 2003 Andreas Aardal Hanssen +- The version number in the IMAP greeting can now be switched off with + the "version in greeting" option in Security in bincimap.conf. +- The conf files now accept the '#' character as the start of a comment, + except when quoted. +- Log now reports correct number of (unencrypted) bytes read or written. + +* Fri Nov 28 2003 Andreas Aardal Hanssen +- Implemented support for fetch attributes ALL, FULL and FAST, which + for some reason had no implementation yet. +- Fixed two bugs in operator-authenticate.cc in reading input to the + AUTHENTICATE command. Basically the server would loop forever if + the client suddenly disconnected while Binc was reading the + arguments. +- Leaving the jail settings in Security{} in bincimap.conf empty + will prevent bincimap-up from entering the chroot jail and becoming + the jail user/group, but will no longer issue any warnings about it. +- Greeting now uses (C) after Copyright instead of (c) before it. +- Removed almost all time(), alarm() and signal() use. Use of this + technique for detecting timeouts is very error prone. We now use + select() instead. +- Major changes to parser allow better detection of timeouts, and more + proper error reporting. + +* Tue Nov 25 2003 Andreas Aardal Hanssen +- Applied Zak Johnson's patch for fixing a typo in using the + "environment ip variable" setting in bincimap.conf. + +* Tue Nov 17 2003 Andreas Aardal Hanssen +- Fixed problem in maildir.cc where messages that are created with a + given internaldate always got time(0) instead. + +* Tue Oct 28 2003 Andreas Aardal Hanssen +- Fixed typos in README + +* Tue Oct 04 2003 Andreas Aardal Hanssen +- Added Gerrit's patch to solve operator<< ambiguous overload. + +* Tue Sep 29 2003 Andreas Aardal Hanssen +- Added doxygen docs. + +* Fri Sep 26 2003 Andreas Aardal Hanssen +- Added Jeremy Rossi's patch, which allows plain text authentication + if the environment variable ALLOWPLAIN is set. This can be used by + tcpserver to allow plain text authentication for clients connecting + from certain IP addresses. + +* Tue Sep 23 2003 Andreas Aardal Hanssen +- Added cache to LIST requests - speeds up consecutive LIST requests + significantly. + +* Sun Sep 21 2003 Andreas Aardal Hanssen +- Added new scripts to files section in spec file. The scripts were not + installed with the earlier rpm packages. + +* Sat Sep 20 2003 Andreas Aardal Hanssen +- Added scripts: "toimapdir", "tomaildir++" and "checkpassword.pl" +- Fixed two bugs in the MIME parser. +- Improved error reporting when creating mailboxes with invalid names. +- 1.2.3-1 + +* Thu Sep 18 2003 Andreas Aardal Hanssen +- Fixed STATUS to more properly report recent and uidnext. +- Fixed maildir-scan.cc to correctly parse unique part of messages that + erroneously contain more than one ':'. Specifically, the former parser + assumed the ':' was always followed by ",2". + +* Wed Sep 17 2003 Andreas Aardal Hanssen +- Fixed problem with some mailboxes being marked as \Noselect when + selectable. Not related to Mozilla mailbox error. +- Removed some useless log output. + +* Sun Sep 14 2003 Andreas Aardal Hanssen +- Fixed memory leak in bincimapd by adding reference counting. +- LSUB sets \Noselect again +- bincimap-subscribed is now called .bincimap-subscribed. The format is + greatly simplified. Existing subscribe-files are automatically + converted to the new format. + +* Wed Sep 10 2003 Andreas Aardal Hanssen +- "make cert" no longer uses absolute paths for mktemp and openssl. +- LSUB always reads subscribed entries from bincimap-subscribed. +- 1.2.2-1 + +* Tue Sep 09 2003 Andreas Aardal Hanssen +- Fixed bug in MIME parser where message sizes were mixed up, causing + some bodies to be reported as empty. Pine reacted to this bug by + reporting an unexpected message size. + +* Sat Sep 06 2003 Andreas Aardal Hanssen +- Fixed bug in fillInputBuffer when converting CRLF files. + +* Fri Sep 05 2003 Andreas Aardal Hanssen +- Greeting now displays time in 24h style instead of 12h style + with missing AM/PM. +- Fixed bug in MIME parser where mozilla did not display attachments + correctly. +- MIME parser speedup for partial content fetches +- MIME parser now uses unsigned ints everywhere. +- Artifact off-by-two error in mime parser is now gone. +- BODY response now correctly terminates with a matching ')'. + +* Fri Sep 04 2003 Jurgen Botz +- parameterized rpm for '--without ssl' and '--with inusr' +- parameterized version and release (use with --define) +- use configure macro so all the paths are passed to configure + (this might help in future if more paths get used) +- fixed the install and files sections to allow installing into + either /usr or /opt while conforming to FHS +- shared directories shouldn't be owned by the package (i.e. /opt, + /etc, etc.) +- use the doc macro to install doc files + +* Tue Sep 02 2003 Andreas Aardal Hanssen +- COPY now correctly reports errors with [TRYCREATE] if the destination + mailbox does not exist. +- supervise files are now in service/ and not supervise/. +- 1.2.1-1 + +* Sun Aug 31 2003 Andreas Aardal Hanssen +- Fixed so supervise/imaps/run and log/run are copied from the correct + source for "make install" +- Fixed bug in STATUS with Maildir where only messages whose file names + started with a digit were counted. +- bincimapd man page now has an ENVIRONMENT section. + +* Fri Aug 29 2003 Andreas Aardal Hanssen +- Removed '-v' option from all 'rm'. This option is not defined on + OpenBSD. + +* Thu Aug 28 2003 Andreas Aardal Hanssen +- Fixed problem with hanging bincimapd +- Known bug: STATUS does not report correct UIDNEXT when there are recent + messages. A temporary fix has been added, which has a non serious race + condition. +- 1.2.0-1 + +* Sat Aug 23 2003 Andreas Aardal Hanssen +- BincStream is now a subclass of ostream again, after reports about + hanging processes. +- Added "make cert" for creating an SSL certificate. +- Changed default certificate location in bincimap.conf to the same + directory as bincimap.conf. +- Passing --localstatedir to configure now sets the prefix for the log + dirs for multilog. +- The log/run files now log to the localstate set directory. +- Added version to README file. +- "make install" no longer overwrites existing conf/run/xinetd files. +- Added notice to end of "make install" output. +- Now reports argument (hasn't done this for a while). + +* Fri Aug 22 2003 Andreas Aardal Hanssen +- RENAME now renames hierarchies of mailboxes correctly also when the + destination name is longer than the original name. + +* Sun Aug 17 2003 Andreas Aardal Hanssen +- Fixes to mime-utils.h make it compile on more platforms. +- TestBincStream binary is no longer installed +- Depot code removed from bincimap-up, it doesn't belong there. +- operator-logout doesn't have mailbox code in bincimap-up. +- 1.2.0b1 + +* Sat Aug 16 2003 Andreas Aardal Hanssen +- Replaced fgetcCRLF with a buffering much simpler alternative. Also + with support for Mac files (so \r, \r\n and \n are all converted to + proper \r\n before processing). 20% speed increase on parser because + of this. +- Fixed memory leak problem with fopen and open used on same file + descriptor. + +* Fri Aug 15 2003 Andreas Aardal Hanssen +- Fixed bug where UID COPY treated sequence set as sequence numbers and + not UIDs. + +* Sat Aug 16 2003 Andreas Aardal Hanssen +- Replaced fgetcCRLF with a buffering much simpler alternative. Also + with support for Mac files (so \r, \r\n and \n are all converted to + proper \r\n before processing). 20% speed increase on parser because + of this. +- Fixed memory leak problem with fopen and open used on same file + descriptor. +- 1.2.0b1 + +* Fri Aug 15 2003 Andreas Aardal Hanssen +- Fixed bug where UID COPY treated sequence set as sequence numbers and + not UIDs. + +* Thu Aug 14 2003 Andreas Aardal Hanssen +- Fixed link copying. Messages are now sorted by internaldate on first + select. Then it is sorted by arrival. This allows copying while keeping + internaldate. Note that we now keep both flags and internaldate when + copying or appending messages. +- 1.1.9-1 + +* Tue Aug 12 2003 Andreas Aardal Hanssen +- Fixed issues with cache and losing file descriptors. + +* Mon Aug 11 2003 Andreas Aardal Hanssen +- Decided to bump the cache version number because the new message + sorting algorithm gives a different order of arrival than before. This + forces all new clients to resync their mailboxes. + +* Thu Aug 07 2003 Andreas Aardal Hanssen +- Any files in cur/ and new/ are treated as messages. +- Internaldate of messages is now acquired by stating files and not + by simply inspecting the filename. + +* Thu Jul 31 2003 Andreas Aardal Hanssen +- Replaced all use of exceptions with return values, or sometimes by + ignoring errors that are not worth reporting. +- Size of binaries is down by 35% when Binc IMAP now compiles with + -fno-exceptions. Those 35% extra were in the data segment, + and they were actually not shared among processes. No thanks to the + gcc team for bloating g++ binaries that use exceptions. :-) +- Implemented full buffering of input and output. Earlier versions + read and wrote data byte by byte, all is now buffered. +- COPY and APPEND operations now keep message flags. +- Depot -> Mailbox -> Message API is greatly improved. There is now + no MIME or Maildir specific code in operators. Approaching point + where we can introduce more backends. +- Mailbox iterator design is much better than before. Depot and Mailbox + iterators are implemented as proxy objects. +- Improved processing of messages makes parser single-pass. Measurements + have shown a performance increase of over 40%. +- Memory footprint of messages is smaller. +- Maildir message cacheing is greatly improved, and controlled + completely by the MaildirMessageCache singleton. The File class is + gone. +- Unsigned ints everywhere allow UID, UIDVALIDITY, sequence numbers + and sizes to be in the full range 0-4294967295. +- Largefile support (O_LARGEFILE). +- Renamed Command to Request (which is more accurate). +- Renamed BincImapParserSet to SequenceSet. +- Improved log output and error reporting. +- Fixed a bug with subscribing to mailboxes. If you subscribed to a + mailbox that didn't exist (which is ok), it wasn't listed in the + output of LSUB. Now it is, but with \NoSelect. +- Added openlog patch, which fixes a problem with trash log output + when using syslog. +- Added the subfolders patch, which fixes the bug where Binc IMAP + would claim that no subfolder creation was allowed, although it + was. +- Switched main development platform to SuSe Linux, so now we have + SuSe packages (for 8.2) in addition to the RedHat packages. + +* Sat May 31 2003 Andreas Aardal Hanssen +- Fixed bug in operator-capability.cc that did not advertise STARTTLS + correctly. + +* Fri May 30 2003 Andreas Aardal Hanssen +- All NULL replaced with 0. +- Cosmetics on .h files, removed lots of whitespace. + +* Sun May 25 2003 Andreas Aardal Hanssen +- More work on the manual +- Added manual to distro +- 1.1.8-1 + +* Fri May 23 2003 Andreas Aardal Hanssen +- FETCH ENVELOPE now correctly defaults sender and reply-to fields to + the from-field. + +* Thu May 22 2003 Andreas Aardal Hanssen +- Applied Gerrit's patch to allow compile with gcc-3.3 +- Fixed a bug for strstream users in BincStream that assumed a + stream was 0-terminated after a clear() even though that wasn't + always true. +- Fixed typo in operator-login.cc that disallowed plain text auth + in ssl connection. +- Removed extensive logging from operator-append.cc +- Added more contributors to AUTHORS file +- Added Sergei's patch to install-exec-hook and uninstall-hook + +* Tue May 20 2003 Andreas Aardal Hanssen +- Minor change to mailbox/mailbox.h allows linking of bincimap-up without + adding the mailbox library. +- 1.1.7-1 + +* Mon May 19 2003 Andreas Aardal Hanssen +- Added short options support for the new argument parser. Now has + more logical short option characters than before. +- Updated man pages with new short options +- Removed the --debug argument completely. Use --ssl instead. +- Added workaround for compiler bug using FreeBSD and gcc 2.95.x. +- Wrote more on Binc manual. + +* Sun May 18 2003 Eivind Kvedalen +- addCapability added to BrokerFactory +- Default capabilities moved to CapabilityOperator::CapabilityOperator. +- Old argument parser removed +- New argumentparser implemented +- Storage::hasKey added +- Storage::get added +- Command::extra is now public +- Session::parseCommandLine added + +* Sun May 18 2003 Eivind Kvedalen +- addCapability added to BrokerFactory +- Default capabilities moved to CapabilityOperator::CapabilityOperator. +- Old argument parser removed +- New argumentparser implemented +- Storage::hasKey added +- Storage::get added +- Command::extra is now public +- Session::parseCommandLine added + +* Sun May 18 2003 Andreas Aardal Hanssen +- Added first draft of the Binc IMAP manual. +- Removed redundant getcwd() from bincimapd.cc. +- Removed gnugetopt / getopt_long requirement. +- Updated html documentation +- Fixed a bug in FETCH with multipart extension data. +- 1.1.6-1 + +* Tue May 13 2003 Andreas Aardal Hanssen +- Added basic statistics to log output when client logs off +- A temporary hack in the mime parser was added to prevent empty mime + parts to have a negative size. +- Added uninstall hooks. + +* Mon May 12 2003 Andreas Aardal Hanssen +- manpages are now installed correctly from the tarball. +- log prefix is now fixed and enabled for multilog type logging only +- getpid is only grabbed once in the IO constructor +- Session now properly supports importing and exported data to environment +- bincimapd no longer reads command line arguments or globalconfig, + but inherits them from the environment. +- man pages for bincimap-up and bincimapd were updated with new command + line options (all are passed to bincimap-up) +- service and xinetd files no longer pass configuration details to + bincimapd. +- CAPABILITY no longer reports auth or starttls capabilities in + authenticated state +- Removed excessive logging from LIST output. +- Fixed "auto create inbox" functionality for both empty and non-empty + Mailbox paths, and for both IMAPdir and Maildir++. +- Removed intercomerr tunnel from authenticate.cc +- authenticate.cc exports state to environment before invoking + authenticator. +- Added install hooks for service/ and service/log/ files +- Added install hooks for xinetd and conf files. + +* Sat May 10 2003 Andreas Aardal Hanssen +- bincimapd now interprets command line args before anything else (allows + --version etc..) + +* Thu May 08 2003 Andreas Aardal Hanssen +- Updated man pages to point to the bincimap.org site + +* Mon May 05 2003 Andreas Aardal Hanssen +- Added Gerrit's be-nice patch "diff" to convert.h, replacing a switch + with a series of if-tests, working around a compiler bug on the Alpha + platform for FreeBSD and Debian ports. +- LSUB now always sorts subscription list before showing it to the + client. +- Removed log output from LOGIN - authenticate.cc logs enough already. +- In authenticate.cc, jail is entered after first chunk of data (the + ok response) is written from bincimapd. Fixes bug where retrying a failed + password would always fail. +- Improved log output in authenticate.cc. +- Removed the kill(...) calls in authenticate.cc, they could lead to some + unintended behavior if pids cycle. +- Improved log output in bincimap-up and bincimapd. +- In INSTALL, inserted one line at top referring to README. +- In README, cleaned up examples, added notes about securing the service. +- Updated FAQ with notes on configuring mailboxes and submailboxes. +- Fixed "make install" - added hooks that create the sysconfdir directories + and copy conf files to right places. +- configure --prefix and --sysconfdir now have default values and are no + longer required arguments. + +* Wed Apr 23 2003 Andreas Aardal Hanssen +- Moved addressToParenlist into Address class +- Removed some switches from inline convert.h functions +- Added Tools singleton class, meant to take over for convert.h, + regex.h etc. +- Started working on exporting and importing whole session object + to/from environment. +- Made some very minor improvements to log output in authenticate.cc +- For Maildir, messages in new/ are now also counted as unseen. This + bug caused several clients to report the wrong number of unseen + messages. +- Added some ostream and ostream.h includes to io.cc and added std:: + prefixes. +- SUBSCRIBE no longer checks if what you wish to subscribe to is a + valid mailbox. +- COPY and SEARCH use dynamic arrays instead of stack allocated + arrays. This is to satisfy ISO C++ restrictions. +- Removed some unused variables +- umask is now read as an unsigned int +- Cleaner exit in authenticate.cc after adding breaks +- Fixed bug in LSUB output. Folders with dots and backslashes are + now properly supported. +- 1.1.5-1 + +* Thu Apr 10 2003 Andreas Aardal Hanssen +- Removed optimization in LIST, as it turned out to give wrong + interpretation of leaf nodes. Improved algorithm is on its way. +- Changes to BincStream's dummyclass for cross-platform compatibility +- Project now compiles with "-Wall -ansi -pedantic". On some platforms, + only if SSL support is not included (OpenSSL headers do not always + compile under these restrictions). Only one warning is given in + greeting.cc where '%z' is not ISO C++. + +* Mon Apr 07 2003 Andreas Aardal Hanssen +- Renamed BincImapParserCommand to Command +- Fixed FETCH BODY, acted like BODY[] +- Removed tunneling of log data, bincimapd and bincimap-up now log + seperately. +- Fixed bug in APPEND parser which disallowed empty flag list. +- 1.1.4-1 + +* Sun Apr 06 2003 Andreas Aardal Hanssen +- LIST now first checks with the wildcard, then does a test for wether + or not it's a mailbox. Speed-up. + +* Fri Apr 04 2003 Andreas Aardal Hanssen +- Fixed flags in LIST +- LIST now uses Depot::iterator to find entries +- LIST does not include elements that are not mailboxes unless they + qualify as superiors of mailboxes. +- Minor fixes in Storage::save method now may be a bit faster. +- Removed SSL comment in bincimap-up +- Fixed wording in error message when running an undefined/disallowed + command +- Removed some unused variables +- Removed trailing CR from error when a syntax error is discovered in + storage files. +- Minor change to storage grammar action might speed up parsing of storage + files a tad. +- Fixes to BincStream allow it to work fine with iomanip/ostream + operators. Old strstream does not work. + +* Thu Apr 03 2003 Andreas Aardal Hanssen +- Added Ben Schumacher's regex patch which fixes a regex problem under + FreeBSD. +- Replaced all sstream/stringstream with BincStream, cleaning up the + code a bit. +- Made delimiter in toRegex configurable. + +* Wed Apr 02 2003 Andreas Aardal Hanssen +- 1.1.3-1 + +* Tue Apr 01 2003 Andreas Aardal Hanssen +- Created Status class, and added getStatus and getStatusID to Mailbox. +- Moved much of StatusOperator process code into Depot. +- In bincimap-up, IP from environment is now inserted into Session. +- When unable to translate mailbox name to filename, Depot now gives + more comprehensible error message. +- Removed some unused com/logger variables +- Improved feedback from parser for some operators. +- Added --with-ssl and --without-ssl to configure. + +* Mon Mar 31 2003 Andreas Aardal Hanssen +- Added includes, fixing compile problems with FreeBSD. +- Removed log info about operator exception + +* Sun Mar 30 2003 Andreas Aardal Hanssen +- Fixed so STARTTLS starts an SSL negotiation. This broke in 1.1.2-1. + +* Sat Mar 29 2003 Andreas Aardal Hanssen +- Added jail-path, jail-user and jail-group to argument list. +- Updated man pages. +- Added timeout to select in authenticate.cc +- 1.1.2-1 + +* Fri Mar 28 2003 Andreas Aardal Hanssen +- Fixed segfault when calling bincimapd directly with invalid contents + of BINCIMAP_LOGIN in environment. +- Added default umask 0777 if none is provided. + +* Thu Mar 27 2003 Andreas Aardal Hanssen +- Moved create, delete and rename logics into Depot and out of Operators. + I'd like to enforce that only the Depot knows anything about the + map between file names and mailbox names. +- Fixed a bug in rename that disallowed renaming a/b/c/d to e/b/c/d + unless a, a/b, a/b/c and a/b/c/d all existed. +- Added bumpUidValidity method to Mailbox and Maildir +- Moved compareNodes in search operator into SearchNodes class. +- Added chroot, setgroups, setuid and setgid to bincimap-up stub. Added + configuration options to conf file in new "Security" section. +- Created IOFactory singleton, which now handles IO objects correctly. +- Seperated regular IO from SSL enabled IO. bincimapd does no longer link + against the ssl libraries and has no ssl code in it. +- Stripped down libraries in bincimap-up, reducing code size. +- Added NoopPendingOperator and removed pendingUpdates from regular NOOP + operator. bincimap-up uses only the stripped NOOPoperator. This allows + us to remove the pendingupdates code from bincimap-up. + +* Wed Mar 26 2003 Andreas Aardal Hanssen +- Fixed a bug in the mime parser where the byte offset was used to seek + using fgetcCRLF. Replaced that with fseek and now fetching headers/mime + of sub-mimeparts is working fine again. +- Fixed similar problem in mime-printbody, which now seeks using fseek. +- bincimap-up now pipes log data from child. +- Removed support from anything other than stderr logging from + authenticated daemon. +- Cleaned up the logics in FETCH when fetching different types of BODY + data. Now supports fetch att MIME correctly. +- 1.1.1-1 + +* Tue Mar 25 2003 Andreas Aardal Hanssen +- Added iterator to Depot class for stepping through depot entries +- Added hierarchical rename +- Fixed problem with some clients not allowing users to subscribe to + subfolders +- APPEND now uses Depot to acquire file names +- LIST and LSUB removes leading and trailing hierarchy delimiters +- Added examine operator (missing in 1.1.0) +- Set default "verify peer" to "no". + +* Mon Mar 24 2003 Andreas Aardal Hanssen +- Updated README +- Added technical documentation draft +- Added IMAPdir spec draft +- Removed usage.cc. Replaced with a pointer to man pages. +- Added bincimap-up binary +- authenticate.{cc,h} now sets up a tunnel between the client and the + authenticated daemon. SSL is managed by the unauthenticated stub. +- Started enforcing conventions for formatting the source files. Document + is under progress. +- bincimapd, now the authenticated daemon, can no longer do any SSL + related activity. +- bincimapd now reads BINCIMAP_LOGIN from the environment to determine + what the response to the stub's authenticate or login commands should be. +- To meet with checkpassword's conventions, bincimapd now exits with code + 111 on internal errors. +- Removed quite a lot of debugging info +- const-ified more functions. +- Added IMAPdir and MaildirPP classes +- Removed greeting.h +- showGreeting is now self declared. +- Removed most of the hungarian notation in the main classes +- Added Session instance where needed +- LIST and LSUB now use Depot to identify mailbox types +- Added access to argc and argv to Session +- Added pending() method to IO, to check for pending data. Always 0 if not + MODE_SSL. +- readChar can now return -2, meaning that in SSL mode the read call must + be repeated. +- DELETE in maildir.cc can not delete mailbox (which was actually allowed + before) +- Maildir now does not care about IMAP mailbox names, only file names. +- Removed "singular" concept from args parser. +- Updated xinetd and supervise run files to match new invocation method. +- Added goals doc +- LIST no longer sets \Marked +- 1.1.0-1 + +* Thu Mar 20 2003 Andreas Aardal Hanssen +- Removed bincimap-auth-checkpassword and bincimap-uidpwd completely + from the project +- Added privilege seperation. Unauthenticated daemon is bincimap-up. + Authenticated daemon is bincimapd. Only checkpassword compatible + authenticators are supported. +- Enabled local config settings. Users can now choose path, default + Mailbox type and depot type (IMAPdir/Maildir++). Default is Maildir++. +- Added full support for IMAPdir and Maildir++ via pluggable Depot + objects in DepotFactory. +- Made DepotFactory and BrokerFactory singletons. +- Made delimiter character a variable in depot. +- Cleaned up some code. bincimap-up.cc and bincimapd.cc still look very + bad. +- Added technical documentation draft to docs +- Added updated FAQ to docs +- Added IMAPdir spec draft to docs + +* Tue Mar 18 2003 Eivind Kvedalen +- Fixed error messages in the various implementations of + the Operator::parse method. + +* Tue Mar 18 2003 Andreas Aardal Hanssen +- Improved Storage::save algorithm +- Improved Storage::load algorithm +- Removed excessive logging +- Changed pendingUpdates to optionally rescan for changes +- Added speedup to SEARCH +- Added minor speedup to fgetcCRLF functions +- Storage now saves in PRETTIFY mode instead of MINIMIZE. Adds speed. + The MINIMIZE algorithm is undergoing maintenance. +- Moved subscribed, cmdargs, globalconfig, localconfig, userid, ip + and state into new singlton called Session. +- Added session.cc and session.h +- Moved RETURN enum into Operator +- Moved STATE enum into Session +- Removed bincimapd-config.{cc,h}, bincimapd.h, bincimapd-commands.{cc,h} +- Added initconfig.cc with most of bincimapd-config.cc's old content. + +* Mon Mar 17 2003 Eivind Kvedalen +- Clean-up in depot.h +- getOperator added to Broker +- parse() method added to Operator classes +- parse() method implemented in operators. Code moved from + recursivedescent.cc +- BincImapParserData added to BincImapParserCommand class + +* Mon Mar 17 2003 Andreas Aardal Hanssen +- Fixed a silly bug in SEARCH UID which caused a segfault. +- authenticate() now takes a Depot as input. +- Initial mailbox create (INBOX) is done with default mailbox from + Depot +- pendingupdates() now takes a Mailbox as input +- Removed global mailbox pointer from bincimapd-config.{cc,h} +- Changed error when expecting set instead of string in recursivedescent.cc +- Weaved in Depot support in all operators +- Removed references to global mailbox pointer. +- Added rollback to UID operator parsers. + +* Sun Mar 16 2003 Andreas Aardal Hanssen +- Constified loads of variables in Operators +- Added BincException. All Exceptions now inherit BincException. +- Added Depot. Broker now processes the Depot with the Operator +- Made Operators' process method const. + +* Sat Mar 15 2003 Andreas Aardal Hanssen +- First stage of new design incorporated. Brokers and Operators are + introduced. +- Converted all functions to operators that work properly. +- Added support for IMAPdir schema. +- Maildir::imapCreate no longer adds the "maildirfolder" file to the + depository. + +* Fri Mar 14 2003 Andreas Aardal Hanssen +- Removed all other namespaces than Binc. We are moving to a more + object oriented approach. + +* Thu Mar 13 2003 Andreas Aardal Hanssen +- Renamed MessageDepot to Mailbox + +* Tue Mar 11 2003 Eivind Kvedalen +- Plain authentication bug fixed +- New iterator has been added to MessageDepot class +- Caching of previous messages moved to MessageDepot class. + +* Tue Mar 11 2003 Andreas Aardal Hanssen +- Auth method no longer uses environment. Uses netstrings. +- Support for gnugetopt (for BSD) - untested. Removed support for regular + getopt. getopt_long is now required. +- Updated FAQ +- Improvements in "auto create inbox". +- 1.0.25-2 + +* Fri Mar 07 2003 Andreas Aardal Hanssen +- Added function toCanonMaildir to util +- Fixed a bug in mime-parseheader.cc that didn't set the header length. +- Fixed a bug in imapparser.cc that prevented "FETCH *" requests. +- Moved imap close, select, delete, create, expunge, functionality to + maildir class +- Some cleanups in message depot +- Several functions now use toCanonMailbox +- Cleaned up bincimapd-select.cc +- SEARCH now does not parse header if whole message has already been parsed. +- Better error reporting in most imap functions +- Big speedup in LIST by eliminating unnecessary stats +- Fixed a problem with parsing content type header +- FETCH now only parses header if only header is fetched. (bugfix) +- In authenticate(), depot object is created and lives throughout the + life of the imap session. + +* Tue Mar 04 2003 Andreas Aardal Hanssen +- Removed inlining from recursivedescent.cc - if the user wants these + inlined, he can compile the source with -O3. +- Cleaned up all Makefile.am files. Removed tab indentation and threw + all files on one line. This hopefully removes automake's funny "seperator + missing" complaints. +- Fixed a bug that prevented a user from fetching only '*'. +- Removed stray blank (0x20) character that was printed as part of the + bodystructure response. + +* Mon Mar 03 2003 Andreas Aardal Hanssen +- Added exception to COPYING for linking against OpenSSL +- Added COPYING.OpenSSL +- Added GPL note to README +- Some cleanup in getopt code +- Added Caskey Dickson's setuid/setgid patch +- Added Caskey's copy patch +- Cleaned up the IO code +- Removed repr() and syntaxexception code from imapparser +- Moved DELETE into Maildir code +- Cleaned up create and delete code +- Added create and delete properly to MessageDepot +- Added Syntax exception code to exceptions.cc +- Added stderr as a logtype option. It's equivalent to multilog. +- Moved case converted mailbox name out as seperate function + +* Sat Feb 22 2003 Andreas Aardal Hanssen +- 1.0.24-1 +- Added GPL notices to all files +- Gathered all exceptions into one global exceptions file +- Storage class creates shorter aliases than before +- Removed lex/yacc code from argument parser - replaced with getopt +- Fixed Maildir++ complaince in maildir-create.cc +- Fixed message size cacheing +- IO class is no longer a subclass of ostream +- bincimap-uidpwd uses getcwd and not get_current_working_dir +- Added --disable-starttls functionality, and added it to config, usage + and man pages. +- Cleaned up man pages more - added copyright notice +- Added FAQ to docs +- Added contrib area, all contribs are now bundled. +- Some bincimap.conf settings have changed. Defaul for allow plain auth + is "no". +- Minor updates to README +- Moved usage function to seperate file, out of bincimapd.cc +- Moved some configuration details into bincimapd-config.cc +- Now alternatively reads environment variable set in configuration +- All conf file settings can be properly overrun with command line options, + except authenticators. +- In authenticate.cc, proper handling of nonexistant root Maildir +- Append sleeps for a second before returning to ensure IMAP integrity + rules with APPEND. +- Removed comments about Outlook ;) +- CAPABILITY does not advertise STARTTLS if --disable-starttls is passed +- COPY moves chunks of 8k at a time instead of only one byte +- FETCH only full-parses a message at an RFC822.SIZE request if the + size is not already cached. +- LOGOUT no longer cares what's happened to the subscription list +- RENAME says that renaming inbox is not supported, and it properly + explains that you can't rename a folder _to_ INBOX. +- SEARCH parses messages if LARGER or SMALLER is queried for, and if the + size is not already cached. +- STARTTLS will not run if --disable-starttls is passed +- Restructured the RPM file. + +* Sun Feb 16 2003 Andreas Aardal Hanssen +- 1.0.23-1 +- Fixes to the man pages +- Running bincimapd with --version shows version +- Running bincimapd with --help shows complete command line option list +- All conf settings are also command line settings +- Removed option to set CA search path - use the CA file instead +- Fixed problem with LSUB requiring user to quote wildcards +- Auth timeout must be larger than 30 +- 1.0.23-2 +- Fixed a problem with CREATE which prevented users from creating + new folders. The new/ and tmp/ folders could also be removed by + mistake in this release. + +* Sat Feb 15 2003 Andreas Aardal Hanssen +- It's no longer allowed to create folders called INBOXsomething, without + the dot. +- Added buffers to IO class to allow logging SSL errors. +- updateFlags in Maildir:: no longer tries to update flags where no updates + have been made. +- All auth modules are now pure C++ +- APPEND, COPY, CREATE, DELETE, RENAME, STATUS checks for valid + Maildir through toMaildir function +- APPEND now fsyncs correct directory +- Fixed the problem with server rejecting "syslog" as logtype in conf file. +- Fixed putenv support in authenticate +- Fixed log output in authenticate +- conf files now use only --prefix +- package is now prefixed +- Split up maildir implementation and mime parser into smaller files +- Added Ivan F. Martinez' teapop authenticator to contrib/authenticators + +* Tue Feb 11 2003 Andreas Aardal Hanssen +- Removed all the C debug code (for SSL) from the IO class +- Made SSL cipher list configurable +- General clean up in IO class, better error messages. +- SSL peer verification is now optional +- Make install problems are now solved, and conf files are generated + correctly. Only one prefix needed to build the package. +- Man pages! ^_^ + +* Mon Feb 10 2003 Andreas Aardal Hanssen +- Fixed problem with input parser "lock-up". The error was that the + output wasn't flushed. +- IO class doesn't run openlog twice if both command line args and + conf file say to use syslog. + +* Sun Feb 09 2003 Andreas Aardal Hanssen +- 1.0.22-1 +- Fixed myisprint, allowing Storage class to save correctly. +- Inserted prefix in spec file, as a first attempt to make the + package relocatable. +- Replaced setenv with putenv, allowing compile on Solaris +- LIST now shows nonexisting inferior mailboxes, with the NoSelect + flag set. +- COPY now uses time(NULL) instead of passed timestamp when storing + messages in destination folder. +- No longer creates .bincimap if none exists. + +* Sat Feb 08 2003 Andreas Aardal Hanssen +- 1.0.21-1 +- Minor changes to README +- Added Log section with log type in config +- Added "auto create inbox" to config - valid are "yes" or not "yes" +- Added "auto subscribe mailboxes" for when no subscribed file is found +- Added "umask" to Mailbox section - decides umask for whole session +- Transfer timeout is now used correctly +- Renamed regex files to 'regmatch' to avoid collision with posix regex +- PCRE was removed - in goes posix regex library +- Fixed toMaildir function to return relate rather than absolute path +- Removed PCRE dependencies everywhere +- Added fsync patch for file systems that don't support it - thanks + to Caskey Dickson for spotting this. +- Removed debug logging from Storage implementation. +- Moved mailbox creating into messagedepot and maildir classes. +- Added mode, owner and group settings when creating mailboxes. +- Added syslog support to IO class - somewhat messy, prefixed +- Changed to everywhere +- Removed artifact from checkpassword auth stub, allowing use of non-passwd + based authenticators +- Removed debug logging from pendingUpdates +- All config settings are now read from global config file and used. +- Added command line option --logtype to override log type settings +- Subscription changes are now immediately saved to disk +- STATUS now reports all recent for mailboxes with no cache file +- LOGIN now correctly checks if plain text auth is allowed +- LIST now search relative to cwd, instead of from / +- Un-inlined some functions in FETCH do reduce memory exhaustion during + compile. The inlines are unnecessary. +- CREATE now uses messagedepot::create +- CAPABILITY now reports correctly whether or not plain text auth is + allowed. +- AUTHENTICATE now interprets config correctly wrt plain text auth +- authenticate function now always chdir's into Maildir. +- non chroot should work properly now +- All elements in "auto subscribe mailboxes" are inserted into the + subscribed list if there is no subscribed list. The list is then + saved to disk. +- Subscribed list is saved to current directory instead of / +- Checks for libdl, provides smooth compile under FreeBSD +- Added logtype to service and xinetd files +- xinetd files are now equal for ssl and non-ssl, except for the --ssl + option. +- cleaned up configure.in a bit. + +* Tue Feb 04 2003 Andreas Aardal Hanssen +- 1.0.19-1 +- When a new cache file is created, all messages are not marked as recent + as before +- Fixed big bug with expunged messages. +- Bumped cache & uidvalidity file version to avoid problems with messed + up cache files from expunge bug. +- SSL settings from conf file are now used in IO class +- 1.0.20-1 +- Fixed bug: subscription folders are now read as the user authenticates +- Fixed potential buffer overflow with improper use of sprintf +- Fixed service file "xinetd-bincimaps" with relocatable files +- Added README which describes installation procedure with tarball. + +* Sun Feb 02 2003 Andreas Aardal Hanssen +- 1.0.18-1 +- Added config.h support +- Removed -j 2 from spec file +- Removed Config class, replaced all uses with Storage +- Compatibility: prefixed all namespace std-includes with ::. +- Added more GPL headers to source +- Added BEFORE, BODY, KEYWORD, ON, SINCE, UNKEYWORD, SENTBEFORE, + SENTON, SENTSINCE to SEARCH +- More compatibility for lacking sstream support (untested) +- Now allows STORE operations with empty flag list () +- Removed "fromhex" binary from distro +- Fixed autoconf/automake problems with defining correct variables + on all known platforms. +- Removed traces of per-ip-subscription +- Almost all configurable settings can now be set through config file +- time and flags are ignored in APPEND, because the former implementation + and any implementation doing otherwise stands in risk of losing mails + in the depository. +- lex/yacc files are now not processed unless by explicitly performing + a "make grammar" in the args/ and storage/ directories. +- Fixed bug in STATUS which reported negative number of RECENT messages +- COPY no longer stores time stamp or flags +- Now correctly shows LOGINDISABLED in non-SSL mode if plain auth is + not supported. +- Support for AUTH=PLAIN - required by the protocol. +- supervise and xinetd files are now generated and follow configure + prefices, except the log files. +- Fixed bug with expunge and flag updates not getting reported properly + +* Sat Jan 25 2003 Andreas Aardal Hanssen +- Added special case for not cacheing status folders with + messages in new/ less than one second old + +* Tue Jan 21 2003 Andreas Aardal Hanssen +- Added support for RENAME. Does not yet support hierarchical rename. +- Fixed a race condition with not detecting folder changes. +- Added compatibility settings in build process (sstream->strstream for + old compilers, untested) + +* Mon Jan 20 2003 Andreas Aardal Hanssen +- Added workaround for Outlook's broken "Inbox" prefix. If the uppercased + mailbox name is "INBOX", then it is set to "INBOX". If the uppercased + prefix of the mailbox is "INBOX.", then the prefix is replaced with + "INBOX.". This allows Outlook's "Inbox.subfolder" behavior. + +* Sun Jan 19 2003 Andreas Aardal Hanssen +- Fixed bug with lock file when selecting invalid maildir +- Now only moves files from new/ to cur/ if time_t part shows file is + older than one second. +- Never uses rename - always uses link() to prevent files from getting + lost. +- Fixed fetch problem because of case sensitive matching on mime headers +- Added --enable-static option to configure +- STATUS now returns correct number of RECENT messages. +- Added EXAMINE +- Speed up in scan() first checks for folder chance using stat +- Only 5 log files are kept, and they are rotated at 1MB. +- Fixed problem with gcc2 interpreting setw and setfill different from + gcc3, causing Binc IMAP compiled with gcc2 to sort messages wrongly. + +* Mon Jan 13 2003 Andreas Aardal Hanssen +- AUTHENTICATE no longer requires first argument to be upper case +- Removed some debug info from the log files +- Fixed problem with getting kicked off when the uidvalidity bounces + at first select. diff --git a/doc/OLD/ChangeLog.1.3 b/doc/OLD/ChangeLog.1.3 new file mode 100644 index 0000000..cca9e3c --- /dev/null +++ b/doc/OLD/ChangeLog.1.3 @@ -0,0 +1,76 @@ +* Since 1.3.3: + - Added quotes to the configure.in and m4 scripts to + prevent a configure error on some platforms. + - Updated the copyright headers. + - Fixed several bugs in the handling of command line options. + - Updated the man pages. + - Refactored Maildir::updateFlags() + - Fixed the use of timeouts in the SSL device; an uninitialized + variable was causing select() to sleep too long. + - bincimap-up now has a fixed timeout of 60 seconds, and the main + server times out after 30 minutes. + - Fixed timeouts in IO devices. + - Now renames files with ":2," when moving them from new/ to cur/. + - Added heuristics to help detect errors when invoking checkpassword. + - Fixed the "make cert" and "make testcert" scripts. + - Improved the logging mechanisms. + - The server reports an error correctly when started in SSL mode, + without any compiled-in SSL support. + - Fixed a bug in the BODY response. + - Fixed a bug in the INTERNALDATE response. + - LIST and LSUB now allow the reference to end with the delimiter + character. + - The server now handles strftime returning 0 (for example, if the + passed buffer was too short). + - Merged several patches from Jerry Lundström. fsync() fixes for + NFS, and a patch that allows 1.2 subscribe lists to work with 1.3, + - Integrated Jerry Lundström's patch to prevent resetting + of the mailbox path when a mailbox is closed. + - Integrated Jerry Lundström's patch to allow changing + of the mailbox delimiter. + - When updating flags, the list of files is read first, then + iterated when renaming files. This removes a race condition + on XFS, where renaming files changed the order in which + they are scanned. + - Fixed a bug in the response to BODY fetches, where the + list of headers would be returned also when no headers + were in the fetch attribute. + - Fixed a bug where the server would not recover properly + after a client tried a command in the wrong state. + +* Since 1.3.2: + - The response code is now included in the OK response. + - Compile errors fixed. + - Replaced opendir()/dirfd() with open(). + - Fixed a lockup due to dangling symlinks. + - Fix a bug where FIELDS in a BODY fetch was empty. + - Added a missing space in RFC822.SIZE response. + - A memory leak and a bug caused by saving the subscribed + file to a full file system were fixed. + - Fixed the --logtype command line argument. + - Fixed LITERAL+ support in APPEND. + - Fixed a bug in the LSUB operator where a map iterator + was used on a multimap. + - Binc 1.3 now compiles with --without-ssl. + - Integrated several bugfixes from 1.2. + +* Since 1.3.1: + - Moved chroot settings out of the conf files and into + configure. + - Fixed wildcards in LIST and LSUB. + - Fixed the line count for multiparts in the MIME parser. + - Syncs the directory when saving the cache file. + - Fixed LITERAL+ support in APPEND. + - Fixed IODevice:readStr() and how it's used in APPEND. + - Assume IMAPdir as the default depot instead of Maildir++. + - Documentation updates: README, README.SSL and README.DEPOT. + - Added native protocol dumping support by exporting the + PROTOCOLDUMP variable. + - Compile fixes. + +* Since 1.3.0: + - Fixed lockups due to major bugs in the IODevice classes. + - Fixed bugs in the refactored MIME parser that rendered + it useless. + - Tested with pine, Mozilla mail and Evolution. + diff --git a/doc/OLD/HTML/bincimap-faq.html b/doc/OLD/HTML/bincimap-faq.html new file mode 100644 index 0000000..61e7129 --- /dev/null +++ b/doc/OLD/HTML/bincimap-faq.html @@ -0,0 +1,926 @@ + + + + + + + + Binc IMAP - FAQ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ + + + + +
Binc IMAP logoBinc IMAP - FAQ
+
+ GNU General Public License
+ Andreas Aardal Hanssen <andreas@hanssen.name> +
+ +
+ + + +
+ + +Q: Why did you start writing Binc IMAP? + + +
+

First of all, I work a lot with qmail servers, and there haven't +really been many Maildir capable IMAP4rev1 servers around. I used +Courier-IMAP for years, but after loads of abuse from the Courier +community and its author, I found that earth had room for one more +IMAP4rev1 server.

+ +

Enjoying the simplicity of qmail-pop3d, I decided to create an IMAP +server that was equally simple to install and use, and that could work +side-by-side with qmail-pop3d to provide IMAP service to qmail +users.

+ +

I had already written an IMAP server for proxying POP3-accounts at +work, and I had so many good experiences from that project that I +beleived that I could really write a great IMAP server.

+ +

Well, it's up to you to determine how great it is, but I swear it has +it's advantages over the existing Maildir capable IMAP servers out +there.

+
+ +
+ + +Q: What is "Binc"? + + +
+ +

This should be quite obvious: Binc Is Not Courier-IMAP :-).

+ +
+ +
+ + +Q: What are the advantages of Binc IMAP? + + +
+ +

Binc IMAP is a light weight alternative to existing IMAP +servers. It's easier to install, easier to maintain, and it's easy to +integrate into existing (perhaps legacy) authentication +environments.

+ +

Binc IMAP is small and simple. The total number of lines of source +code is much smaller in Binc than in the other servers. Version +1.0.24-1 of Binc IMAP has about 18000 lines of code. There are only +17000 lines of hand written code, including comments. Few lines in +itself does not imply that the code is better, but it's +certainly much easier to maintain.

+ +

It is also written in C++, using standard C++ data components. If +this server crashes, it'll most likely abort, and not suffer a +segmentation fault, which is the most common reason for exploits.

+ +

Binc IMAP uses an object oriented design all the way. A modular, +simple design with few lines of code means that it's easier to uncover +bugs, and it's easier to fix them without disturbing the rest of the +source code.

+ +
+ +
+ + +Q: So Binc IMAP doesn't focus on security? + + +
    +
  • Security comes naturally with a service with a clean, correct + design and no bugs
  • + +
  • Security can not be claimed. To prove that a server is not + secure, one must simply find a way to exploit it. Claiming + that a server is secure is like claiming that nobody can find a way + to break it.
  • + +
  • The only true argument is to prove that it's secure. And + that's almost impossible.
  • + +
  • Binc IMAP focuses on creating a service with a clean, correct + design with no bugs. Time and experience will tell wether it's a + secure server or not.
  • +
+ +
+ + +Q: Is Binc IMAP fast? + + +

Binc IMAP focuses its optimizations on the type of activity that +dominates the lifetime of an IMAP connection, which is idle time.

+ +
    +
  • Pending updates: When a client issues NOOP, CHECK or similar, + the server must give the latest changes to the depository. If no + changes have been made, this operation will with Binc IMAP + consist of only two stat-calls, which is extremely fast.
  • + +
  • FETCH: Multiple subsequent operations on the same message + will never cause the message to be parsed more than twice - once + for header-only operations and once for full message info.
  • + +
  • STATUS: The status command is typically used to check for + new messages in all subscribed mailboxes. If no changes have been + made to a mailbox, the status command in Binc IMAP consists of + only two stat calls, which is extremely fast.
  • + +
  • SEARCH: The search keys are weighted, and the search query is + sorted with lightest-search first. This prevents unnecessary + processing of slow search keys if the light search keys do not + match the message set.
  • +
+ +

Some activity is not optimal in Binc IMAP, and searching for random +text in particular is no faster than a sequential search using +standard UNIX tools such as grep. Searching for text in a large +mailbox is quite rare, however, compared to the random activity of +close-to-idle clients.

+ +
+ + +Q: Is Binc IMAP a stable, secure server? + + +
+

It's hard to write bug free programs, especially with a complex +protocol like IMAP4rev1. Any attempts to verify code usually comes +down to the limitations in the author's experience with +verification. Or as +Donald Knuth +said (my favorite quote):

+ +

"Beware of bugs in the above code; I have only proved it correct, + not tried it."

+ +

Knuth teaches that it can be easy to prove that your code is +correct, but who's going to prove that your proof is correct? +Proving your proof might turn out to be close to impossle. What you +can have, is conventions and principles that prevent bugs from showing +up in your programs. Here are mine:

+ +
    +
  • Don't reinvent the wheel. Unless absolutely necessary, write + code that doesn't exist already.
  • +
  • Spend your time on making it work as simple as possible, + then start making optimizations.
  • +
  • Don't let optimization obfuscate your source code.
  • +
  • Find a better algorithm, or if you can't get the speed that you + want, change to a more efficient programming language.
  • +
  • Handle all error conditions.
  • +
  • Avoid buffers altogether.
  • +
  • Don't hand write parsers unless strictly necessary - they are + hard to get right.
  • +
  • For G's sake, be compliant! If the standard has flaws, then + help fix the flaws - don't break the standard.
  • +
+ +

Now I don't pay $2.56^n where n equals the total number of +bugs discovered in Binc IMAP, but I will certainly give you +many pats on the back if I get the chance. :-)

+ +

I could go on and on, but the point is that I have tried my best to +perform all the expected tasks in the most logical and obvious way +possible, using all my C++ security experience to aid me. But at the +time of writing, the server is young, the community small, and we are +only in Beta. So time will have to tell how stable and secure we +are.

+ +
+ +
+ + +Q: Which configuration files are used by Binc IMAP? + + +
+
    +
  • /etc/opt/bincimap/supervise/imap/run
  • +
  • /etc/opt/bincimap/supervise/imaps/run
  • +
  • /etc/opt/bincimap/xinetd/imap
  • +
  • /etc/opt/bincimap/xinetd/imaps
  • +
+ +

These files are for administrators. You can set up Binc IMAP's +authentication method here.

+ +
    +
  • /etc/opt/bincimap/bincimap.conf
  • +
+ +

This first file is for setting global administrator settings, such +as paths to the host's SSL certificate, timeouts for idle clients and +so on. It need not be readable for anyone but root.

+ +
    +
  • $HOME/.bincimap
  • +
+ +

This file is for individual settings, such as what the exact path +is to this user's depository, which default Mailbox type to use and +which type of depository the user uses.

+ +
+ +
+ + +Q: How can I tell Binc IMAP where my mailboxes/folders are? + + +
+ +

The configuration file has a section called Mailbox. You can +set the path to your users' mail depository there, relative to +the users' home areas.

+ +

If your depository is not is users' homeareas, for instance if your +depository has a /var/mail/user/ structure, you can safely set +path to "." or "". Your authenticator must then +change to the full path of the depository, /var/mail/user/, +before invoking bincimapd.

+ +

For a Maildir++ depository under standard home areas, with +the mailbox path set to "Maildir" in bincimap.conf, your structure +would typically look something like this:

+ + + + + + + + + + + + +
File system + IMAP + Description +
+
+~/Maildir/
+~/Maildir/.Sent/
+      
+
+
+"INBOX"
+"INBOX/Sent"
+      
+
+
+The main mailbox, the INBOX.
+A user created mailbox.
+      
+
+ +

If you use IMAPdir (setting depot="IMAPdir" and for instance +path="IMAPdir"), the structure would be slightly different:

+ + + + + + + + + + + + +
File system + IMAP + Description +
+
+~/IMAPdir/INBOX -> ../Maildir
+~/IMAPdir/Sent/
+~/IMAPdir/Sent.2003/
+~/Maildir/
+      
+
+
+"INBOX"
+"Sent"
+"Sent/2003"
+<zip>
+      
+
+
+The main mailbox symlink, the INBOX.
+A user created mailbox.
+A sublevel user created mailbox.
+Invisible.
+      
+
+ +

With no seperate directory for the mail depository, your structure +would be like this with IMAPdir, and similar with Maildir++ (the +prefix folder is simply dropped, and INBOX itself is a Maildir, note +that the MTA must be instructed to deliver to INBOX and not +Maildir):

+ + + + + + + + + + + + +
File system + IMAP + Description +
+
+~/INBOX
+~/Sent/
+~/Sent.2003/
+      
+
+
+"INBOX"
+"Sent"
+"Sent/2003"
+      
+
+
+The main mailbox, the INBOX, a Maildir.
+A user created mailbox.
+A sublevel user created mailbox.
+      
+
+ +
+ +
+ + +Q: How can I get SSL to work? + + +
+ +

SSL in Binc IMAP is quite simple to set up. First you need a PEM +encoded certificate file. In some distributions, you can generate this +file by changing to /usr/share/ssl/certs and running "make". A script +will give you the option to build a PEM file.

+ +

When you have a PEM file, edit bincimap.conf in the SSL +section . You need to add an item called pem file and set it to +point to your PEM certificate. The path name must be absolute. For +example:

+ +
+  SSL {
+    pem file = "/usr/share/ssl/certs/mypemfile.pem",
+    ca file = "",
+    cipher list = "!ADH:RC4+RSA:HIGH:MEDIUM:LOW:EXP:+SSLv2:+EXP",
+    verify peer = "no"
+  }
+
+ +

The item ca file in bincimap.conf tells Binc IMAP +which file on your system contains a bundle of certificate +authorities.

+ +

Next comes the item called cipher list. It tells Binc IMAP +about which ciphers you want your server to support. This depends on +what version of OpenSSL you're running.

+ +

Last comes an option called verify peer. This tells Binc +IMAP wether to attempt to verify the client's identity.

+ +

Visit this link +at the Apache.org website to read more about SSL and TLS +principles.

+ +
+ +
+ + +Q: How do I find my folders in Binc IMAP? + + +
+ +

Binc IMAP can be configured to use two types of depositories: +Maildir++ and IMAPdir.

+ +

Using Maildir++, all folders in Binc IMAP must be subfolders of +INBOX. This is the default setting.

+ +

This means that if you want to create a folder called work, +you have to create INBOX.work or INBOX/work.

+ +

For some graphical IMAP clients like Outlook (look out!) or +Mozilla Mail, this means you need to right click on +INBOX and select "Create subfolder".

+ +

Using IMAPdir, folders can be created in any levels. See also this question.

+ +
+ +
+ + +Q: How does Binc IMAP authentication work? + + +
+

Binc IMAP is spawned by xinetd, tcpserver or any other TCP wrapper +running as root.

+ +

It immediately goes into pre-authentication mode, where it expects +the client to enter STARTTLS if the client is not already running an +SSL connection. When in TLS/SSL mode, it will accept clear text +authentication.

+ +

Binc IMAP uses the same authentication method as +qmail-pop3d, checkpassword. The pre-authentication stub invokes +the checkpassword compatible authenticator, which if the password is +correct in turn invokes the main Binc IMAP daemon.

+ +

The checkpassword documentation is +required reading for everyone running Binc IMAP.

+ +
+ +
+ + +Q: How do I fix this: "Unable to find required function getopt_long"? + + +
+ +

The getopt_long function is a GNU extension to the POSIX.2 getopt +function. It allows long arguments such as --enable-ssl.

+ +

Unfortunately, this function is not defined on all +platforms. Specifically, it is known to not exist on FreeBSD.

+ +

For FreeBSD users, install gnugetopt from ports. Otherwise, +post this problem with as much relevant info as you can provide, to +the mailing list.

+ +
+ +
+ + +Q: How do I fix this: "Unable to find the crypto library which is part of OpenSSL"? + + +
+ +

The crypto library is a part of OpenSSL. This +library is required for Binc IMAP to compile.

+ +

If you can not get Binc IMAP to compile with OpenSSL, there should +be a static RPM package available for download.

+ +
+ +
+ + +Q: How do I fix this: "Unable to find the ssl library which is part of OpenSSL"? + + +
+ +

The crypto library is a part of OpenSSL. This +library is required for Binc IMAP to compile.

+ +

If you can not get Binc IMAP to compile with OpenSSL, there should +be a static RPM package available for download.

+ +
+ +
+ + +Q: How do I install Binc IMAP? + + +
+ +

The easiest way to install Binc IMAP on your server is to +follow these instructions:

+ +
    +
  • Download the RPM from http://www.bincimap.andreas.hanssen.name/dl/RPMS
  • +
  • Install the RPM
  • +
  • Copy, edit and perhaps symlink the configuration files: +
      +
    • with daemontools: +
        +
      • ln -s /etc/opt/bincimap/supervise/imap /service/imap
      • +
      • ln -s /etc/opt/bincimap/supervise/imaps /service/imaps
      • +
      +
    • +
    • with xinetd: +
        +
      • ln -s /etc/opt/bincimap/xinetd/imap /etc/xinetd.d/imap
      • +
      • ln -s /etc/opt/bincimap/xinetd/imaps /etc/xinetd.d/imaps
      • +
      • service xinetd restart
      • +
      +
    • +
    +
  • +
  • Check that the service is up by connecting using a standard IMAP client
  • +
+ +

If you want to build Binc IMAP from source, there's a README +file that gives you the instructions step by step, inside the +tarball. You can also get some clues by inspecting the bundled +bincimap-spec file's install section.

+ +
+ +
+ + +Q: Why does Binc IMAP (RPM) install under /opt? + + +
+ +

The reason for this is that I have tried my best to follow the File System Hierarchy +Standard.

+ +

Binaries go under /opt/bincimap/bin

+ +

Host specific configuration goes under /etc/opt/bincimap

+ +

If you want your files elsewhere, there's always the option to build +the project from source. :-)

+ +
+ +
+ + + + + + + + +
+ + Valid HTML 4.01! + + Powered by djbdns! + Powered by Binc IMAP +
+ +
+
+


















+


















+ + + ++FLAGS \Flagged +* FETCH (FLAGS (\Seen \Flagged)) +8 OK STORE completed + + + +

+ +

If all these tests work fine, try connecting with an IMAP client +such as Mozilla, Outlook, Eudora, Netscape, Mutt or Pine.

+ + + +
+ + +Q: How do I find my folders in Binc IMAP? + + +
+ +

Binc IMAP can be configured to use two types of depositories: +Maildir++ and IMAPdir.

+ +

Using Maildir++, all folders in Binc IMAP must be subfolders of +INBOX. This is the default setting.

+ +

This means that if you want to create a folder called work, +you have to create INBOX.work or INBOX/work.

+ +

For some graphical IMAP clients like Outlook (look out!) or +Mozilla Mail, this means you need to right click on +INBOX and select "Create subfolder".

+ +

Using IMAPdir, folders can be created in any levels. See also this question.

+ +
+ +
+ + +Q: How does Binc IMAP authentication work? + + +
+

Binc IMAP is spawned by xinetd, tcpserver or any other TCP wrapper +running as root.

+ +

It immediately goes into pre-authentication mode, where it expects +the client to enter STARTTLS if the client is not already running an +SSL connection. When in TLS/SSL mode, it will accept clear text +authentication.

+ +

Binc IMAP uses the same authentication method as +qmail-pop3d, checkpassword. The pre-authentication stub invokes +the checkpassword compatible authenticator, which if the password is +correct in turn invokes the main Binc IMAP daemon.

+ +

The checkpassword documentation is +required reading for everyone running Binc IMAP.

+ +
+ +
+ + +Q: What does this mean: "Server broke for , /bin/checkpassword returned 111 (internal error)"? + + +
+ +

This log line is printed by bincimap-up, and reflects how +confusing checkpassword can be at times. Most often, though, the +problem is easy to solve.

+ +

Log in as the user who tried to log in. If you are using a virtual +mail account system like vpopmail, become the user that mail accounts +are stored as.

+ +

Try running the bincimapd daemon manually. If you can execute the +binary, there will be no output and the server will simply exit. Most +often, however, you will get an error such as "command not found" or +"permission denied". This should explain quite easily what the problem +is. Note that the bincimapd binary must have read and execute +permissions for all users (755).

+ +

If this didn't solve your problem, please post to the mailing list +a stack trace. To create a stacktrace, attach to tcpserver/xinetd +using "strace -s 1024 -f -p 2>&1 >dump". Log in to reproduce the +error. Then interrupt the strace program and email the "dump" file to +the mailing list. Note: It is likely that the dump file +contains passwords in plain text.

+ +
+ +
+ + +Q: How do I fix this: "Unable to find required function getopt_long"? + + +
+ +

Note: This only applies to versions 1.1.6 or older.

+ +

The getopt_long function is a GNU extension to the POSIX.2 getopt +function. It allows long arguments such as --enable-ssl.

+ +

Unfortunately, this function is not defined on all +platforms. Specifically, it is known to not exist on FreeBSD.

+ +

For FreeBSD users, install gnugetopt from ports. Otherwise, +post this problem with as much relevant info as you can provide, to +the mailing list.

+ +
+ +
+ + +Q: How do I fix this: "Unable to find the crypto library which is part of OpenSSL"? + + +
+ +

The crypto library is a part of OpenSSL. This +library is required for Binc IMAP to compile.

+ +

If you can not get Binc IMAP to compile with OpenSSL, there should +be a static RPM package available for download.

+ +
+ +
+ + +Q: How do I fix this: "Unable to find the ssl library which is part of OpenSSL"? + + +
+ +

The crypto library is a part of OpenSSL. This +library is required for Binc IMAP to compile.

+ +

If you can not get Binc IMAP to compile with OpenSSL, there should +be a static RPM package available for download.

+ +
+ +
+ + +Q: How do I install Binc IMAP? + + +
+ +

The easiest way to install Binc IMAP on your server is to +follow these instructions:

+ +
    +
  • Download the RPM from http://www.bincimap.andreas.hanssen.name/dl/RPMS
  • +
  • Install the RPM
  • +
  • Copy, edit and perhaps symlink the configuration files: +
      +
    • with daemontools: +
        +
      • ln -s /etc/opt/bincimap/supervise/imap /service/imap
      • +
      • ln -s /etc/opt/bincimap/supervise/imaps /service/imaps
      • +
      +
    • +
    • with xinetd: +
        +
      • ln -s /etc/opt/bincimap/xinetd/imap /etc/xinetd.d/imap
      • +
      • ln -s /etc/opt/bincimap/xinetd/imaps /etc/xinetd.d/imaps
      • +
      • service xinetd restart
      • +
      +
    • +
    +
  • +
  • Check that the service is up by connecting using a standard IMAP client
  • +
+ +

If you want to build Binc IMAP from source, there's a README +file that gives you the instructions step by step, inside the +tarball. You can also get some clues by inspecting the bundled +bincimap-spec file's install section.

+ +
+ +
+ + +Q: Why does Binc IMAP (RPM) install under /opt? + + +
+ +

The reason for this is that I have tried my best to follow the File System Hierarchy +Standard.

+ +

Binaries go under /opt/bincimap/bin

+ +

Host specific configuration goes under /etc/opt/bincimap

+ +

If you want your files elsewhere, there's always the option to build +the project from source. :-)

+ +
+ +
+ + + + + + + + +
+ + Valid HTML 4.01! + + Powered by djbdns! + Powered by Binc IMAP +
+ + + + + +


















+


















+ + + diff --git a/doc/OLD/HTML/bincimap-goals.html b/doc/OLD/HTML/bincimap-goals.html new file mode 100644 index 0000000..fd387e8 --- /dev/null +++ b/doc/OLD/HTML/bincimap-goals.html @@ -0,0 +1,160 @@ + + + + + + + + Binc IMAP - Goals + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ + + + + +
Binc IMAP logoBinc IMAP - Goals
+
+ GNU General Public License
+ Andreas Aardal Hanssen <andreas@hanssen.name> +
+ +
+ +The Binc IMAP project is more than programming. This is a list of the main goals and visions +that the author of Binc IMAP has put to ground. + +
    +
  • Helpful, hospitable community +
      +
    • Although it is expected that users of Binc IMAP do their homework before posting, the server author + and community of the Binc IMAP mailing list will be friendly and will approach everyone with respect. + The same is expected from those who post to the list.
    • +
    • There will be no RTFM on the project's mailing list. Flaming and personal insults on the project's mailing list will result in banning of the originator.
    • +
    • The community is encouraged to pay back to the project's contributors by sharing their own + contributions to Binc IMAP through the GPL license.
    • +
    +
  • +
  • Security through good design +
      +
    • A well designed server is less exposed to bugs than a poorly designed server.
    • +
    • The server will strive to use every kind of security enhancing feature, while + keeping the implementation details as simple as possible.
    • +
    • The source is open and downloadable. Potential bugs and/or nasty pieces of + code are easily uncovered when the whole community is able to study every line of + code in detail. Bugs should always be reported to the project's mailing list.
    • +
    +
  • +
  • No competition +
      +
    • Under no circumstance will this project be in market driven competition with other + IMAP servers.
    • +
    • Binc IMAP is first and foremost a quality driven project.
    • +
    • This project is meant to influence the community of authors of + network protocols and servers, and hopes to increase the general quality + of software that is used all over the globe and beyond.
    • +
    +
  • +
  • Modularity +
      +
    • Binary modularity +

      Pluggable extension support. Modules that are loaded into Binc can change a + great deal of Binc's behavior. Adding your own extension or altering Binc + IMAP's behavior should be as easy as it can get, and it should not require a + recompile of the Binc IMAP core.

      +

      Pluggable authentication support. By supporting checkpassword + compatible authentication modules, Binc IMAP clients can authenticate against great + number of authorities.

      +
    • +
    • Source modularity +

      With a modular and simple yet advanced object oriented design, it should be + easy to quickly understand what every method and function does. This will + increase third party developers' ability to write extensions and modifications fast.

      +

      Development of the design and implementation of Binc IMAP will focus on + extensibility, robustness and speed. +

    • + +
    +
  • +
  • Quality over quantity +
      +
    • Binc IMAP's releases are milestones. We strive for perfection.
    • +
    • Work on improving the existing design and extensibility will always go ahead of + adding new features.
    • +
    • Through extensive module support, the community is encouraged to contribute + to the adding and testing of new features. Core design and implementation will + always focus on quality.
    • +
    +
  • +
+ +
+Last updated: 2003-03-24 + + +
+ + + + + + + + +
+ + Valid HTML 4.01! + + Powered by djbdns! + Powered by Binc IMAP +
+ +
+


















+


















+ + + +"> + + + + + + + +


















+


















+ + + diff --git a/doc/OLD/HTML/bincimap-imapdir.html b/doc/OLD/HTML/bincimap-imapdir.html new file mode 100644 index 0000000..2309a0d --- /dev/null +++ b/doc/OLD/HTML/bincimap-imapdir.html @@ -0,0 +1,257 @@ + + + + + + + + Binc IMAP - IMAPdir + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ + + + + +
Binc IMAP logoBinc IMAP - IMAPdir
+
+ GNU General Public License
+ Andreas Aardal Hanssen <andreas@hanssen.name> +
+ +
+ +
+ +

This document describes the generic mail folder structure +IMAPdir.

+ +

The goal of the work behind this specification is to provide the +community with an unambiguous representation of a mailbox hierarchy +where a mailbox name has a one-to-one match against a file system +representation. The hierarchy and naming style is inspired by the +IMAP4 protocol.

+ +

Rather than being a completely new mailbox format, this specification +sets conventions on how to represent a mailbox hierarchy on a file +system, using existing mailbox formats. IMAPdir is not bound to +any protocol.

+ +

IMAPdir works with any mailbox format where one mailbox can +be identified by a file, a directory or a symbolic link. One entry in +an IMAPdir folder is a candidate for a mailbox. If the +IMAPdir client can not identify a directory entry as a +selectable mailbox, then the client must either skip the entry or +mark it as invalid (in IMAP, marked as \NoSelect).

+ +
    +
  • There is no limitation to the type of file system or the number of +file systems represented inside an IMAPdir.
  • +
  • There are no reserved ordinary folder +names such as "Sent", "Draft" or "Trash".
  • +
  • Clients of the mailboxes inside an IMAPdir +folder must follow the respective format and protocol conventions +strictly.
  • +
+ +

The format of a mailbox representation in IMAPdir is a +sequence of one or more US-ASCII characters (32-126), encoded using +the following rules:

+ +
    +
  • A dot '.' character represents a soft hierarchy delimiter with two exceptions: +
      +
    • A leading dot represents the dot itself.
    • +
    • A dot '.' preceded by a backslash '\' represents the dot '.' itself.
    • +
    +
  • +
  • A backslash '\' preceded by a backslash '\' represents the backslash '\' itself. For all other cases than before a dot '.' or a backslash '\', a stray backslash '\' character is considered an error.
  • +
  • A backslash '\' as the first character of an entry is considered an error.
  • +
  • All other characters represent themselves.
  • +
+ +Note that the protocol used to fetch the mailbox using the +structuring IMAPdir convention may restrict the character set +allowed. The clients must in those cases translate the mailbox +names to a selectable format. + +

As with Maildir++, +submailboxes can not be represented in a recursive fashion in the file +system. The mailbox' representation name will contain the soft +hierarchy delimiter character dot '.', and all mailboxes must reside +in the same root level directory.

+ +

The following example shows the typical content of an +IMAPdir stored under the directory mail/. The file +system column displays the contents as viewed by the UNIX command +'ls -al -F'.

+ + + + + + + + + + + + +
File system + IMAP + Description +
+
+mail/INBOX -> /var/mail/paul
+mail/INBOX.old/ -> ../Maildir/
+mail/INBOX.outbox/
+mail/work
+mail/3rd\. of July
+mail/Sent.2003.Jan/
+mail/Sent.2003.Feb/
+mail/Sent.2003.Mar/
+mail/.foo
+      
+
+
+"INBOX"
+"INBOX/old"
+"INBOX/outbox"
+"work"
+"3rd. of July"
+"Sent/2003/Jan"
+"Sent/2003/Feb"
+"Sent/2003/Mar"
+".foo"
+      
+
+
+Symbolic link to mbox
+Symbolic link to Maildir
+Maildir
+mbox
+mbox
+Maildir
+Maildir
+Maildir
+mbox
+      
+
+ +

In other multi level mailbox formats, INBOX is treated as a +special case.

+ +
+

Maildir++

+ +
    +
  • Maildir++ + defines the mail directory itself as + INBOX. Any subdirectories inside starting with a single dot + '.', and containing the file maildirfolder are interpreted as + a Maildir++ + submailbox. + +
  • A Maildir is by + Dan J. Bernstein's definition identified by a directory that + contains the subdirectories cur, + new and tmp and nothing else.

  • + +
  • The Maildir++ + definition follows naturally from Maildir++ + being an extension to Dan J. Bernstein's Maildir + format. However, although the directory ~/Maildir/ itself is a + standard representation of INBOX for Maildir clients, it is + not standard for other mailbox formats. With Maildir++, + your mailboxes and INBOX in particular must be a Maildir. +
+ +

mbox

+ +
    +
  • When using the mbox storage format, the user's INBOX is typically + stored at /var/spool/mail/<username>.
  • + +
  • Using this format, the mail depository client must both have the + path to the user's INBOX and the path to the user's local + mailbox depository, typically mail/.
  • +
+ +
+ +

Note that although IMAPdir has no restrictions with regards +to mailbox names, the protocol that uses IMAPdir might. For +example, IMAP servers will require the mailbox INBOX to be +present.

+ +
+ +

Last updated on 2003-03-20.

+ +

Please direct comments to IMAPdir or this document to the +Binc IMAP mailing list. Remember to search the archives +first.

+ +
+ + + + + + + + +
+ + Valid HTML 4.01! + + Powered by djbdns! + Powered by Binc IMAP +
+ +
+
+


















+


















+ + + diff --git a/doc/OLD/HTML/bincimap-tech.html b/doc/OLD/HTML/bincimap-tech.html new file mode 100644 index 0000000..e5fce32 --- /dev/null +++ b/doc/OLD/HTML/bincimap-tech.html @@ -0,0 +1,503 @@ + + + + + + + + Binc IMAP - Technical Documentation + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ + + + + +
Binc IMAP logoBinc IMAP - Technical Documentation
+
+ GNU General Public License
+ Andreas Aardal Hanssen <andreas@hanssen.name> +
+ +
+ +

Binc in my home area, IMAPdir and cousins

+ +
+ +

Binc IMAP uses either Maildir++ +or a structure called IMAPdir to +store its set of mailboxes. IMAPdir is more or less similar to Maildir++, +but it provides more flexibility with regards to mailbox names and +hierarchy structure.

+ +

In a sense, IMAPdir takes all +the goods from Maildir and adds root +level mailboxes, submailboxes both of regular root level mailboxes and +of the special mailbox INBOX, mail in mailboxes of any level, and with +no restrictions.

+ +

In the root of the IMAPdir +structure, Binc IMAP stores the list of a user's subscribed folders in +a file called +bincimap-subscribed. This file should only be edited manually +if you are confident with Binc::Storage. Normally the +administrator and the IMAP user will leave this to Binc IMAP.

+ +

Binc IMAP's Maildir backend +(default) will temporarily create a lock file called +bincimap-scan-lock inside a Maildir when it is +scanning for mailbox changes and delegating unique message +identifiers. This is to ensure that UIDs are delegated exactly once to +every message that has been detected by any one Binc IMAP server +instance.

+ +

Inside each Maildir, Binc IMAP +stores two files that allow multiple instances of the server to +communicate the state and changes of the mailbox: +bincimap-uidvalidity and +bincimap-cache. These files are safe to delete, although that +will trigger UIDVALIDITY to bounce and clients may have to +resynchronize their local state.

+ +
+ +

Object Oriented Design: Brokers, Depots, Operators.

+ +
+ + + + + + +
+

Binc IMAP's design is simple and modular. This + makes it easy to maintain and extend.

+ +

Although the IMAP protocol is relatively complex, you will + find that Binc IMAP's solution is surprisingly easy to + grasp.

+ +

At the heart of Binc IMAP's implementation lies the basic + functionality for Object Oriented Design provided by the ISO C++ + standard and general knowledge in the area of standard Design + Patterns.

+ +

The main components are:

+ + +
+ Binc IMAP, Object Oriented Design +
+ +
+Broker + +

One Broker holds a set of Operators. For each + state Binc IMAP is in, the BrokerFactory delegates exactly one Broker to hold the relevant Operator objects.

+ +

Typically, an Operator can be assigned to + more than one Broker. For example, the Operator that serves the IMAP command "NOOP" (a + command that is available in all three IMAP states), + NoopOperator, is available in all Broker objects.

+ +

The Broker is responsible for first passing + the Depot and the IO + singleton to the appropriate Operator, + generating a Command object.

+ +

The Broker is also responsible for passing + the resulting Command object to the Operator together with the Depot, generating the untagged responses + that come as a result of the processing.

+ +
+ + + + +
+
+Broker *broker = BrokerFactory.getBroker(STATE_SELECTED);
+if (broker != NULL)
+  throw CriticalException("no broker for selected state");
+
+Command command;
+
+try {
+  broker.parse(com, command);
+  broker.process(depot, command);
+} catch (...
+        
+
+ +
+BrokerFactory + +

The BrokerFactory manages the Broker objects.

+ +

Given a state, the BrokerFactory provides a Broker that holds all the Operator objects available to the client.

+ +

This provides a modular and safe separation of the priviledges + available at the different states in the IMAP session.

+ +

The preauthenticate stub has a BrokerFactory that can only generate Broker objects for the non-authenticated + state.

+ +
+Command + +

A Command object holds all information + that was passed to the Operator that served + a specific IMAP command.

+ +

Command objects are named. Examples of + such names are "CHECK", "SUBSCRIBE" and "LOGOUT".

+ +

For the name "FETCH", the Command object + is decorated with + sequence set, optionally a section and so on. The + parse() method in each Operator is + responsible for decorating the Command + object.

+ +

The Command object is + short-lived. It is created, decorated, passed on to the Operator, then discarded.

+ +
+Depot + +

A Depot is responsible for handling the + different Mailbox objects, and it is the + mailbox structure authority.

+ +

Given an IMAP mailbox path as input, a Depot + can give the caller a corresponding Mailbox + object if it finds one that successfully identifies the type of Mailbox. + +

The Depot is also aware of what the + default Mailbox type object is. This + Mailbox object is used when creating new IMAP + mailboxes.

+ +

Finally, the Depot is used to translate + mailbox names to a representation on the file system and back. There + are currently two specializations of the Depot + object available: one for Maildir++ + and one for IMAPdir. Each has + its own characteristics in how do translate the mailbox hierarchy to + the file system.

+ + + + + +
+
+Mailbox *mailbox = depot.getDefaultMailbox();
+if (mailbox == NULL)
+  throw CriticalException("no default mailbox provided");
+
+try {
+  mailbox->imapCreate("work/2003/07/todo");
+} catch (...
+        
+
+ +
+DepotFactory + +

The DepotFactory manages the Depot objects.

+ +

New Depot objects are assigned to the DepotFactory in runtime. This makes it easy + to add new Depot objects using loadable + modules. The Depot objects are registered and + accessed via their names, such as "Maildir++" + or "IMAPdir".

+ +

The DepotFactory gives individual + users of Binc IMAP the option to choose the Depot object that suits their needs the best.

+ +
+IO + +

The IO is a global. It consists of two instances - + com and logger.

+ +

com reads and writes characters to and from the client, + and hides the optional SSL encryption.

+ +

logger writes characters to Binc IMAP's log files. It + hides the method used to log data. Currently it supports logging to + stderr and syslog.

+ +
+Mailbox + +

The Mailbox is an abstract for Binc IMAP's different + backends. Bundled with Binc is a backend for Maildir. The class + Maildir inherits Mailbox.

+ +

In short, a Mailbox contains all methods needed for Binc + IMAP to serve a specific backend. It also holds a method to identify + a Mailbox of its own kind.

+ +

All registered Mailbox objects are held by the + Depot.

+ +
+ + + + +
+
+Mailbox *mailbox = depot.getSelectedMailbox();
+if (mailbox == NULL)
+  throw CriticalException("no selected mailbox in selected state");
+
+mailbox->imapExpunge();
+mailbox->imapClose();
+        
+
+ +
+Operator + +

An Operator is associated with an IMAP command such as + "SEARCH" or "AUTHENTICATE". In short, the Operator is used to + perform an arbitrary operation on a Mailbox.

+ +

Typically, an Operator can be assigned to one or more + Broker objects. + +

Operators contain, among others, the two public methods: + parse() and process().

+ +

When given the IO singleton as input, the parse() + method generates a Command object. This object can then be + fed to process() together with a Depot.

+ +

When processing its command, an Operator is allowed to + generate untagged responses and it can also update the + state of a Mailbox, the Depot or the + Session singleton.

+ +

Operator objects are assigned + dynamically to each Broker, making it + very easy to write + extensions that add or replace existing Operator objects using Binc IMAP's loadable + module support.

+ +
+Session + +

The Session is a singleton object that holds + information that is relevant to the current IMAP session.

+ +

Currently, the Session contains information about:

+ +
    +
  • Global configuration (administrator settings)
  • +
  • Local configuration (user settings)
  • +
  • Command line arguments
  • +
  • Folder subscription list
  • +
+ +
+ +

Last updated on 2003-03-20.

+ +

Please direct comments on this document to the Binc IMAP mailing list. Remember to search +the archives first.

+ +
+ + + + + + + + +
+ + Valid HTML 4.01! + + Powered by djbdns! + Powered by Binc IMAP +
+ +
+
+


















+


















+ + + +style with only LF. The MaildirMessage is an + implementation of Message used in Maildir. When using a Maildir + mailbox, Mailbox::iterator will return a reference to a + MaildirMessage. MaildirMessage also uses a MaildirMessageCache + singleton to handle cacheing of messages.

+ +

Although the inside of MaildirMessage both deals with files, + cacheing and MIME, the Operator needs not think about this.

+ + + +
+Operator +
+ +

An Operator is associated with an IMAP command such as + "SEARCH" or "AUTHENTICATE". In short, the Operator is used to + perform an arbitrary operation on a Mailbox.

+ +

Typically, an Operator can be assigned to one or more + Broker objects. + +

Operators contain, among others, the two public methods: + parse() and process().

+ +

The parse() method decorates a Request object. This object can then be fed to + process() together with a Depot.

+ +

When processing its request, an Operator + is allowed to generate untagged responses and it can also + update the state of a Mailbox, the Depot or the Session + singleton.

+ +

Operator objects are assigned + dynamically to each Broker, making it + very easy to write extensions that add or replace existing Operator objects using Binc IMAP's loadable + module support.

+
+ +
+Session +
+

The Session is a singleton object that holds + information that is relevant to the current IMAP session.

+ +

Currently, the Session contains information about:

+ +
    +
  • Global configuration (administrator settings)
  • +
  • Local configuration (user settings)
  • +
  • Command line arguments
  • +
  • Folder subscription list
  • +
+
+ +
+ +

Last updated on 2003-07-31.

+ +

Please direct comments on this document to the Binc IMAP mailing list. Remember to search +the archives first.

+ + + + + + + + + + +
+ + Valid HTML 4.01! + + Powered by djbdns! + Powered by Binc IMAP +
+ + + + + +


















+


















+ + + diff --git a/doc/OLD/HTML/bincimap.css b/doc/OLD/HTML/bincimap.css new file mode 100644 index 0000000..cf6c0b7 --- /dev/null +++ b/doc/OLD/HTML/bincimap.css @@ -0,0 +1,8 @@ +a:link { color: #fff; font-size: 12pt; font-family: Arial, Helvetica, Verdana; text-decoration: underline } +a:active { color: #fff; font-size: 12pt; font-family: Arial, Helvetica, Verdana; text-decoration: underline } +a { color: #fff; font-size: 12pt; font-family: Arial, Helvetica, Verdana; text-decoration: underline } +a:vlink { color: #fff; font-size: 12pt; font-family: Arial, Helvetica, Verdana; text-decoration: underline } +body { color: #fff; font-size: 12pt; font-family: Arial, Helvetica, Verdana } +.bodytext { color: #fff; font-size: 12pt; font-family: Arial, Helvetica, Verdana } +.headtext { color: #fff; font-size: 20pt; font-family: Arial, Helvetica, Verdana } + diff --git a/doc/OLD/README b/doc/OLD/README new file mode 100644 index 0000000..ec630b3 --- /dev/null +++ b/doc/OLD/README @@ -0,0 +1,109 @@ +This documentation is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA. + +========================================================================= + +Welcome to Binc IMAP! This is the documentation for v1.3.4. + +The is an unstable development version, and it is not recommended for +production systems. + +Here is a quick guide on how to setup IMAP on your system. + +You can also check out the project home page's FAQ and the Life With +Binc IMAP community documentation site: + +http://www.bincimap.org/ +http://www.lifewithbincimap.org/ + +Binc IMAP requires OpenSSL - http://www.openssl.org/, for SSL support. + +Installation instructions +------------------------- + +Installing Binc IMAP is easy! View the options by passing --help to the +configure script. Here's how to install the server using default options. Log +in as root on your machine, then: + +# ./configure +# make +# make install + +Binc IMAP's "make install" stage tells you exactly where all files are copied. +To uninstall, type "make uninstall". + +Configuring the server +---------------------- + +You need to figure out one thing before you start using the server. Binc IMAP +doesn't run as a standalone TCP server. It relies on a TCP wrapper, like +xinetd, inetd or tcpserver. + + 1) I will be using xinetd. + - This is the recommended default. If you don't know what the other + options are about, then this is definitely the way to go. Just + make sure that xinetd is installed on your server. + + 2) I will be using svscan / tcpserver + - Before anything, make sure that logging works with multilog. + + 3) I will need to use another TCP wrapper. + - You should be able to figure out how to run Binc IMAP by looking + at the bundled xinetd and daemontools files. Otherwise, see if the + community pages can help you along the way. Or post a message to + the mailing list. + +Configuring Binc IMAP is easy! Simply locate your config file called +"bincimap-config". It was installed as part of the "make install" stage. Edit +this file. It contains reasonable defaults, but it should be easy enough to +understand what you'd need to change. + +NOTE: tcpserver users, make sure LOG_TYPE is set to "multilog" if you prefer + using multilog. + +Choose your depot setting with care. The default depot, IMAPdir, is always +best for fresh installs. If you're upgrading from a Courier-IMAP server, the +Maildir++ depot will give you a smoother transition. You should still aim at +moving to IMAPdir. For more on depots (or if you don't know what a depot is in +this setting), see README.DEPOT. + +Check the SSL settings. See also README.SSL for more on generating an SSL +certificate and key. + +Starting the server +------------------- + +This assumes you used /usr/local as prefix when you installed Binc IMAP. + +1) xinetd users: + + a) Create a symlink from /usr/local/etc/xinetd-bincimap to /etc/xinetd.d/imap. + b) Create a symlink from /usr/local/etc/xinetd-bincimaps to /etc/xinetd.d/imaps. + c) Restart xinetd. + +2) svscan users: + + a) Create a symlink from /usr/local/share/service/bincimap to /service/imap. + b) Create a symlink from /usr/local/share/service/bincimaps to /service/imaps. + +The server should be available immediately. + +Happy IMAPing! With these settings your copy of Binc IMAP should be +operational. For more information, please check out the man pages and +FAQ. + Andy :-) + +========================================================================= +Tell us what you think about this server! Post any problems, remarks +or comments to: + +The Binc IMAP mailing list +The Binc IMAP Developers' mailing list + +Author: Andreas Aardal Hanssen diff --git a/doc/OLD/README.SSL b/doc/OLD/README.SSL new file mode 100644 index 0000000..3048a65 --- /dev/null +++ b/doc/OLD/README.SSL @@ -0,0 +1,141 @@ +This documentation is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA. + +========================================================================= + +Quick guide to SSL certificates with Binc IMAP. + +Table of contents: + +0. Introduction +1. To generate a private key and certificate request +2. To generate a private key and self-signed certificate +3. To generate a private key and CA signed certificate, acting as + one's own CA. + +For more information, check out the project home page's FAQ and +the Life With Binc IMAP community documentation site: + +http://www.lifewithbincimap.org/ + +========================================================================= + +0. Introduction +--------------- + +The are two ways to enable SSL on Binc IMAP. One is to use an SSL +tunnel (http://www.stunnel.org/), the other is to use Binc IMAP's +native SSL support. If you compiled Binc with SSL support, the latter +is much easier to set up. + +To use SSL with Binc IMAP, you need a private key and a certificate. + +A private key is a random string of bits that is secret to your host. +If this key is compromised, your SSL server will no longer provide +significant security for your users. + +The certificate is among the first things the server sends to a +client. The client uses this certificate to make certain that it is +communicating with the correct host. To do this, it needs to check the +certificate with a trusted third party certificate, known as a CA +certificate. + +There are in general two types of certificates: + +- CA signed certificates +- Self signed certificates + +CAs, or Certificate Authorities, are used by clients to verify the +authenticity of a certificate. If you want an official CA to verify +your certificate, you need to send a "certificate request". Usually +for a certain price, a signed certificate is returned to you. If you +do not wish to use an official CA, you can act as your own CA and +create your own CA signed certificates. + +A certificate is not valid unless it is signed. If it is self signed, +the clients can not verify its identity. In that sense, a self signed +certificate is only useful in a test environment. The client can not +identify the server if the server uses a self-signed certificate. + +The general idea is: + +* If you are testing an SSL enabled server, generate a self-signed +test certificate. + +* If you want to provide an SSL enabled service on a closed network, +create a CA certificate and a signed host certificate, then install +the CA certificate on all clients on the network. + +* If you want to provide an SSL enabled service on an open network +such as the Internet, use an official CA to sign your certificate. + +1. To generate a private key and certificate request +---------------------------------------------------- + +Quick hit: "make cert". + +To generate a private key and a certificate request, the following +openssl command can be used: + +openssl req -newkey rsa:1024 -keyout bincimap.key -nodes -days 365 -out bincimap.crq + +Inside bincimap.crq is a certificate request in PEM encoding, which +basically means the certificate is base64 encoded and enclosed in a +start string that says "BEGIN CERTIFICATE REQUEST" and an end string +that says "END CERTIFICATE REQUEST". + +Submit this request file to a CA such as Thawte (http://www.thawte.com/) or +Verisign (http://www.verisign.com/). When you receive the signed certificate +from them, store this in a file called bincimap.cert. + +The file contains the PEM encoded certificate, and it is enclosed in +a start string that says "BEGIN CERTIFICATE" and an end string that +says "END CERTIFICATE". + +Then edit bincimap-config and set the full filename and path to your +certificate file and your private key file. + +You're now ready to use Binc IMAP with SSL. + +2. To generate a private key and self-signed certificate +-------------------------------------------------------- + +Quick hit: "make testcert". + +To generate a private key and a self-signed certificate, the following +openssl command can be used: + +openssl req -newkey rsa:1024 -keyout bincimap.key -x509 -nodes -days 365 -out bincimap.cert + +Then edit bincimap-config and set the full filename and path to your +certificate file and your private key file. + +You're now ready to test Binc IMAP with SSL. + +3. To generate a private key and CA signed certificate, acting as + one's own CA. +------------------------------------------------------------------ + +Look up the guides on LifeWithBincIMAP.org: + +http://lifewithbincimap.org/index.php/Main/DoItYourselfCertificateAuthority +http://lifewithbincimap.org/index.php/Main/SettingUpYourOwnSSLCertificationAuthority + +You're now ready to use Binc IMAP with SSL. + +Happy IMAPing! + Andy :-) + +========================================================================= +Tell us what you think about this server! Post any problems, remarks +or comments to: + +The Binc IMAP mailing list + +Author: Andreas Aardal Hanssen -- cgit v1.2.3