]> code.citadel.org Git - citadel.git/blobdiff - citadel/ChangeLog
* There is now a dedicated thread for doing database checkpoints.
[citadel.git] / citadel / ChangeLog
index 5c382d9e50c03b9013d9853e5407930855a8e8a7..a94045b0704e9859e5a8c6d4a3db030bbc651464 100644 (file)
@@ -1,4 +1,338 @@
- $Log$
+$Log$
+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
+   clients can inadvertently switch it on.
+
+ Revision 647.19  2005/05/23 14:07:39  ajc
+ * serv_imap.c: improve SELECT time by fetching the msglist directly out of
+   the database instead of doing a CtdlForEachMessage() loop.
+
+ Revision 647.18  2005/05/22 16:12:25  ajc
+ * Full text indexer is now switchable on/off
+
+ Revision 647.17  2005/05/20 20:02:50  ajc
+ * The IGnet map is now rewritten to disk only when it changes.
+ * When processing inbound network spool, ignore "." and ".." instead of
+   failing on them.
+
+ Revision 647.16  2005/05/20 16:22:33  ajc
+ Fixed some errors in the ChangeLog
+
+ Revision 647.15  2005/05/20 16:14:43  ajc
+ * Dramatically improved the time it takes to goto (or select) a room which
+   contains a very long and complex seen/unseen list.  Our test folder,
+   containing 359 new of 3162 messages, formerly took 22 seconds to select;
+   now it takes 1 to 2 seconds.
+
+ Revision 647.14  2005/05/20 02:37:17  ajc
+ * Performance-optimized the full text indexer.
+
+ Revision 647.13  2005/05/20 01:20:24  ajc
+ * Cull logs immediately after a successful db checkpoint instead of only
+   once every 24 hours.  During big db write operations (such as building
+   the full text index) they were just piling up too much.
+
+ Revision 647.12  2005/05/19 21:10:03  ajc
+ * Altered the full text indexer to output messages as text before running
+   through the wordbreaker.  This prevents the inclusion of encoded base64
+   strings in the index, and also allows legitimate text encoded inside
+   base64 to be decoded and then indexed.
+
+ Revision 647.11  2005/05/19 03:42:29  ajc
+ * Bound the full text index to IMAP search
+
+ Revision 647.10  2005/05/18 22:09:01  ajc
+ * Finished the indexer *and* deindexer!  The search API is now working
+   flawlessly too.  Now all we have to do is glue it to IMAP and other
+   user-facing functionality.  (The SRCH command is for testing only.)
+
+ Revision 647.9  2005/05/18 04:02:54  ajc
+ * Completed the "search for all of these words" functionality.  All we need
+   to do now is generalize its calling syntax so it can be called from the
+   IMAP service.
+
+ Revision 647.8  2005/05/18 03:22:27  ajc
+ * Finished the indexer and the first part of the search function...
+
+ Revision 647.7  2005/05/17 20:36:48  ajc
+ * Indexer is completed; also began work on the search function itself.
+   Still need to add de-indexing so deleted messages are removed from index.
+
+ Revision 647.6  2005/05/17 16:25:23  ajc
+ * Completed the wordbreaker for the full text indexer.
+
+ Revision 647.5  2005/05/17 04:04:46  ajc
+ * Began some glue code for the full text indexer.
+
+ Revision 647.4  2005/05/16 20:03:33  ajc
+ * definition of struct CitControl moved from citadel.h to server.h
+
+ Revision 647.3  2005/05/16 18:48:45  ajc
+ * Don't prompt the user for screen dimensions anymore.  Nobody is using
+   dialup terminals with arbitrary screen sizes anymore; nearly everyone (or
+   more likely, *absolutely* everyone) is now using networked displays which
+   can be automatically queried for their screen dimensions.  For now, we'll
+   keep the screen size properties in the database and in the protocol, but
+   the prompts have been commented out.
+
+ Revision 647.2  2005/05/16 18:25:56  ajc
+ * Avoid re-creating the default-named baseroom (Lobby) upon subsequent
+   startups after it's been renamed to something else.
+
+ Revision 647.1  2005/05/16 16:59:39  ajc
+ * Default expire policy is now 'manual' (no automatic expiry of messages
+   under any circumstances).  Implemented as per David Given's suggestion
+   that we should operate using the element of least surprise.
+
+ Revision 647.0  2005/05/12 16:54:10  ajc
+ * THIS IS 6.47
+
+ Revision 646.1  2005/05/12 16:53:18  ajc
+ * Fixed a minor bug discovered in SMTP at one site
+
+ Revision 646.0  2005/05/11 17:06:04  ajc
+ * THIS IS 6.46
+
+ Revision 645.20  2005/05/09 22:17:30  ajc
+ * Interactive room deletions are now deferred.  The server reconfigures the
+   room to be a mailbox owned by a nonexistent user and immediately returns
+   control back to the client.  Later, THE DREADED AUTO-PURGER will see the
+   dangling room and erase its contents.
+
+ Revision 645.19  2005/05/08 03:43:22  ajc
+ * Set the internal version number to 6.46 in preparation for a release
+
+ Revision 645.18  2005/05/02 20:52:42  ajc
+ * More IMAP optimizations, including the application of our latest "don't
+   fetch the message body" trick to ENVELOPE and INTERNALDATE fetches, to
+   make MS-Outbreak spread email viruses faster.
+
+ Revision 645.17  2005/05/02 16:09:52  ajc
+ * serv_imap.c: implemented the RFC 3501 suggestion that the initial
+   greeting, and the response to the LOGIN command, include an output
+   of the server's CAPABILITY string.  I find this to be gratuitous but
+   the UW IMAP server does it, so we are also doing it in order to better
+   interoperate with clients which make assumptions...
+
+ Revision 645.16  2005/04/29 22:02:20  ajc
+ * More IMAP tuning
+
+ Revision 645.15  2005/04/29 20:47:45  ajc
+ * More complex cache handling for IMAP fetch operations -- now we can
+   fetch/cache "just the headers" and remember whether we did so, so we can
+   burn the cache if the client then comes around and requests something
+   that requires the body.  Still needs some testing and tuning.
+
+ Revision 645.14  2005/04/29 16:50:03  ajc
+ * Significantly reduced the memory footprint of struct CitContext.
+
+ Revision 645.13  2005/04/29 16:26:00  ajc
+ * Removed the CtdlRedirectOutput() API, as we are no longer using it.
+   (Oh happy day; no more temp files!)
+
+ Revision 645.12  2005/04/27 19:22:57  ajc
+ * .ASG command: made better use of memory to avoid crashes
+
+ Revision 645.11  2005/04/23 04:38:26  ajc
+ * Substantially improved the appearance of mailing list digests.
+   Superfluous RFC822 headers no longer appear, and all messages are
+   converted to plain text using the preferred_formats framework.
+ * CtdlOutputPreLoadedMsg() -- fixed bug that caused Citadel protocol
+   headers to appear for MIME prefix, suffix, etc. even when do_proto is 0.
+
+ Revision 645.10  2005/04/23 02:04:11  ajc
+ * serv_imap.c: don't respond "OK DELETE completed" until after the room
+   delete operation actually completes.
+
+ Revision 645.9  2005/04/23 01:59:58  ajc
+ * Big performance optimization on CtdlSetSeen()
+
+ Revision 645.8  2005/04/22 04:26:34  ajc
+ * is_msg_is_mset() has been renamed to is_msg_in_sequence_set() because
+   "sequence set" is now the official terminology as of RFC3501.
+ * imap_set_seen_flags() no longer calls is_msg_in_sequence_set() for each
+   message and for each flag.  It's just too expensive.  We now parse each
+   flag's sequence set manually, marking the relevant messages as we go.
+
+ Revision 645.7  2005/04/22 00:52:03  ajc
+ * small fix to previous commit
+
+ Revision 645.6  2005/04/21 17:28:51  ajc
+ * msgbase.c: when committing a new message to the store, save its RFC822
+   length to the metadata record immediately.  This will eliminate the need
+   to calculate it later during a fetch operation.
+
+ Revision 645.5  2005/04/14 15:53:55  ajc
+ * Variable names, comments, documentation, etc...  removed the acronym 'BBS'
+   in places where functionality is not specific to the use of Citadel as
+   a BBS platform.
+
+ Revision 645.4  2005/04/13 20:42:44  ajc
+ * citmail.c: changes to citmail to make it usable as a /usr/sbin/sendmail
+   replacement; i.e. /bin/mail calls /usr/sbin/sendmail which sends mail
+   through Citadel.
+
+ Revision 645.3  2005/04/13 17:03:07  ajc
+ * Reverted database changes because the cull_logs function wasn't working
+   with the separate log directory.
+ * citmail.c: started some fixes to make it able to work from
+
+ Revision 645.2  2005/04/12 21:19:52  ajc
+ * 'make install' now installs citadel-openldap.schema
+
+ Revision 645.1  2005/04/11 16:31:57  ajc
+ * Database logs are now kept in the "data_logs" directory instead of in
+   the "data" directory.  If no "data_logs" directory is found, a symlink
+   to "data" will be created, in order to preserve access to any existing
+   log files -- a savvy sysadmin (or a storage management wizard script)
+   will know what to do if a different location is desirable.
+
+ Revision 645.0  2005/04/01 03:02:44  ajc
+ * THIS IS 6.45
+
+ Revision 641.34  2005/03/31 04:31:42  ajc
+ * Bumped the internal version number to 6.45 in preparation for
+   an upcoming release.
+
+ Revision 641.33  2005/03/24 22:52:40  ajc
+ * More extermination of the dreaded SIZ moby-buffers.
+
+ Revision 641.32  2005/03/24 22:13:56  ajc
+ * extract_token() now expects to be supplied with the size of the
+   destination string buffer.  This, along with the elimination of other
+   unbounded functions like strcpy(), will allow the removal of the
+   "all string buffers are of size SIZ" assumption (a process which I have
+   already begun), which will hopefully reduce stack consumption.
+
+ Revision 641.31  2005/03/22 21:53:48  ajc
+ * Oops, forgot to initialize some data structures...
+
+ Revision 641.30  2005/03/22 16:49:29  ajc
+ * Fixed a couple of memory allocation bugs
+
+ Revision 641.29  2005/03/20 22:55:58  ajc
+ * Logging to stderr no longer uses syslog()
+ * Reworked the way dead sessions are purged.  More efficient and more
+   reliable now.
+
  Revision 641.28  2005/03/18 21:40:36  ajc
  * Minor bugfix to previous checkin
 
  Revision 626.9  2004/10/12 02:17:49  ajc
  * Cleaned up some things that generated compiler warnings
  * crypto keys directory is now relative to the server's working directory,
-   not to the compiled-in BBSDIR
+   not to the compiled-in CTDLDIR
  * Re-ordered the security checks in CtdlAccessCheck()
 
  Revision 626.8  2004/10/06 21:23:21  error
 
  Revision 607.10  2003/06/28 05:12:56  ajc
  * Bump internal version number to 6.08
- * Use (-1) instead of BBSUID as the uid of user records which exist only
+ * Use (-1) instead of CTDLUID as the uid of user records which exist only
    in Citadel and not in the system password database.  serv_upgrade also
    changes this setting for ALL such users, the first time the server is run
    after upgrading to 6.08
 
  Revision 601.115  2003/01/17 04:36:04  ajc
  * whobbs.c: fix bad call to CtdlGetServInfo() so we can get our session ID
-   and the name of the BBS
+   and the name of the Citadel site
 
  Revision 601.114  2003/01/16 21:16:23  error
  * CtdlIPCGetMessages(): Fix message read failing on first attempt to read
    null string)
 
  Revision 573.4  2000/09/28 10:27:38  error
- * commands.c: changed sttybbs() to support HP/UX termios VMIN and VTIME
+ * commands.c: changed stty_ctdl() to support HP/UX termios VMIN and VTIME
 
  Revision 573.3  2000/09/24 22:01:45  ajc
- * ipc_c_tcp.c: don't hardcode BBSDIR path for unix domain sockets
+ * ipc_c_tcp.c: don't hardcode CTDLDIR path for unix domain sockets
 
  Revision 573.2  2000/09/21 04:16:44  ajc
  * Fixed logged_in_response() so it only displays responses during Citadel
 
  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
  * Fixed oopseth in control.c that might call fileno(NULL)
 
  Revision 572.36  2000/09/01 13:37:16  ajc
- * control.c: chown citadel.control to bbsuid when opening/creating as root
+ * control.c: chown citadel.control to ctdluid when opening/creating as root
 
  Revision 572.35  2000/09/01 03:55:44  ajc
  * Fixed a few more references to the deprecated uncnsrd.mt-kisco.ny.us name
  Revision 1.489  2000/03/16 17:58:54  smw
  Created a docs directory.
  Moved install.txt to docs.
- Added inetmailsetup.txt (BBS server side e-mail)
- Added inetmailsetupmx.txt (local mail AND bbs e-mail
+ Added inetmailsetup.txt (Citadel server side e-mail)
+ Added inetmailsetupmx.txt (local mail AND Citadel e-mail
  Added inetsiteconfig.txt (describes the .asi command)
  Added siteconfig.txt (describes .asg)
  Added chat.txt (describes changes and new chat functionality)
@@ -5110,7 +5443,7 @@ Revision 1.416  1999/11/17 04:15:05  ajc
 
 Revision 1.415  1999/11/15 03:17:39  ajc
 * Put lockfile in /tmp instead of in /var/lock.   The latter is not guaranteed
-  to exist, nor is it guaranteed to be writable by BBSUID
+  to exist, nor is it guaranteed to be writable by CTDLUID
   (Resolves bug #11 from the Bugzilla repository)
 
 Revision 1.414  1999/11/15 03:07:24  ajc
@@ -5568,7 +5901,7 @@ Wed May 19 19:30:28 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
 
 1999-05-11 Nathan Bryant <bryant@cs.usm.maine.edu>
        * chkpwd.c: fixed excessive paranoia; it used to refuse to run when
-         invoked by root and BBSUID != 0
+         invoked by root and CTDLUID != 0
        * Makefile.in: ignore errors while installing /etc/pam.d/citadel
 
 1999-04-27 Art Cancro <ajc@uncensored.citadel.org>
@@ -5696,7 +6029,7 @@ Sat Mar  6 01:55:55 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
 
 1999-03-04 Nathan Bryant <bryant@cs.usm.maine.edu>
        * config.c: error checking in put_config()
-       * setup.c: chgrp files to the login group associated with BBSUID
+       * setup.c: chgrp files to the login group associated with CTDLUID
        * sysdep.c: copyright 1987-1999; drop root perms; load modules and call
          master_startup() after dropping perms
 
@@ -5789,7 +6122,7 @@ Sat Jan 23 14:32:19 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
 Wed Jan 20 19:21:51 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
        * Added some more code to the unfinished MIME parser
        * Changed module loading path to simply "modules" because after calling
-         get_config(), the cwd is guaranteed to be the correct BBS directory.
+         get_config(), the cwd is guaranteed to be the correct Citadel directory.
 
 Tue Jan 19 21:28:29 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
        * Fixed a bug in the user editing command (client side)
@@ -6021,7 +6354,7 @@ Sun Nov  8 13:19:36 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
 
 Fri Nov  6 20:22:20 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
        * citadel.h (and related files): removed defunct parameters,
-         c_defent and c_msgbase (erase your test bbs)
+         c_defent and c_msgbase (erase your test system)
        * Implemented CONF server command for site-global configs
        * Shuffled yesno() and yesno_d() from routines.c to commands.c
        * commands.c: implemented boolprompt()
@@ -6041,7 +6374,7 @@ Wed Nov  4 10:53:13 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
 
 Mon Nov  2 12:59:03 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
        * setup.c: looks for 'citadel', 'bbs', or 'guest' in /etc/passwd to
-         try to get a default for bbsuid if it's currently set to 0
+         try to get a default for ctdluid if it's currently set to 0
        * citmail.c: changed usersupp.eternal to usersupp.usernum (why didn't
          it complain about this before?)
        * serv_upgrade.c: began writing an "export" command to do sidegrades
@@ -6524,7 +6857,7 @@ Sun Aug  2 21:09:09 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
 Sun Aug  2 18:52:05 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
        * config_defs.h: new file, contains external declarations from config.c
        * config.c: moved defs to config_defs.h, use PATH_MAX from <limits.h>
-         for bbs_home_directory
+         for ctdl_home_directory
        * mailinglist.c, support.c: include <string.h>
        * sysoputil.c: include <string.h>, <limits.h>, "config_defs.h", remove
          duplicated defs, replace gets() call with fgets()