* Changed the format of the euidindex record to contain the record's key.
[citadel.git] / citadel / ChangeLog
index 7d417c34f093506b65a101b5c1b713e28fb2cd46..4df65e6ba3bec51905336e5e3f6883d7c6ee77c3 100644 (file)
@@ -1,3 +1,441 @@
+$Log$
+Revision 655.21  2005/10/06 03:36:05  ajc
+* Changed the format of the euidindex record to contain the record's key.
+  This will allow us to auto-purge stale records later.
+
+Revision 655.20  2005/10/04 16:38:17  ajc
+* CtdlOutputPreLoadedMsg() calling syntax has changed.  It no longer needs
+  the message number, because it is being supplied a preloaded message.
+* msgbase.c: fixed a problem where HEADERS_NONE mode was broken when
+  outputting a message in RFC822 format.  This was breaking IMAP commands
+  such as xx FETCH nn BODY[TEXT]
+
+Revision 655.19  2005/10/02 04:40:58  ajc
+* The EUID index is now built, and replication checks are being performed
+  using it.  It is much faster now because we don't have to scan the entire
+  room anymore.  We still need to do two things:
+  1. Write a server command to fetch messages by EUID instead of msgnum
+  2. Find a way to purge stale EUID index records.
+
+Revision 655.18  2005/10/01 05:18:57  ajc
+* Began writing code to index messages by euid per room
+
+Revision 655.17  2005/09/27 04:18:45  ajc
+* Auto-add *recipient* addresses to Contacts.  This is done asynchronously
+  because we do have to scan the address book to make sure we don't
+  already have the address recorded.
+
+Revision 655.16  2005/09/26 21:46:08  ajc
+* Attempt to save *outgoing* email addresses to the address book.
+
+Revision 655.15  2005/09/21 20:07:18  ajc
+* Set the To: field for digests as well
+
+Revision 655.14  2005/09/21 16:56:17  ajc
+* The "To: line of a mailing list message is now set to the address of the
+  list instead of the address of the recipient.
+
+Revision 655.13  2005/09/21 13:21:31  ajc
+* Don't harvest incoming addresses.  A few hours of operation of this in a
+  production environment proved that it's stupid.  This feature has been
+  disabled; we will harvest outgoing addresses instead.
+
+Revision 655.12  2005/09/21 04:27:34  ajc
+* When reading messages in MT_MIME mode from a Citadel client, don't
+  list MIME parts that are part of a multipart/alternative group.
+
+Revision 655.11  2005/09/18 21:51:44  ajc
+* File the auto-generated vCards into the users' address books.
+
+Revision 655.10  2005/09/18 20:33:13  ajc
+* Now harvesting addresses, converting them to vCards, and storing them in
+  the Aide> room.  All that's left to do now is file the messages in the
+  appropriate users' address books.
+
+Revision 655.9  2005/09/18 19:34:26  ajc
+* When submitting a message, harvest non-local addresses for potential
+  inclusion in a user's Collected Addresses book.  Note: we don't actually
+  do anything with these addresses yet.  That comes next.
+
+Revision 655.8  2005/09/18 17:50:05  ajc
+* serv_network.c: use a stat() call to determine the mtime of spoolin, and
+  skip the scan if it hasn't been touched since the last time we looked.
+* serv_network.c: don't create network/systems/ directory.  We haven't used
+  that in ages.
+* serv_network.c: only attempt to create directories at startup, not at
+  every queue run.  Also, chown() them to the citadel user.
+
+Revision 655.7  2005/09/16 20:40:44  ajc
+* CC: support for message creation, and IMAP.  Not tested.
+
+Revision 655.6  2005/09/16 20:21:38  ajc
+* CC: and BCC: delivery are working (tested using message submittal
+  from WebCit) -- still missing the insertion of Y (CC) header field, and
+  the handling of CC in IMAP.
+
+Revision 655.5  2005/09/16 04:23:21  ajc
+* Cc: and Bcc: support.  Not finished yet.
+
+Revision 655.4  2005/09/15 21:37:06  ajc
+* Restructured cmd_auto() to be able to search vCards in more than one room.
+  For now we are using the Global Address Book as the second room, but in
+  production that might be a bit too slow.
+
+Revision 655.3  2005/09/15 18:36:29  ajc
+* serv_smtp.c: Allow the use of *any* RFC822-compliant address format,
+  including Name <user@node>, or user@node (Name), by stripping down the
+  address before doing RCPT To: in the SMTP client.
+
+Revision 655.2  2005/09/15 03:31:09  ajc
+* cmd_auto() (used by WebCit address autocompletion) now queries the
+  fn, n, and all email fields in the vCards in user's Contacts room.
+
+Revision 655.1  2005/09/14 03:48:32  ajc
+* Bumped internal version number to 5.66
+* Checked in an initial but incomplete version of the AUTO command
+  (to be used for address autocompletion)
+
+Revision 655.0  2005/09/13 14:00:12  ajc
+* THIS IS 6.55
+
+Revision 654.27  2005/09/13 03:56:37  ajc
+* Don't crash when user hits <.A>ide <P>ost
+
+Revision 654.26  2005/09/10 18:46:48  ajc
+* Functions such as imap_fetch_internaldate() now return quietly with no
+  output, instead of crashing, if passed a NULL message pointer.
+
+Revision 654.25  2005/09/09 19:44:21  ajc
+* New bmstrcasestr() function to perform very fast case-insensitive
+  substring searches using the Boyer-Moore algorithm.  Like its predecessor,
+  it is based on the one written by Urs Jannsen; unlike its predecessor, it
+  actually works.
+
+Revision 654.24  2005/09/08 03:25:09  ajc
+* messages.c: break up long lines (preferably by substituting spaces with
+  newlines) to avoid sending messages to the server containing lines with
+  more than 1024 characters, to avoid having the server truncate those
+  lines.
+
+Revision 654.23  2005/09/07 03:08:06  ajc
+* When rejecting a message due to RBL, give the alleged spammers the
+  relevant TXT record if there is one.  Hopefully.  This needs testing.
+
+Revision 654.22  2005/09/02 03:50:42  ajc
+* serv_network.c: fixed a bug in digest generation that was causing the
+  tops of some messages to be cut off.
+
+Revision 654.21  2005/09/01 22:07:08  ajc
+* citserver.c: change to usage of strdup() to work on RH9 where it's
+  a macro
+
+Revision 654.20  2005/08/29 20:49:50  ajc
+* imap_fetch.c: fixed a bug in the IMAP FETCH BODY code that was causing the
+  "most recently fetched message" cache to be burned even when it shouldn't
+  have been.  This was causing abominally slow message load time when a message
+  contains attachments and the MUA is a client such as Thunderbird that does
+  partial fetches.
+
+Revision 654.19  2005/08/23 04:00:01  ajc
+* Mailing list messages are now customized with a To: header for each
+  recipient.  This uses more overhead but makes delivery more reliable.
+  We also prepend [List name] to the subject.
+* The undocumented client-side mailing list participation option received
+  a similar update.  We now set an explicit To: header in there as well,
+  because some lists demand it.
+
+Revision 654.18  2005/08/21 19:40:50  ajc
+* techdoc/protocol.txt: document that unless otherwise specified,
+  everything in the Citadel system is UTF-8.
+
+Revision 654.17  2005/08/21 06:16:37  ajc
+* html.c: don't transform <32 or >126 characters to question marks.  We
+  like foreign character sets now.
+
+Revision 654.16  2005/08/15 16:36:46  ajc
+* Added a "MIME-Version:" header in a couple of places
+
+Revision 654.15  2005/08/12 18:00:29  ajc
+* Bounds checking in CtdlDirectoryLookup()
+
+Revision 654.14  2005/08/12 15:18:27  ajc
+* updated the roadmap
+
+Revision 654.13  2005/08/12 02:12:31  ajc
+* Added more room name macros
+
+Revision 654.12  2005/08/11 23:12:26  ajc
+* debian/citadel-server.postinst: remove reference to '?' file
+  (patch sent in by W. Goesgens)
+
+Revision 654.11  2005/08/11 13:55:26  ajc
+* Attempt to fix broken build of our replacement strcpy() on gcc2.96 by
+  issuing an #undef strcpy (it's a macro in that environment)
+
+Revision 654.10  2005/08/10 21:47:41  ajc
+* Added "instant expunge" and "allow spoofing" site config options.
+
+Revision 654.9  2005/08/10 21:10:54  ajc
+* moved "instant expunge" to imap_do_store() so that it gets called from
+  both STORE and UID STORE commands.
+
+Revision 654.8  2005/08/10 15:39:35  ajc
+* Experimental "instant expunge" option.  For now, you have to put
+  -DINSTANT_EXPUNGE into the CFLAGS line of your Makefile.  If we decide to
+  keep this it will become a site config option.
+
+Revision 654.7  2005/08/10 02:44:56  ajc
+* Applied changes to debian files sent in by WG
+
+Revision 654.6  2005/08/09 21:58:57  ajc
+* Removed the ./help/? hack; replaced with actual "show directory" code
+  in the server.
+
+Revision 654.5  2005/08/09 16:28:32  ajc
+* setup.c: added "exim4" to the list of non-Citadel MTA's which can be
+  disabled during setup.
+
+Revision 654.4  2005/08/09 14:13:36  ajc
+* newinstall.sh: hunt for both 'make' and 'gmake', but this time make sure
+  that the make in question is actually GNU Make, regardless of its name
+
+Revision 654.3  2005/08/08 14:57:19  ajc
+* Added a new "with header summary" mode to the MSGS command.
+
+Revision 654.2  2005/08/08 14:28:41  ajc
+* CtdlForEachMessage() -- avoid scanning v_seen sequence set for each message
+  during a MSGS_ALL fetch, because the results don't matter.
+
+Revision 654.1  2005/08/05 21:31:01  ajc
+* Any "delete message" operation which is synchronous to a client is now
+  deferred.  This is accomplished by copying the message pointer to
+  the __CitadelDeletedMessages__ room, which keeps the reference count at
+  least 1.  THE DREADED AUTO-PURGER can sweep it up later.
+
+Revision 654.0  2005/08/05 16:22:38  ajc
+* THIS IS 6.54
+
+Revision 653.18  2005/08/04 04:46:42  ajc
+* Bumped internal version number to 6.54
+* removed some tracing messages
+
+Revision 653.17  2005/08/04 04:22:09  ajc
+* imap_fetch.c: removed a spurious ')' character from the output
+  of the 'charset' field.
+
+Revision 653.16  2005/08/02 03:40:15  ajc
+* Removed instances of hard-coded CTDLDIR; this breaks -h
+
+Revision 653.15  2005/08/02 03:05:31  ajc
+* Added in Wilfried Goesgens' debian/ build directory.
+
+Revision 653.14  2005/08/02 02:49:12  ajc
+* Applied Wilfried Goesgens' dirconfig patch for more install targets
+
+Revision 653.13  2005/08/01 20:45:26  ajc
+* citadel_ipc.c: RUN_DIR not RUNDIR in line 2944
+
+Revision 653.12  2005/07/29 03:50:52  ajc
+* Temporarily disabling network_purge_spoolout() because it may be
+  removing files it shouldn't.
+
+Revision 653.11  2005/07/29 01:50:58  ajc
+* Create network/ directory hierarchy if it doesn't exist
+
+Revision 653.10  2005/07/28 03:22:19  ajc
+* Added a "macintosh readme" written by Mathew McBride
+
+Revision 653.9  2005/07/26 02:49:25  ajc
+* Applied a patch sent in by Wilfried Goesgens which allows the various
+  program and data directories to be set to any location on the host
+  system.  This will allow packagers to do FSSTND-type configurations.
+
+Revision 653.8  2005/07/25 17:37:36  ajc
+* citadel_ipc.c: when performing a MSG4 command, don't return the
+  charset as part of the content-type string.
+
+Revision 653.7  2005/07/21 17:20:55  ajc
+* <.R>ead <U>ser-list now takes advantage of the server-side string match
+  if available.  It still filters on the client side as well, in case the
+  server is older and sent back the whole list.
+
+Revision 653.6  2005/07/21 15:02:27  ajc
+* Server-side LIST command now accepts a search string.
+
+Revision 653.5  2005/07/19 20:04:31  ajc
+* MSG4 command now outputs content type *and* charset
+
+Revision 653.4  2005/07/19 17:30:13  ajc
+* Fixed a bug in the MIME parser that was causing it to prematurely go
+  out of scope when binary parts are included.  (8-bit MIME is not yet
+  explicitly supported in the Citadel server, but WebCit uses this to
+  handle data coming in via the POST method.)
+
+Revision 653.3  2005/07/19 14:21:51  ajc
+* mime_parser.c: don't default to Content-type: text/plain; charset=us-ascii
+  because there are places where those fields actually need to be empty (in
+  WebCit, actually, but I don't want to fork the mime parser).
+
+Revision 653.2  2005/07/19 04:10:01  ajc
+* Updated the MIME parser API to include the "charset" portion of
+  the content type.
+
+Revision 653.1  2005/07/09 11:30:18  ajc
+* Removed trailing space at the end of the list of messages returned by
+  an IMAP SEARCH command.
+
+Revision 653.0  2005/07/06 21:41:52  ajc
+* THIS IS 6.53
+
+Revision 652.1  2005/07/06 21:41:17  ajc
+* Fixed bug #149 (incorrect sequence set optimization, resulting in
+  messages being marked as read/unread incorrectly during IMAP sessions)
+
+Revision 652.0  2005/07/06 02:28:38  ajc
+* THIS IS 6.52
+
+Revision 651.8  2005/07/06 02:28:20  ajc
+* citadel.lsm: removed.  Nobody uses the Linux Software Map anymore.
+* Updated internal version number to 6.52
+
+Revision 651.7  2005/07/06 01:53:34  ajc
+* imap_fetch.c: additional self-check to avoid attempting to fetch messages
+  with UID's lower than 1.  Hopefully this fixes bug #150.
+
+Revision 651.6  2005/07/01 22:07:27  ajc
+* CtdlSetSeen() -- when new vset overflows its size, trim it in such a way
+  so that it doesn't mark the oldest messages as new.
+
+Revision 651.5  2005/06/28 02:58:19  ajc
+* docs update
+
+Revision 651.4  2005/06/26 22:19:20  ajc
+* auth.c: applied fleeb's patch to validpw() to clean up FreeBSD compatibility
+
+Revision 651.3  2005/06/22 03:45:17  ajc
+* Documented the auto-log-cull as it relates to backup strategies
+
+Revision 651.2  2005/06/22 03:03:34  ajc
+* Automatic deletion of committed database logs is now a site-definable
+  setting.
+
+Revision 651.1  2005/06/16 02:42:58  ajc
+* There is now a dedicated thread for doing database checkpoints.
+
+Revision 651.0  2005/06/12 03:46:30  ajc
+* THIS IS 6.51
+
+Revision 647.42  2005/06/12 03:31:33  ajc
+* ChangeLog: restored automatic prepending of CVS commit log messages
+  to the top of this file.  Somehow it got lost somewhere around 647.20
+
+Revision 647.41  2005/06/12 03:30:20  ajc
+* Test
+
+revision 647.40
+date: 2005/06/12 03:24:15;  author: ajc;  state: Exp;  lines: +0 -1
+* When delivering list digests, put the name of the room in [brackets]
+  in the subject line.  This makes lots of other software happy.  (We
+  need to do this for non-digest list subscribers too.)
+
+revision 647.39
+date: 2005/06/12 01:15:33;  author: ajc;  state: Exp;  lines: +1 -0
+* Provide separate filtered and unfiltered LMTP sockets.
+
+revision 647.38
+date: 2005/06/09 20:10:02;  author: ajc;  state: Exp;  lines: +0 -1
+* Easy Install requires gmake
+
+revision 647.37
+date: 2005/06/09 03:35:58;  author: ajc;  state: Exp;  lines: +1 -0
+* Allow IMAP DELETE of a zapped/forgotten/unsubscribed room
+
+revision 647.36
+date: 2005/06/09 03:20:21;  author: ajc;  state: Exp;  lines: +0 -1
+* Do not log IMAP/POP/SMTP password commands
+
+revision 647.35
+date: 2005/06/07 21:45:14;  author: ajc;  state: Exp;  lines: +1 -0
+* bounce messages need subjects
+
+revision 647.34
+date: 2005/06/06 23:50:01;  author: ajc;  state: Exp;  lines: +0 -1
+* Made some changes to the calendar/uuid logic to fix a bug that caused
+  duplicate entries for an event to appear in some situations
+
+revision 647.33
+date: 2005/06/03 22:26:03;  author: ajc;  state: Exp;  lines: +1 -0
+* When saving a vCard to a dedicated contacts room, always set the subject
+  to the name in the vCard.
+
+revision 647.32
+date: 2005/06/03 22:22:36;  author: ajc;  state: Exp;  lines: +0 -1
+* Removed old Aethera hacks
+
+revision 647.31
+date: 2005/06/03 04:01:27;  author: ajc;  state: Exp;  lines: +1 -0
+* Documentation update
+
+revision 647.30
+date: 2005/06/02 19:32:30;  author: ajc;  state: Exp;  lines: +0 -1
+* Set the correct flags in the target room after an IMAP COPY command.
+
+revision 647.29
+date: 2005/06/02 16:09:32;  author: ajc;  state: Exp;  lines: +1 -0
+* tools.c: generated uuid's no longer contain "{" and "}" characters.
+
+revision 647.28
+date: 2005/06/02 03:39:44;  author: ajc;  state: Exp;  lines: +0 -1
+* Do not turn the initial thread into a worker thread after initialization.
+  Its stack size is too small, which could cause crashes.
+
+revision 647.27
+date: 2005/06/01 22:32:57;  author: ajc;  state: Exp;  lines: +1 -0
+* Implemented a workaround for the IMAP "expungebob bug."  Specifically, since
+  we don't store the \Deleted flag persistently (and instead auto-expunge
+  folders when they are de-selected) we were not advertising \Deleted as
+  a PERMANENTFLAGS flag.  This was causing some clients (particularly
+  Thunderbird) to misbehave -- they were simply electing not to transmit the
+  flag at all.  As a workaround, \Deleted is now advertised as a
+  PERMANENTFLAGS flag, even though it technically isn't.
+
+revision 647.26
+date: 2005/06/01 18:31:50;  author: ajc;  state: Exp;  lines: +0 -1
+* serv_vandelay.c: updated the export format to include some of the config
+  items we missed.
+
+revision 647.25
+date: 2005/06/01 05:23:26;  author: ajc;  state: Exp;  lines: +1 -0
+* The full text indexer now runs in its own dedicated thread instead of
+  in the housekeeping thread.  The main indexer loop now also has the ability
+  to save its place and bail out early when it discovers that the server is
+  trying to shut down.  The main server loop will pthread_join() the indexer
+  thread and patiently wait for it to complete before exiting.  These changes
+  all put together mean that citserver will not hang when it is terminated
+  during an indexing operation.
+
+revision 647.24
+date: 2005/05/27 23:46:57;  author: ajc;  state: Exp;  lines: +0 -1
+* Removed OpenLDAP from Easy Install, because it was just too problematic.
+
+revision 647.23
+date: 2005/05/26 04:25:29;  author: ajc;  state: Exp;  lines: +1 -0
+* Applied xmlns and etag patches sent in by Johannes Schneider that improve
+  GroupDAV support.
+* Located and fixed a MIME Content-type bug that I accidentally created
+  while removing a temporary hack that was in place during the last KDE beta.
+
+revision 647.22
+date: 2005/05/23 19:33:56;  author: ajc;  state: Exp;  lines: +0 -1
+* database_sleepycat.c: cdb_truncate() no longer encapsulated in a
+  transaction.  Truncating a database in Citadel is always synchronous,
+  and with big tables (such as when the full text indexer is switched off
+  or reinitialized) it was running out of memory.
+
+revision 647.21
+date: 2005/05/23 19:31:52;  author: ajc;  state: Exp;  lines: +5 -1
+* test
+
  Revision 647.20  2005/05/23 19:26:04  ajc
  * Move the location of the "enable full text index" configuration item to
    a new location.  Reusing an old location was a stupid idea because old
 
  Revision 572.39  2000/09/04 03:59:15  ajc
  IO's changes:
- ----------------------------
  revision 572.4
  date: 2000/09/03 06:36:01;  author: error;  state: Exp;  lines: +5 -1
  Added HP/UX linker flag for dynamic modules to work
- ----------------------------
  revision 572.3
  date: 2000/09/01 06:50:00;  author: error;  state: Exp;  lines: +8 -1
  Changed to use integer macros from typesize.h for specific bit widths
- ----------------------------
 
  Revision 572.38  2000/09/01 20:17:08  ajc
  * msgbase.c: cmd_opna() - increase desired_section buffer from 64 to 256 bytes
@@ -6764,3 +7201,4 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
 
 Fri Jul 10 1998 Art Cancro <ajc@uncensored.citadel.org>
        * Initial CVS import
+