$Log$
+ Revision 612.14 2003/12/15 16:33:47 ajc
+ * Added support for "Cc" and "Bcc" IMAP SEARCHes
+ * Bumped the version number to 6.13
+
+ Revision 612.13 2003/12/11 04:21:23 ajc
+ * Removed a "FIXME this needs blah blah" comment because blah blah has
+ since been completed
+
+ Revision 612.12 2003/12/11 04:06:55 nbryant
+ configure.ac: add support for position-independent executables. can be disabled
+ with --disable-pie
+
+ Revision 612.11 2003/12/11 03:44:18 nbryant
+ domain.c: include <arpa/nameser_compat.h> if present
+ configure.ac: check for <arpa/nameser_compat.h>
+
+ Revision 612.10 2003/12/10 03:58:26 ajc
+ * Completed a more accurate implementation of the ENVELOPE fetch in IMAP.
+
+ Revision 612.9 2003/12/09 06:39:19 nbryant
+ did a minimal amount of ANSIfication without changing anything that would
+ affect the compiler output in any way. I was just trying to get enough warnings
+ enabled to be able to tell if there are any nested functions lurking about...
+
+ If we get rid of nested functions we can get some big security gains under
+ Fedora.
+
+ Revision 612.8 2003/12/09 05:12:49 ajc
+ * Don't give away anonymous poster information in IMAP or RFC822
+
+ Revision 612.7 2003/12/09 04:50:16 ajc
+ * Painstakingly combed through IMAP headers and responses for two hours in
+ an attempt to figure out why the horrendous pile of crap called Microsoft
+ Outlook counts the correct number of messages but wasn't displaying any
+ of them. Eventually determined that it was ONE EXTRA SPACE after the
+ closing paren of the ENVELOPE output that caused Outlook to totally ignore
+ all the messages. This only reinforces my belief that anything designed
+ in the state of Washington is utter and complete CRAP.
+ * Corrected the above glitch. Outbreak works properly now.
+
+ Revision 612.6 2003/12/09 03:56:29 ajc
+ * user_ops.c: missing string declaration or something?
+
+ Revision 612.5 2003/12/08 17:41:01 ajc
+ * serv_smtp.c: validated and documented compliance with a big pile of RFC's
+ which are in one way or another related to SMTP.
+
+ Revision 612.4 2003/12/07 19:59:13 error
+ * Minor enhancements to a few of the trace file entries
+
+ Revision 612.3 2003/12/07 19:57:48 error
+ * Added some useless comments to some of the techdocs/ files
+
+ Revision 612.2 2003/12/07 19:56:24 error
+ * CREU command now allows specification of an initial password
+
+ Revision 612.1 2003/12/04 04:20:08 ajc
+ * Incoming RFC822 messages get the To: field translated directly to
+ a Citadel <R> field.
+
+ Revision 612.0 2003/12/01 04:11:48 ajc
+ * THIS IS 6.12
+
+ Revision 611.10 2003/11/30 03:43:34 ajc
+ * Support IMAP \Answered flag
+
+ Revision 611.9 2003/11/22 03:30:14 ajc
+ * Commented out the call to the 'high speed download' function and
+ uncommented the call to the original 'chatty' download function. Some
+ users were reporting lockups.
+
+ Revision 611.8 2003/11/14 20:15:44 ajc
+ * Reversed the previous change because it made things b0rken
+
+ Revision 611.7 2003/11/14 20:04:28 ajc
+ * IMAP FETCH ENVELOPE now outputs more fields correctly.
+
+ Revision 611.6 2003/11/14 03:49:54 ajc
+ * MUCH faster implementation of rfc822_fetch_field()
+
+ Revision 611.5 2003/11/13 04:25:38 ajc
+ * mime_parser.c: handle multipart *much* more efficiently now. Instead
+ of scanning line by line, we snag the boundaries using the Boyer-Moore
+ algorithm.
+
+ Revision 611.4 2003/11/12 04:28:22 ajc
+ * Replaced bmstrcasestr() with a more generic function, bmstrstr(), which
+ can be supplied with *any* strncmp()-compatible compare function.
+
+ Revision 611.3 2003/11/08 06:46:08 ajc
+ * IMAP FETCH BODY<xxx.yyy> was outputting the offset and length in the
+ wrong order. Fixed.
+
+ Revision 611.2 2003/11/08 06:29:47 ajc
+ * IMAP FETCH FLAGS ... removed extra trailing space after last flag
+
+ Revision 611.1 2003/11/06 04:25:30 ajc
+ * For certain IMAP outputs (such as BODYSTRUCTURE), buffer all output until
+ we've got the whole thing, then spew it all at once to avoid lots of
+ tiny TCP packets.
+ * New API calls buffer_output() (to start buffering) and unbuffer_output()
+ (to dump the buffer and stop buffering) are available to do this.
+
+ Revision 611.0 2003/10/21 04:20:41 ajc
+ * THIS IS 6.11
+
+ Revision 610.22 2003/10/17 02:18:40 ajc
+ * Replaced the DEFAULT_ENTRY definition in sysconfig.h with a new option
+ "reply_with_external_editor" in citadel.rc.
+
+ Revision 610.21 2003/10/14 03:09:47 ajc
+ * routines2.c: fixed an off-by-one error in filename sanitization for
+ client file uploads
+
+ Revision 610.20 2003/10/10 05:43:57 ajc
+ * citadel.c: Reworded one of the prompts
+
+ Revision 610.19 2003/10/07 15:56:17 ajc
+ * Better handling of incoming Internet addresses consisting of an address
+ in angle brackets with no name outside the brackets.
+
+ Revision 610.18 2003/09/21 04:10:56 ajc
+ * messages.c: don't crash when a message contains more than MAXURLS of
+ embedded URL's. Omit them instead.
+ * citadel.rc: updated the sample browser remoting command for Macintosh
+ based on a Mr.T suggestion
+ * techdoc/session.txt: redid the writeup for the MOVE command (fixed a
+ mistake and made the writeup clearer)
+
+ Revision 610.17 2003/09/17 21:40:13 ajc
+ * html.c: don't truncate messages when wacky characters are
+ encountered. Substitute '?' characters instead. Now the Citadel
+ community can complain about b0rken MS ASCII.
+
+ Revision 610.16 2003/09/13 02:53:04 ajc
+ * More intelligent selection of directory to save attachments
+
+ Revision 610.15 2003/09/12 15:48:55 ajc
+ * serv_smtp.c: remember whether we're SMTP or LMTP across a RSET command.
+
+ Revision 610.14 2003/09/09 02:42:28 ajc
+ * Documentation update for LMTP
+
+ Revision 610.13 2003/09/09 01:47:02 ajc
+ * Suppress domain forgery check when using LMTP
+
+ Revision 610.12 2003/09/08 18:48:14 ajc
+ * The unix domain socket used for citmail to talk to citserver now
+ implements LMTP (RFC2033). Other LMTP client implementations (such as
+ Postfix) can also use the socket, eliminating the need for citmail.
+
+ Revision 610.11 2003/09/07 03:29:25 ajc
+ * serv_network.c: aggressively poll any node for which we have data
+
+ Revision 610.10 2003/09/06 02:04:54 ajc
+ * Don't reset "last poll" time when not doing the "full" net processing
+
+ Revision 610.9 2003/09/03 03:29:01 ajc
+ * syslog messages now say session started/ended instead of ended/ended
+
+ Revision 610.8 2003/09/03 03:24:40 ajc
+ * client: remove rooms from the march list when zapping them (or the floors
+ they're on)
+
+ Revision 610.7 2003/09/02 15:05:34 ajc
+ * Repaired an incorrect adjustment of floor reference counts when a room was
+ moved to a different floor. (Thanks to Winzlo for reporting this.)
+
+ Revision 610.6 2003/09/02 14:49:05 ajc
+ * Improve client chat mode reliability and performance by assuming that all
+ server output will be in complete lines. (This is a safe assumption.)
+
+ Revision 610.5 2003/09/02 04:04:39 ajc
+ * Don't try to directly spool to non-neighbor nodes
+
+ Revision 610.4 2003/08/29 08:21:57 ajc
+ * Do network runs more proactively. The inbound queue is now scanned
+ every minute instead of every poll frequency.
+
+ Revision 610.3 2003/08/21 23:26:06 ajc
+ * setup.c: offer to disable "exim" if found
+
+ Revision 610.2 2003/08/20 03:51:08 ajc
+ * Bumped the internal version number to 6.11
+
+ Revision 610.1 2003/08/20 03:36:13 ajc
+ * Create a "Contacts" room for personal address book use
+
+ Revision 610.0 2003/08/17 03:00:37 ajc
+ * THIS IS 6.10
+
+ Revision 609.2 2003/08/17 02:58:46 ajc
+ * Changed internal version number to 6.10
+
+ Revision 609.1 2003/08/17 02:46:37 ajc
+ * Don't fail on "data files too old to be upgraded" for NEW installations
+
+ Revision 609.0 2003/08/14 03:40:55 ajc
+ * THIS IS 6.09
+
+ Revision 608.21 2003/08/13 18:08:24 ajc
+ * Removed the last vestiges of the now-obsolete global networking password
+
+ Revision 608.20 2003/08/13 14:36:04 ajc
+ * "make install" now installs the contents of docs/ as well as README.txt
+
+ Revision 608.19 2003/08/13 14:30:47 ajc
+ * Temporarily disabled IMAP TLS support due to the discovery of some
+ compatibility problems. It will be re-enabled when they are fixed.
+
+ Revision 608.18 2003/08/12 00:39:35 ajc
+ * setup now knows about lots of other mail programs it can disable (various
+ flavors of Cyrus and Courier, for example)
+ * setup now ensures that it really did startup/shutdown the Citadel service,
+ and displays an error message when that fails.
+ * "make install" now instructs the user run "setup"
+ * Removed an old GDBM reference from the documentation
+
+ Revision 608.17 2003/08/05 03:06:58 ajc
+ * Added a README.txt file because some Joker kept bugging me about it
+ * Reloaded the code that extracts embedded URL's to a place where it'll
+ get picked up on *every* message, not just the old variformat stuff
+
+ Revision 608.16 2003/08/03 17:51:52 ajc
+ * Clear out all masqueraded wholist fields when logging out, in case another
+ user logs in without reconnecting.
+
+ Revision 608.15 2003/07/30 20:36:18 ajc
+ * Allow users to authenticate with either their display name or any valid
+ e-mail address which belongs to them. Applies to all protocols.
+
+ Revision 608.14 2003/07/30 03:54:34 ajc
+ * Fixed a small client bug in the purge hour setting
+
+ Revision 608.13 2003/07/30 03:47:53 ajc
+ * Eliminated the EXPI command
+ * Completed the configuration item of "purge hour"
+ * Auto-purger now runs as a scheduled job
+
+ Revision 608.12 2003/07/30 00:26:50 ajc
+ * Removed the "weekly" script and began installing a facility to allow
+ database maintenance to happen automatically. (One Step Install can't
+ require the sysadmin to know cron)
+
+ Revision 608.11 2003/07/28 04:17:24 ajc
+ * migratenet.c: removed. Adjusted Makefile.in accordingly.
+
+ Revision 608.10 2003/07/27 21:15:23 ajc
+ * Implemented all IMAP date-based search criteria. Note that Citadel does
+ not record an "internal date" of a message, so the "sent date" and "internal
+ date" searches perform identically.
+ * Date search comparisons available: "before," "on," or "on or after." Yet
+ another example of why Mark Crispin needs to be taken outside and shot.
+
+ Revision 608.9 2003/07/26 04:49:40 ajc
+ * Implemented a bunch of the IMAP SEARCH keywords
+
+ Revision 608.8 2003/07/26 04:28:44 ajc
+ * tools.c: added bmstrcasestr(), a Boyer-Moore, case-insensitive string search
+ * imap_search.c: implement BODY criterion in search command
+
+ Revision 608.7 2003/07/24 04:57:53 ajc
+ * Began implementation of the IMAP SEARCH command. Basically just got the
+ parser working and stubbed all the search criteria. Next step is to
+ implement the functionality of each criterion keyword.
+ * Implemented the functionality for the ALL (wow!) and UID criteria.
+ * Mark Crispin is an idiot.
+
+ Revision 608.6 2003/07/23 03:57:05 ajc
+ * Optimized the updating of visit records in several places by checking to
+ see if they've changed and aborting the db update if they haven't.
+ * Functions which read/write user records are now slightly faster due to
+ an improvement of the algorithm used to generate the database keys.
+
+ Revision 608.5 2003/07/22 03:07:50 nbryant
+ fix build for Solaris
+
+ Revision 608.4 2003/07/20 20:46:06 ajc
+ * build system: link Berkeley DB only to the server, not to the client & utils
+
+ Revision 608.3 2003/07/20 03:51:46 ajc
+ * setup.c: offer to disable sendmail, postfix, and qmail if found (only if
+ using the /etc/init.d type of startup scripts)
+
+ Revision 608.2 2003/07/20 03:08:22 ajc
+ * setup.c: offer to hack /etc/xinetd.d/telnet
+
+ Revision 608.1 2003/07/15 14:54:09 ajc
+ * Killed off CtdlGetDynamicSymbol() and just put all the symbols in server.h
+
+ Revision 608.0 2003/07/15 04:12:52 ajc
+ * THIS IS 6.08
+
+ Revision 607.23 2003/07/14 17:26:42 ajc
+ * strcpy() --> safestrncpy() in a few other random places
+
+ Revision 607.22 2003/07/14 17:12:28 ajc
+ * Replaced strcpy() with safestrcpy() in cmd_setp()
+
Revision 607.21 2003/07/14 03:07:05 ajc
* ipgm_secret is no longer set during setup. Now it is set at server startup
and automatically changes whenever an IPGM command is executed.