From: Art Cancro Date: Fri, 3 Feb 2006 19:41:48 +0000 (+0000) Subject: Removed ChangeLog, we'll go with the svn log from now on. X-Git-Tag: v7.86~4238 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=aca56159843e6f1cfb1d1c7e7a1f94539c595877;p=citadel.git Removed ChangeLog, we'll go with the svn log from now on. --- diff --git a/citadel/ChangeLog b/citadel/ChangeLog deleted file mode 100644 index add527f4d..000000000 --- a/citadel/ChangeLog +++ /dev/null @@ -1,7525 +0,0 @@ -$Id$ - -Di Jan 31 23:32:38 CET 2006 dothebart - we need to use citadel setup in prerm, it doesn't exist anymore on postrm - -Di Jan 31 23:32:38 CET 2006 dothebart - chkpwd needs to be owned rooot:root, flags 04755 - -Tue Jan 31 10:39:42 EST 2006 ajc -* client_getln() now strips only the trailing CR/LF instead of "all trailing - nonprintables." The old behavior was mangling international character sets. - -Thu Jan 26 21:31:22 EST 2006 ajc -* Reject empty username for login attempts - -Thu Jan 26 15:38:20 EST 2006 ajc -* Allow client to supply EID in "notes" rooms. - -Mon Jan 23 22:22:18 EST 2006 ajc -* In WIKI rooms, clients can supply a message EUID - -Sat Jan 21 16:22:51 EST 2006 ajc -* Patch to the "m next message" function, submitted by matt - -Thu Jan 19 21:30:20 EST 2006 ajc -* Added VIEW_WIKI to the available view types. EUID indexing is "on" for - this view. Everything else will be done in WebCit. - -Thu Jan 19 17:49:29 EST 2006 ajc -* support SMTP-AUTH for outbound connection to smart-host - -Thu Jan 19 16:40:57 EST 2006 ajc -* Change to journaling code to include an Internet email address for local - recipients. - -Thu Jan 19 13:20:30 EST 2006 ajc -* Refactored the code that populates the session's knowledge of the user's - primary internet email address. We need it to be generic so that we can - do this for other users. - -Tue Jan 17 22:23:19 EST 2006 ajc -* Misc small fixes to the new host auth mode. - -Tue Jan 17 17:07:02 EST 2006 ajc -* REMOVED MIXED MODE AUTHENTICATION. - "autologin mode" is now system accounts ONLY. - -Sun Jan 15 22:29 MET 2006 dothebart -* calculate the directories in a central manner. - LHFS'ified installations may use multi-homed installations now too. - -Sun Jan 15 00:00:13 EST 2006 ajc -* citserver.c: patch submitted by matt to keep the client protocol from - getting out of sync following a .h? command. - -Sat Jan 14 23:38:44 EST 2006 ajc -* setup.c: remove "--backtitle" from calls to "dialog" because its - availability cannot be depended upon. - -Fri Jan 13 12:11:46 EST 2006 ajc -* THIS IS 6.70 - -Wed Jan 11 11:07:47 EST 2006 ajc -* Moved the "Content-Identifer" (sic) header out of the envelope journal - subpart headers and into the top-level headers. - -Tue Jan 10 22:26:00 EST 2006 ajc -* Added a per-user client option to always compose messages using the - external editor. -* Removed the "always reply with external editor" option from citadel.rc - because the per-user editor choice makes it superfluous. - -Tue Jan 10 17:20:30 EST 2006 ajc -* Added "Content-Identifer: ExJournalReport" to journal envelope headers - (Requested by SECCAS for compatibility with their archival service.) - (Yes, it is spelled incorrectly. The headers generated by Exchange are - spelled incorrectly and SECCAS requested that our headers look identical.) - -Mon Jan 9 17:23:39 EST 2006 ajc -* docs/journaling.html: added. - -Mon Jan 9 12:56:57 EST 2006 ajc -* Bumped the version number to 6.70 in preparation for a new release - -Thu Jan 5 17:38:39 EST 2006 ajc -* Adjustments to journal recipient list - -Thu Jan 5 16:08:47 EST 2006 ajc -* Implemented configuration settings for journaling. - -Wed Jan 4 22:05:49 EST 2006 ajc -* Journaling code is finished. Still needs configuration settings. - -Wed Jan 4 18:14:13 EST 2006 ajc -* Began implementation of Journaling and Envelope Journaling. - -Thu Dec 15 23:12:05 EST 2005 ajc -* Include a pre-fixed parsedate.c in the source tree in order to eliminate - the requirement for yacc or bison to build Citadel. Also, 'make clean' - no longer deletes parsedate.c - -Thu Dec 15 10:51:45 EST 2005 ajc -* newinstall.sh: be smarter about how wget and curl are used - -Thu Dec 15 00:03:53 EST 2005 ajc -* room_ops.c: when granting a room creator access to a new room, omit the - lgetuser/lputuser calls because they are not needed. Also, don't perform - access grant if no user is logged in. - -Sun Dec 11 23:04:31 EST 2005 ajc -* THIS IS 6.63 - -Fri Dec 9 14:14:37 EST 2005 ajc -* Updated the output of server GOTO command; new parameter indicates whether - the user is in his Trash folder. -* Updated internal version number to 6.63 so WebCit knows this is available. - -Mon Nov 28 10:45:21 EST 2005 ajc -* control.c: fixed a potential concurrency/race condition in - the get_new_[message|room|user]_number() functions. - -Sun Nov 27 21:20:27 EST 2005 ajc -* Eliminated the use of tmpnam() to shut up the compiler warnings. - -Mon Nov 21 16:59:43 CET 2005 dothebart -* add some script to wrap the debian package build that does some magic about - the versioning in the package and the citadel system -* Many fixups to the debian packages -* added Unixlogin Package - -Tue Nov 15 21:18:01 EST 2005 ajc -* THIS IS 6.62 - -Sun Nov 13 23:35:55 EST 2005 ajc -* serv_extensions.c: serv_upgrade_init() must be called prior to - serv_inetcfg_init() in order to ensure that citadel.control is created - at the correct time. (Patch sent in by Wilifried Goesgens.) - -Sat Nov 5 22:56:30 EST 2005 ajc -* More changes to batch mode setup - -Thu Nov 3 23:02:01 EST 2005 ajc -* Updated setup to allow more batch mode control of it; - see techdoc/package-setup.txt - -Sun Oct 30 23:03:49 EST 2005 ajc -* When logging to syslog is enabled, SMTP transactions are now logged to - LOG_MAIL as well as whatever the normal facility is, in a format - similar to what conventional MTA's use. Resolves bugzilla issue #153. - -Sun Oct 30 22:22:00 EST 2005 ajc -* syslog messages are now sent to the desired facility rather than always - going to LOG_DAEMON. There was a command line parsing bug. - -Sun Oct 30 21:17:57 EST 2005 ajc -* Log messages posted to the Aide> room indicating activity such as room - create/delete/edit operations now use "Room Name" rather than Room Name> - because users unfamiliar with the text-mode Citadel tradition may think - that the latter syntax is an output error. Resolves bugzilla issue #166. - -Thu Oct 27 16:56:09 EDT 2005 ajc -* THIS IS 6.61 - -Thu Oct 27 16:44:36 EDT 2005 ajc -* Allow "host:port" syntax when specifying an outbound SMTP smart-host - -Wed Oct 26 13:22:02 EDT 2005 ajc -* msgbase.c: Yet Another Fix to the handling of embedded message/rfc822 - -Tue Oct 25 17:29:12 EDT 2005 ajc -* msgbase.c: when a summary mode message list is requested, and the room - contains a pointer to a message which does not exist (this normally should - not happen), return an empty message summary line instead of crashing. -* removed the remaining vestiges of the libtool stuff in .c and .y files - -Mon Oct 24 22:52:33 EDT 2005 ajc -* Every user gets a Trash folder. Clients can also use _TRASH_ - -Mon Oct 24 11:19:47 EDT 2005 ajc -* serv_listsub.c: web subscription/confirmation address no longer has http:// - prepended to it. This means that clients now must supply that. This was - done because we can no longer assume http -- it was breaking on https. - -Sun Oct 23 23:28:23 EDT 2005 ajc -* "day start" and "day end" preferences for calendar day view. - -Sun Oct 23 01:37:00 EDT 2005 ajc -* ft_wordbreaker.c: don't clobber memory when reading in tokens bigger - than the token word buffer. - -Sat Oct 22 22:55:49 EDT 2005 ajc -* Set a maximum number of messages which may be indexed before we force - a cache flush to disk. Currently 2500. - -Sat Oct 22 00:48:47 EDT 2005 ajc -* msgbase.c: allow multipart/alternative part-swapping only at the top - level, because if we recursed into another one then it's going to stomp - all over our preferred part. (even more uuuuunnnhhhhh...) - -Sat Oct 22 00:46:52 EDT 2005 ajc -* mime_parser.c: recurse into message/rfc822 parts as if they were - multipart, because we may need to extract attachments from the embedded - submessage, etc. (uuuuunnnhhhh...) - -Fri Oct 21 15:12:45 EDT 2005 ajc -* MSG4 (and CtdlOutputMsg() as well) now accepts an optional MIME part - specifier, allowing the client to fetch an encapsulated message - attached as message/rfc822 instead of the top-level message. - -Thu Oct 20 17:55:12 EDT 2005 ajc -* ft_wordbreaker.c: added a list of "noise words" to ignore. This is - admittedly EN/US specific, so if anyone wants to contribute noise words - for other languages... - -Wed Oct 19 22:55:19 EDT 2005 ajc -* serv_calendar.c: registered a fixed output hook for text/calendar. - -Wed Oct 19 13:30:16 EDT 2005 ajc -* New type of server hook: CtdlRegisterFixedOutputHook(). This is for - extending the fixed_output() function for arbitrary new MIME types. The - usefulness of this for end users is limited, since no clients use MSG0 - anymore. The real purpose of converting various MIME types to text is to - make them visible to the full text indexer. -* serv_vcard.c: registered a fixed output hook for text/x-vcard. - -Tue Oct 18 22:46:41 EDT 2005 Art Cancro -* msgbase.c, messages.c, html.c: conversion of HTML to plain text now accepts - a maximum source length. MSG0 output of multipart messages was running - right past the end of the HTML and into, for example, a subsequent base64 - encoded attachment, which was then output -- or worse, indexed. -* Since everyone's fulltext indices probably contain a lot of base64 junk, the - FT_WORDBREAKER_ID has been bumped. This will force an index rebuild on any - sites that are upgraded. - -Tue Oct 18 13:11:38 EDT 2005 Art Cancro -* serv_fulltext.c: index records are now cached in memory. This - significantly speeds up indexing of an existing message base. We - flush the cache to disk when finished. - -Mon Oct 17 22:10:57 EDT 2005 Art Cancro -* Easy Install now uses db-4.3.29 - -Mon Oct 17 10:59:55 EDT 2005 Art Cancro -* THIS IS 6.60 - -Sun Oct 16 00:23:19 EDT 2005 Art Cancro -* msgbase.c: alias() now handles addresses such as - Display Name - ...when user@host.org resolves to a user on the local Citadel server - or network, without trying to loop out and back in again via SMTP. - -Sun Oct 16 00:11:16 EDT 2005 Art Cancro -* Handle email addresses with commas inside quotes, such as - "Cancro, Art" - ...without thinking that the comma is a separator between addresses - -Thu Oct 13 00:02:23 EDT 2005 Art Cancro -* citadel.c: don't crash when <.R>ead serlist results in an empty - list. The ClientIPC API returns NULL if the search returned no results, - which we have to handle. This resolves Bugzilla issue #154. - -Wed Oct 12 23:30:18 EDT 2005 Art Cancro -* newinstall.sh: once again, prefer wget over curl. At least one user - reported a problem where the -O option to curl was not available. Also - changed -O to --remote-name in the hope that this works better. - -Wed Oct 12 17:32:05 EDT 2005 Art Cancro -* imap_search.c: when fulltext index is enabled, avoid doing a slow search - on each message when BODY is requested. Messages are already qualified - by the indexer. - -Wed Oct 12 10:30:22 EDT 2005 Art Cancro -* html.c: added support for some additional character entity references. - -Tue Oct 11 23:13:53 EDT 2005 Art Cancro -* Default for autologin is now DISABLED! If you are upgrading an existing - site and are using this function, you must --enable-autologin -* newinstall.sh: --enable-autologin if upgrading an existing installation - that we think is set to autologin. It checks for chkpwd to find out. - -Tue Oct 11 12:55:43 EDT 2005 Art Cancro -* The "set the flags" portion of IMAP COPY now sets the flags of all messages - in bulk, instead of one message at a time. Big performance boost. - -Tue Oct 11 01:09:59 EDT 2005 Art Cancro -* Fixed a problem with replication. I believe we've got it now but it needs - another round of testing. - -Tue Oct 11 00:45:02 EDT 2005 Art Cancro -* Replication checks and EUID indexing are now only enabled for rooms whose - default view is set to a groupware type of room. This speeds up the saving - and moving of messages for message and mail rooms. - -Mon Oct 10 00:22:49 EDT 2005 Art Cancro -* IMAP STORE now calls CtdlSetSeen() with an entire list of message numbers. - -Sun Oct 9 22:37:44 EDT 2005 Art Cancro - * CtdlSetSeen() now accepts a list of message numbers instead of just one. - -Sat Oct 8 18:40:50 EDT 2005 Art Cancro -* Replaced the various "socket is broken" messages with the message - "Client disconnected: ending session." The previous messages were concerning - some site operators that there might have been something wrong with - the system. (Bugzilla #164) - -Fri Oct 7 23:07:38 EDT 2005 Art Cancro -* Makefile.in: change "CVS" references to ".svn" to avoid errors - during install. - -Revision 655.25 2005/10/06 19:47:00 ajc -* Change to EUID command syntax: returned msg num is now guaranteed to - exist. - -Revision 655.24 2005/10/06 19:16:31 ajc -* Added the EUID command to search for a message by EUID - -Revision 655.23 2005/10/06 17:14:41 ajc -* newinstall.sh: prefer curl over wget - -Revision 655.22 2005/10/06 04:09:19 ajc -* THE DREADED AUTO-PURGER now purges euid index records which point to - messages that no longer exist. - -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 , 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 6.56 -* 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

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 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 - 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 641.27 2005/03/18 21:25:06 ajc - * Finished removing all the "dynamic session data" stuff in order to - boost reliability, improve performance, and reduce complexity. - - Revision 641.26 2005/03/12 05:42:35 ajc - * Trying to fix a memory bug somewhere. - * While working on the above, noticed that the way we did the per-session - dynamic symbols loses badly in terms of performance. Began moving to - a less modular but better performing way of doing the same. - - Revision 641.25 2005/03/10 03:36:25 ajc - * Silenced a compiler warning - * Our graceful cleanup handler no longer gracefully cleans up after - receiving SIGSEGV or its friends. Unfortunately we need the core dump. - - Revision 641.24 2005/03/10 03:11:07 ajc - * Altered the algorithm by which the doubly-linked session list is - amended and culled. Decided that performance is better than cute - session numbers (which we don't display to the users anymore anyway) - and we now assign a session number (CC->cs_pid) starting with 1 when the - server starts and incrementing indefinitely. Need to test this more. - - Revision 641.23 2005/03/07 04:08:07 ajc - * vcard.c: realloc fix - - Revision 641.22 2005/03/05 22:31:01 ajc - * Allow the use of chained certificates for crypto - - Revision 641.21 2005/03/04 20:04:00 ajc - * IMAP FETCH RFC822.SIZE now honors the cached rfc822 size in each - message's metadata, using it if present and storing it for next time - otherwise. - * Fixed bug in POP3 server that was causing it to fail to store the - correct RFC822 size in metadata. Fortunately it was failing in a way - that merely affected performance rather than corrupting the data on - existing installations. - - Revision 641.20 2005/03/04 02:24:31 ajc - * SMTP: only offer TLS on the MSA port (587), not on the MTA port (25). - There seem to be some other MTA's out there that make things go haywire - when TLS is offered. - - Revision 641.19 2005/03/04 02:18:46 ajc - * config.c: default setting for "maxmsglen" is now 10 megabytes, not INT_MAX - - Revision 641.18 2005/03/03 18:10:27 ajc - * sysdep.c: change the algorithm for dynamically expanding the redirect - buffer's size. Large writes were overflowing it. - - Revision 641.17 2005/03/03 17:56:53 ajc - * Finished removing the use of temp files in IMAP. - WARNING: DON'T USE THIS ON A PRODUCTION SYSTEM, IT HAS NOT BEEN - FULLY TESTED WITH VARIOUS IMAP CLIENTS YET! - - Revision 641.16 2005/03/03 05:14:06 ajc - * Realized that memreadline() does NOT return a NULL pointer when it hits - a null character, and adjusted all the code I wrote yesterday under that - assumption. - * Removed the use of a temp file for IMAP FETCH BODYSTRUCTURE on a - non-RFC822 message. - - Revision 641.15 2005/03/02 17:33:03 ajc - * msgbase.c: fixed a buffer overflow error - * imap_fetch.c, serv_imap.c, serv_imap.h: migrated imap_fetch_rfc822() to - use the new in-memory message buffering. BODY comes next... - - Revision 641.14 2005/03/02 03:35:18 ajc - * serv_smtp.c: removed use of temporary file for SMTP transmission - - Revision 641.13 2005/03/02 03:01:18 ajc - * serv_spam.c: use redirect_buffer instead of redirect_sock - * Removed redirect_sock from the API. redirect_fp is next! - - Revision 641.12 2005/03/02 02:42:06 ajc - * Finished moving the POP3 server to the new redirect_buffer semantics - - Revision 641.11 2005/03/02 02:16:10 ajc - * Toned down some of the hostility in the code's comments :) - - Revision 641.10 2005/03/01 22:03:35 ajc - * Began implementation of a third RedirectOutput mode -- one which writes - to a memory buffer. This will replace the other two. - * serv_pop3.c: began migration to the new redirect mode. - - Revision 641.9 2005/03/01 04:24:52 ajc - * When saving an RFC822 message, use a less expensive algorithm to - search for the Content Type - - Revision 641.8 2005/02/28 20:32:50 ajc - * IMAP APPEND command now accepts the message text using one big - client_read() call instead of a bunch of smaller ones. - - Revision 641.7 2005/02/28 02:25:29 ajc - * added pid file writing - - Revision 641.6 2005/02/27 15:36:28 ajc - * database_cleanup.sh: look for /usr/local/ctdlsupport/bin/db_dump and - prepend that directory to the PATH if found. - * database_cleanup.sh: add more warnings about how dangerous this tool is - - Revision 641.5 2005/02/26 16:27:54 ajc - * setup.c: added more items to the list of non-Citadel MTA's which can be - disabled during setup. - - Revision 641.4 2005/02/25 17:59:12 ajc - * Ok, now we accept *all* the flags transmitted during an IMAP APPEND, not - just the first one. - - Revision 641.3 2005/02/25 05:51:52 ajc - * Started working on a fix for the IMAP APPEND "flags" thing. It works - but only for the first flag sent. Will finish tomorrow. - - Revision 641.2 2005/02/24 18:14:24 ajc - * Removed excessive trace messages that were slowing the server down - * Prepared for handling of setting flags in IMAP APPEND - - Revision 641.1 2005/02/23 04:24:57 ajc - * When auto-creating Mail>, Sent Items>, etc... set view to VIEW_MAILBOX - - Revision 641.0 2005/02/21 21:59:33 ajc - * THIS IS 6.41 - - Revision 640.14 2005/02/21 21:40:28 ajc - * Updated internal version number to 6.41 - - Revision 640.13 2005/02/20 21:10:59 ajc - * Repaired access control problem in IMAP SUBSCRIBE - - Revision 640.12 2005/02/17 16:13:59 ajc - * Removed "Log Hooks." This enabled the removal of a buf[SIZ] in lprintf, - where it can potentially blow lots of stacks. - - Revision 640.11 2005/02/17 03:52:16 ajc - * setup.c: clarify some of the messages - - Revision 640.10 2005/02/16 19:03:38 ajc - * master_cleanup() now passes along an exit code from its caller to the OS. - - Revision 640.9 2005/02/16 18:48:39 ajc - * Try to reach our cleanup routine when SIGSEGV is caught. Hopefully - we'll get there and we can close the databases cleanly. - - Revision 640.8 2005/02/16 17:37:16 ajc - * Be more aggressive about shutting down when told to. Getting the - databases closed is the highest priority. - - Revision 640.7 2005/02/16 04:08:42 ajc - * newinstall.sh: put the checksum files server-side to avoid - unnecessary downloads - - Revision 640.6 2005/02/16 03:02:28 ajc - * Applied patches submitted by Kevin Kilbride for TCP_CORK and for - turning CitContext into a doubly-linked list. - - Revision 640.5 2005/02/13 04:55:18 ajc - * Did the server port hooks etc. for SSL listeners. For some reason it - doesn't work. :( - - Revision 640.4 2005/02/13 04:23:59 ajc - * Added server and client configuration settings to specify port - numbers for IMAPS, POP3S, and SMTPS (SSL-encrypted services that start - SSL upon connect instead of using a STARTTLS command). These services - are not yet implemented, only the port number settings are. - - Revision 640.3 2005/02/13 03:39:21 ajc - * IMAP flag twiddling with STORE was broken because of the \Flag leading - backslash getting stripped out. Located problem and worked around. Said - many nasty things about IMAP's gratuitous complexity, particularly the - moronic idea to put backslashes in a place where they were completely - unnecessary. - - Revision 640.2 2005/02/12 16:58:36 ajc - * Changes to lprintf() and start_daemon() submitted by Kevin Kilbride - for more "true unix" approaches to each. - - Revision 640.1 2005/02/11 03:51:51 ajc - * <.A>ide ser-edit is now <.A>ide ser dit - * Added a new <.A>ide ser elete command, because it is unintuitive - to tell people "delete a user by setting their access level to 0" - - Revision 640.0 2005/02/10 16:52:18 ajc - * THIS IS 6.40 - - Revision 630.16 2005/02/10 16:52:03 ajc - * Updated documentation etc. for 6.40 release (and for 2005 copyright) - - Revision 630.15 2005/02/08 03:33:49 ajc - * client_gets(char *buf) has been replaced by - client_getln(char *buf, int maxbytes) - - Revision 630.14 2005/02/05 22:56:31 ajc - * More reliable handling of conversion of vCard UID to Citadel Extended ID - (necessary for GroupDAV URL's to be generated properly in WebCit) - - Revision 630.13 2005/02/05 04:13:34 ajc - * msgbase.c: replication checks for Exclusive-ID no longer cause a save - operation to fail when the existing message is newer. This was causing - groupware clients to go haywire because of datestamps being set to - event start times, etc. - - Revision 630.12 2005/02/03 04:36:56 ajc - * serv_calendar.c: beforesave hook now looks for the UID inside nested - VTODO components, in addition to VCALENDAR components. - - Revision 630.11 2005/02/01 23:11:46 ajc - * new ENT0 syntax now also outputs EUID - - Revision 630.10 2005/02/01 19:46:12 ajc - * Added an SMTP-like calling syntax to ENT0 to allow a confirmation message - to be sent back to the client after a message is transmitted. - - Revision 630.9 2005/02/01 03:33:22 ajc - * Changed CtdlRoomAccess() calling syntax in order to return both - the access bits and the current view - * All "list rooms" commands now return the view for each room. - - Revision 630.8 2005/01/27 22:05:21 ajc - * Renamed the "Extended message ID" field to "Exclusive message ID" - (nothing changes except documentation and internal variable names) - - Revision 630.7 2005/01/27 21:59:22 ajc - * serv_vcard.c: changed the logic a bit. When saving a vCard to a user's - "My Citadel Config" room, force-feed the vCard a site-compliant UID and - FBURL. When saving a vCard to *any* address book room, set the Citadel - EUID to the vCard UID. - - Revision 630.6 2005/01/27 17:33:52 ajc - * The before-save hook in serv_calendar.c now runs for any room with a - view of VIEW_CALENDAR or VIEW_TASKS, not just Calendar> and Tasks>. - - Revision 630.5 2005/01/26 23:04:22 ajc - * When saving calendar items, if the vCalendar object does not contain - a UUID, generate one on the fly. In order to support GroupDAV we need - persistent URL's, and I plan to base those on the UUID. - - Revision 630.4 2005/01/25 20:58:07 ajc - * serv_pop3.c: minor change to logging output - - Revision 630.3 2005/01/25 15:02:12 error - * Updated SSL/TLS code to actually use the TLS cipher suites - - Revision 630.2 2005/01/22 04:15:32 ajc - * Increased per-thread stack size again, this time to 1MB - - Revision 630.1 2005/01/22 03:14:20 ajc - * Each message's metadata now has the ability to cache the length of - the message when output in RFC822 format. The POP3 service populates - this field the first time it sees each message, and fetches the length - from cache on subsequent visits. - * Because of this optimization, we no longer need to keep the entire POP3 - mailbox stored in open temp files during a session. Each message is - opened again when it is fetched. - - Revision 630.0 2005/01/21 20:25:08 ajc - * THIS IS 6.30 - - Revision 629.10 2005/01/21 20:24:34 ajc - * Internal version number is now 6.30 - - Revision 629.9 2005/01/21 20:20:06 ajc - * Increase per-thread stack size from 128k to 256k. This fixes the - crashing IMAP service on 64-bit Linux. - - Revision 629.8 2005/01/19 20:49:46 ajc - * Minor fixenbugs after running with Valgrind - - Revision 629.7 2005/01/19 03:03:36 ajc - * Minor and/or cosmetic changes made during x64 troubleshooting - - Revision 629.6 2005/01/18 17:58:38 ajc - * Trying to fix IMAP brokenness on Linux-x64. Committing changes even - though there are a lot of annoying trace messages in this tree, because - I did clean up a bunch of stuff here and there. - - Revision 629.5 2005/01/14 17:08:30 ajc - * Applied a configure script fix sent in by David Given for more reliable - detection of the installed libical version. - - Revision 629.4 2005/01/13 05:43:16 ajc - * Initial support for having a room participate in a remote mailing list - - Revision 629.3 2005/01/09 03:20:41 ajc - * Applied a patch sent in by David Given for handling of the "&" character - plus Unicode characters in IMAP folder names. - - Revision 629.2 2005/01/07 15:56:14 ajc - * msgbase.c: fixed an incorrect variable name in the bigmsg-handler - - Revision 629.1 2005/01/07 03:05:04 ajc - * serv_imap.c: fail with a "BAD" error response if the LOGIN command is - called with the wrong number of parameters (otherwise it goes boom) - * user_ops.c: CtdlLoginExistingUser() was calling strproc() on the supplied - name, which killed the ability to log in with your email address (because - it stripped the @ symbol). Changed it to striplt() instead. - - Revision 629.0 2005/01/04 03:57:32 ajc - * THIS IS 6.29 - - Revision 628.2 2005/01/04 03:57:21 ajc - * newinstall.sh: save tarball checksums after successful install of each - component; skip subsequent installs for components which have not changed - * Bumped internal version number to 6.29 - - Revision 628.1 2005/01/04 02:06:28 ajc - * sysdep.c: if we have enough information to do so, adjust maximum file - descriptors to avoid exceeding FD_SETSIZE. This is done to circumvent - a rare but specific vulnerability. - - Revision 628.0 2004/12/14 03:16:19 ajc - * THIS IS 6.28 - - Revision 627.12 2004/12/12 17:33:24 error - * sysdep.c: lprintf(): Bug 124: Fix remote format string vulnerability - (thanks to coki@nosystem.com.ar) - - Revision 627.11 2004/12/01 16:28:58 ajc - * tools.c: don't crash when striplt() is called with z zero length string - - Revision 627.10 2004/11/26 22:44:08 ajc - * Added a sooper-seekrit way to spool network messages to a remote node - where the room has a different name - * Internal version number is now 6.28, so that WebCit doesn't b0rk the - netconfigs of older Citadel servers - - Revision 627.9 2004/11/19 02:31:56 ajc - * Added developer ID # 177 - - Revision 627.8 2004/11/16 23:04:18 ajc - * setup.c: added "dovecot" to the list of "other email services" which - the setup program can helpfully disable for you. :) - - Revision 627.7 2004/11/12 03:51:42 ajc - * serv_expire.c: auto-purge any user whose user number is less than 1. - - Revision 627.6 2004/11/11 16:21:12 nbryant - * database_sleepycat.c: make cdb_rewind enforce that cursors must be - closed before they can be opened again. (prevents cursors being held - open for longer than they should be and holding database locks.) - - Revision 627.5 2004/11/11 14:56:16 ajc - * Further adjustments to ldap setup - - Revision 627.4 2004/11/11 04:38:36 ajc - * setup.c: fix bug that kept creating new inittab entries for slapd - - Revision 627.3 2004/11/10 21:33:47 ajc - * Go to Berkeley DB 4.3.21 in Easy Install - - Revision 627.2 2004/11/10 19:59:23 nbryant - * configure.ac: detect /usr/local/BerkeleyDB.4.3 - - Revision 627.1 2004/11/10 03:03:14 ajc - * Added a few wonderful linebreaks to >80 column lines - - Revision 627.0 2004/11/03 20:18:58 ajc - * THIS IS 6.27 - - Revision 626.18 2004/11/03 20:18:46 ajc - * Internal version number is now 6.27 - - Revision 626.17 2004/11/02 22:59:20 ajc - * setup.c: fixed an incorrect variable name that was causing inittab - twiddling to malfunction. - - Revision 626.16 2004/11/02 02:47:10 ajc - * Easy Install: put the log directly in /tmp instead of in the build - directory so it doesn't get deleted on a failed install. - - Revision 626.15 2004/10/23 14:33:44 ajc - * serv_notes.c: finished. When saving a message in a room whose view - is set to "notes," look for an X-KOrg-Note-Id: header, and if one is - present, set both the Extended ID and the Subject to that. This is for - Aethera compatibility. - - Revision 626.14 2004/10/22 14:49:25 ajc - * newinstall.sh: Be more careful about locating make/gmake on the host - system. Also now tries to use curl if wget is not available. - - Revision 626.13 2004/10/22 02:53:25 ajc - * serv_notes.c: added skeleton module - * serv_newuser.c: corrected internal comment - * techdoc: renamed session.txt to protocol.txt because it really isn't - a session layer protocol, it's more of an application layer protocol. - - Revision 626.12 2004/10/13 02:11:00 ajc - * Repaired a completely broken <;Z>ap floor command. - - Revision 626.11 2004/10/12 11:24:42 ajc - * Tracing a problem with ;Z command - - Revision 626.10 2004/10/12 02:48:11 ajc - * Reworked shutdown sequence to avoid thread deadlock - - 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 CTDLDIR - * Re-ordered the security checks in CtdlAccessCheck() - - Revision 626.8 2004/10/06 21:23:21 error - * Fixup a few more compiler warnings from icc - - Revision 626.7 2004/10/05 01:44:20 ajc - * Changed a bunch of localtime() calls to localtime_r(), for great justice. - - Revision 626.6 2004/10/04 21:40:29 error - * configure.ac: Add CFLAGS for icc Intel Compiler - - Revision 626.5 2004/10/04 21:39:35 error - * Fix a couple of minor compiler warnings - - Revision 626.4 2004/10/03 04:25:23 ajc - * Removed some vestiges - - Revision 626.3 2004/10/03 04:11:48 ajc - * sysdep.c: in the main server loop, when time_to_die is detected, return - immediately instead of falling through to the end of the function. - - Revision 626.2 2004/10/03 03:57:32 ajc - * Added pthread_attr_destroy() in the appropriate location (thanks fleeb!) - - Revision 626.1 2004/10/01 15:58:08 ajc - * Configure "notes" view and auto-create Notes> room - - Revision 626.0 2004/09/28 16:11:16 ajc - * THIS IS 6.26 - - Revision 625.33 2004/09/28 16:09:58 ajc - * Update documentation and config files for 6.26 release - - Revision 625.32 2004/09/28 02:18:12 ajc - * Improve output of RECENT flag in IMAP - - Revision 625.31 2004/09/23 03:02:31 ajc - * MyContext() no longer declared INLINE - - Revision 625.30 2004/09/23 02:54:46 ajc - * in MyContext(), reduced the number of calls to pthread_getspecific() - from two to one - - Revision 625.29 2004/09/23 00:22:18 error - * rooms.c: create_floor(): Fix the check for whether a floor name was given - - Revision 625.28 2004/09/21 02:09:30 ajc - * Tweaks to above - - Revision 625.27 2004/09/21 01:43:23 ajc - * imap_search.c: when search criteria permit, do not fetch messages. - - Revision 625.26 2004/09/17 16:54:13 ajc - * Updated documentation to include information about setting up MSA 587 port. - - Revision 625.25 2004/09/17 04:14:18 ajc - * serv_network.c: added a missing \n in log output - - Revision 625.24 2004/09/17 03:54:47 ajc - * citadel-openldap.schema: replaced. Dunno why it was missing. - * serv_calendar.c: fixed a return with no value for a function returning - int; this was causing a before-save hook to abandon messages - - Revision 625.23 2004/09/16 01:46:40 ajc - * CRE8 command: allow setting default view during room creation - - Revision 625.22 2004/09/15 03:02:47 ajc - * Add an SMTP MSA listener (separate port, requires auth) - - Revision 625.21 2004/09/13 15:51:59 ajc - * newinstall.sh: updated from the working version at easyinstall.citadel.org - - Revision 625.20 2004/09/11 03:13:04 error - * Remove calls to the broken flush_output() while I try to figure out what's - wrong with it. Replaced with unbuffer_output() which does work. - - Revision 625.19 2004/09/10 02:54:26 ajc - * Added flush_output() calls to IMAP modules. (Do we need them? Are we - buffering IMAP output? Should we?) - - Revision 625.18 2004/09/09 02:26:45 ajc - * Completed (I think) the 'dialog' mode in setup - - Revision 625.17 2004/09/08 04:16:07 ajc - * setup.c: initial changes to use a 'dialog' based setup (yes, it's back, - because the b0rken version is now long gone and it appears to be more - portable than newt) - - Revision 625.16 2004/09/07 04:15:35 error - * msgbase.c: cmd_msgs(): Call unbuffer_output() when a message list is - requested using a search template. - - Revision 625.15 2004/09/06 01:11:35 error - * msgbase.c: cmd_ent0(): Fix another unbuffer_output() - - Revision 625.14 2004/09/06 00:59:01 error - * file_ops.c: cmd_writ(): Add an unbuffer_output() that I forgot. - - Revision 625.13 2004/09/05 17:39:09 error - * Buffered output needs to be flushed in several places. Added calls to - flush_output(). (basically anywhere where we send a response and then - wait for the client, except chat, where we turned it off entirely) - - Revision 625.12 2004/09/05 15:41:45 error - * Network optimizations - buffer output server-side for better network - utilization; one client-side optimization - - Revision 625.11 2004/09/05 15:20:41 error - * sysdep.c: unbuffer_output(): Split the writing part to a new function - flush_output() for more precise control - - Revision 625.10 2004/09/03 04:34:30 ajc - * setup.c: when creating an inittab entry for slapd, use "-d 0" instead - of "-d 1" to avoid spewing messages to the console, while still remaining - in the foreground. - - Revision 625.9 2004/09/03 04:19:17 ajc - * setup.c: Changes to inittab-twiddling to make it a bit more reliable - * ipc_c_tcp.c: don't send SIGHUP to children; it makes them very angry - - Revision 625.8 2004/09/01 15:34:52 ajc - * serv_smtp.c: fix build error on hosts with no SSL support - - Revision 625.7 2004/08/31 17:31:55 ajc - * Calendar: store UUID+comment instead of comment as Subject (this was done - at the request of Eugen Constantinescu for Aethera optimizations) - - Revision 625.6 2004/08/30 02:45:33 ajc - * setup.c: when running in Newt mode, make the size of the dialogs dynamic - to the size of the text in them. - - Revision 625.5 2004/08/29 15:18:41 error - * newinstall.sh: fix detection of gmake/make - - Revision 625.4 2004/08/28 14:21:25 error - * Change the logging level of some messages and add a couple of new ones to - show when a network node is connecting. - - Revision 625.3 2004/08/28 02:42:44 ajc - * setup.c: when run from the Easy Install script, auto-configure slapd - and put it into /etc/inittab - - Revision 625.2 2004/08/28 01:56:38 ajc - * Generalize some of the inittab-tweaking stuff so that we can use it - for slapd, too. - - Revision 625.1 2004/08/27 21:39:33 ajc - * Fleshed out contemplate_ldap() a bit - - Revision 625.0 2004/08/27 21:06:30 ajc - * THIS IS 6.25 - - Revision 624.8 2004/08/27 20:16:51 ajc - * Update internal version number to 6.25 - - Revision 624.7 2004/08/26 04:13:55 ajc - * newinstall.sh: updated with some new goodies - * setup.c: when run from Easy Install, offer to set up LDAP. (Not finished.) - - Revision 624.6 2004/08/23 21:41:26 error - * html.c: Try to something sane with lists - - Revision 624.5 2004/08/23 21:40:04 error - * No longer accept MD5 as a hash when encrypting - - Revision 624.4 2004/08/23 21:34:28 error - * serv_network.c: Suppress Invalid node name for "." and ".." - - Revision 624.3 2004/08/16 04:19:14 ajc - * newinstall.sh: more intelligent auto-run of setup programs - * setup.c: change inittab question to be more newbie-friendly - - Revision 624.2 2004/08/15 05:04:36 ajc - * newinstall.sh: various tweaks to make it more reliable - - Revision 624.1 2004/08/14 03:59:43 ajc - * newinstall.sh: shuffled around the environment variables to prevent - "C compiler cannot generate executables" error. - - Revision 624.0 2004/08/12 13:47:47 ajc - * THIS IS 6.24 - - Revision 623.16 2004/08/11 04:09:14 ajc - * Replaced all "Citadel/UX" references with "Citadel" - - Revision 623.15 2004/08/05 03:19:48 ajc - * html.c: handle the

tag properly - - Revision 623.14 2004/08/05 02:02:33 ajc - * CtdlHostAlias() now accepts "localhost" as a localhost address. - * working_ignetcfg is now loaded during incoming NETP commands, which - should theoretically take care of the missing config problem. - - Revision 623.13 2004/08/02 02:51:03 ajc - * utilsmenu: removed. Because most of the admin functions have been moved - into Citadel proper, what's left of this menu is now pathetic. - * techdoc/build.txt: removed verbage that referred to the old build system. - - Revision 623.12 2004/07/30 03:18:21 ajc - * user_ops.c: limit the length of the name which can be supplied - to CtdlLoginExistingUser() to avoid crashing it. - - Revision 623.11 2004/07/28 04:09:58 ajc - * serv_network.c: we had ignetcfg and working_ignetcfg, but it turns out we - no longer use the former anywhere, so it has been removed (along with the - aftersave hook that detected changes) - - Revision 623.10 2004/07/25 16:20:04 error - * msgbase.c: CtdlCheckInternetMailPermission(): Do not allow twits to send - Internet mail (they shouldn't be sending ANYTHING at all) - - Revision 623.9 2004/07/25 16:18:43 error - * citadel.spec: update version number - - Revision 623.8 2004/07/25 16:17:37 error - * stress.c: Slightly more verbose output - - Revision 623.7 2004/07/25 16:16:19 error - * citadel_decls.h: fixed the new logoff() macro - - Revision 623.6 2004/07/24 05:11:52 ajc - * citadel.c: temporarily commented out the signal() call for SIGHUP because - it is causing the client not to work at all on Linux 2.6 (or at least on - Fedora Core 2) when citadel is called as the login shell -- a SIGHUP is - mysteriously received at the username prompt and the program exits. - - Revision 623.5 2004/07/15 02:54:49 ajc - * serv_network.c: grab and use a networker-local copy of the network - configuration, ensuring that it doesn't accidentally get clobbered while - the network is running. - - Revision 623.4 2004/07/11 18:41:39 ajc - * Updated roadmap document slightly - - Revision 623.3 2004/07/11 03:59:02 ajc - serv_network.c: small fix to above - - Revision 623.2 2004/07/11 03:50:31 ajc - * serv_network.c: removed a stray end_critical_section() - * serv_network.c: purge invalid ignet_push_share entries during - netconfig load instead of during rewrite - - Revision 623.1 2004/07/10 02:51:01 ajc - * Changed "policy set" message to "policy has been updated" to make it - clearer. - - Revision 623.0 2004/07/06 18:15:04 ajc - * THIS IS 6.23 - - Revision 622.7 2004/07/06 18:09:13 ajc - * When writing a message body to the CDB_BIGMSGS table instead of the main - message base, increase data length by one byte in order to include the - NULL terminator. (Doh!) - - Revision 622.6 2004/07/03 04:09:37 ajc - * Check the "Permission to send Internet mail" access controls when - messages are submitted via Authenticated SMTP. - - Revision 622.5 2004/06/28 17:09:20 ajc - * Properly re-terminate messages posted via IMAP APPEND. The newline - conversion process was shortening the text but not adjusting string - termination, causing extra message snippets to appear. - - Revision 622.4 2004/06/24 20:38:06 ajc - * updated serv_vandelay.c to include new "c_ip_addr" config - - Revision 622.3 2004/06/24 20:33:37 ajc - * Bumped internal version number to 6.23 - * Added "Server IP address" to config (server, client, docs) - - Revision 622.2 2004/06/24 15:26:33 ajc - * Updated the ig_tcp_server() function to allow binding to a single IP - address. This is not yet used by anything. - - Revision 622.1 2004/06/24 02:34:39 ajc - * serv_imap.c: when an IMAP socket breaks while a folder is selected, - auto-expunge the folder before closing it. Fixes the "mysteriously - reappearing deleted messages" for clients that just drop the session - without issuing a CLOSE when the user closes the window. - - Revision 622.0 2004/06/19 03:20:22 ajc - * THIS IS 6.22 - - Revision 621.19 2004/06/19 03:13:26 ajc - * Updated internal version number to 6.22 - - Revision 621.18 2004/06/19 02:35:16 ajc - *** empty log message *** - - Revision 621.17 2004/06/19 02:33:54 ajc - * Removed the configuration option "Allow Aides access to all mailboxes." - This functionality *must* always be enabled for administrative create/edit - of vCards, which live in the user's My Citadel Config> room. - - Revision 621.16 2004/06/16 04:17:43 ajc - * More scheduler changes. Removed the rescan pipe again, and also - removed the mutex wrapper around select(). In my initial testing I am - getting reliable, fast service, but further testing is needed. - - Revision 621.15 2004/06/16 03:13:02 ajc - * Scheduler fix ... added the rescan pipe back in - - Revision 621.14 2004/06/15 20:42:42 ajc - * Store the body of any large (>1K) message in a separate database. This - will allow fast headers-only retrieval later. - - Revision 621.13 2004/06/15 03:05:01 ajc - * Bumped internal version number to 6.22 - * Added a new faster headers-only mode that excludes enumeration of - MIME parts. - - Revision 621.12 2004/06/14 19:09:26 ajc - * serv_vandelay.c: re-inserted a missing line of code for setting tempfile - names, which was causing exports to crash. - - Revision 621.11 2004/06/11 01:26:02 ajc - * Optimized the scheduler some more. The S_I_WANNA_SELECT mutex now - wraps only the select() call itself. - - Revision 621.10 2004/06/09 03:54:07 ajc - * The scheduler can now "wake up" a session to deliver async messages. - * Renumbered the "instant msgs waiting" message and changed its usage - - Revision 621.9 2004/06/07 22:12:19 ajc - * Removed network/filterlist network/mailinglists network/rnews.xref - because none of these are used anymore. - - Revision 621.8 2004/06/07 16:41:28 ajc - * Changed "express message" to "instant message" everywhere in the code - and documentation, to reflect the now industry-standard terminology for - this function. (Obviously, the server command names have not changed, - because that would break everything.) - - Revision 621.7 2004/06/06 22:30:10 ajc - * New session scheduler. All sessions which select() marks for activity - are now handled before select() is called again. - - Revision 621.6 2004/06/03 02:49:14 ajc - * html.c: allow parsing of tags even when they're qualified - (i.e. instead of just ) - * html.c: handle escaped decimal characters (such as ' for an apostrophe) - - Revision 621.5 2004/06/03 02:28:16 ajc - * citadel_ipc.c: SETR command was missing defaultview and flags2. Added. - - Revision 621.4 2004/05/31 15:19:14 ajc - * Reworked the security checks for move/copy commands. Theoretically it's - performing all the same checks, but the code is far more readable. - - Revision 621.3 2004/05/26 18:13:15 nbryant - * stress.c: silence warning - - Revision 621.2 2004/05/26 16:53:31 nbryant - * configure.ac: check for /usr/local/BerkeleyDB.4.2 - - Revision 621.1 2004/05/24 01:59:16 ajc - * serv_network.c: when processing incoming IGnet spool, give the field - priority over the field. This allows messages emailed to a network - room to be shared properly instead of attempting to deliver via email a - second time. - - Revision 621.0 2004/05/21 01:58:16 ajc - * THIS IS 6.21 - - Revision 620.35 2004/05/20 16:14:08 ajc - * Changed internal version number to 6.21 - * Added missing VIEW_* defines in citadel.h (they're used only by WebCit - for now, which is why Citadel didn't need them, but they should be there - anyway for completeness) - * Removed the last vestiges of the built-in spam filter. It had been - commented out, but it's definitely never coming back now, so away it goes. - * Updated some of the docs - - Revision 620.34 2004/05/15 14:19:52 error - * Scheduler: when next_session is to be deleted, make it point to some - other session which isn't being deleted (or NULL if there aren't any). - - Revision 620.33 2004/05/14 03:09:54 ajc - * When a session kills itself (for example, due to a broken socket), - force the dead_session_purge() to run immediately. This avoids - thousands of error messages for up to the next five seconds while it - waits for the next purge. - * For the main select() loop, we can now recover from EBADF by jumping - back to the code that scans for valid descriptors. (Yeah, I used a - goto. It's more readable that way, so STFU if you have a problem with - it.) - - Revision 620.32 2004/05/11 15:21:45 nbryant - * configure.ac: check for - * server_main.c: call prctl(PR_SET_DUMPABLE, 1) if we are dropping root - permissions. - * sysdep.c: no longer call setrlimit(RLIMIT_CORE, ...); this can be handled - from a shell script. - - Revision 620.31 2004/05/10 01:47:11 error - * messages.c: Fix crash when trying to use m next - - Revision 620.30 2004/05/07 20:27:46 ajc - # citadel-openldap.schema: updated to include RFC2739 objects & attributes - - Revision 620.29 2004/05/07 19:31:40 ajc - * More RFC2739 compliance: when converting vCard to LDAP, include - the calFBURL attribute. - - Revision 620.28 2004/05/07 19:09:07 ajc - * Implemented partial RFC2739 compliance (calendar free/busy URL in vCard). - Still need to add it to LDAP. - - Revision 620.27 2004/05/07 18:17:26 ajc - * Scrawled some notes in roadmap.txt - - Revision 620.26 2004/05/06 03:38:26 ajc - * Never reduce the size of the thread pool, only increase it (still - observing the max ceiling, of course) - * Don't explicitly call RemoveContext() when a session exits. The - subsequent call to dead_session_purge() will handle it. - - Revision 620.25 2004/05/03 00:12:27 ajc - * Found and removed a bug that caused network rooms to be un-shared with - all nodes instead of only with nodes that no longer exist. - * New target "make upgrade" (to be consistent with other projects) - - Revision 620.24 2004/04/29 02:37:58 ajc - * Updated the roadmap - - Revision 620.23 2004/04/26 15:11:17 ajc - * Enable core dumps regardless of system ulimit setting - (maybe temporary until we fix BOOM) - - Revision 620.22 2004/04/23 17:27:50 ajc - * user_ops.c: do not attempt to save the loaded user record into the - supplied buffer, when the supplied buffer is NULL. (This calling - syntax is used to check for the existence of a user without storing it.) - - Revision 620.21 2004/04/21 03:44:50 ajc - * serv_crypto.c: small fix to make self-signed certs no longer invalid - - Revision 620.20 2004/04/21 03:00:06 ajc - * Replace ctdl_install_certificate() with convenience functions found - in the OpenSSL library. - - Revision 620.19 2004/04/20 02:42:54 ajc - * techdoc/binaries.txt : updated, now includes WebCit instructions - * setup.c: detect when setup is run from within the Citadel Ridiculously - Easy Installer and skip the directory prompt; the installer sets it. - - Revision 620.18 2004/04/14 18:43:51 nbryant - * citadel.spec: BuildRequire redhat-rpm-config - - Revision 620.17 2004/04/14 16:16:47 nbryant - * citadel.spec: don't BuildRequire newt-devel - - Revision 620.16 2004/04/14 03:42:01 ajc - * ICAL FREEBUSY output now includes ORGANIZER, DTSTART, and DTEND fields. - (Required for Kolab compatibility.) - - Revision 620.15 2004/04/13 23:53:00 nbryant - * citadel.spec: BuildRequire bison - - Revision 620.14 2004/04/13 22:44:35 nbryant - * citadel.spec: commented out Icon line and the openldap-servers dependency. - * citadel.spec: added several BuildRequires. Some of these are, strictly - speaking, compile time options, but the goal is to document the runtime - dependencies and make sure our RPM's are always built consistently. - - Revision 620.13 2004/04/13 21:09:20 error - * citadel.spec: Updated for 6.20p1 - - Revision 620.12 2004/04/13 18:31:40 ajc - * serv_calendar.c: ICAL FREEBUSY command now tries the supplied name not - only as a screen name, but as an email address, and then as an - unqualified email address in every hosted domain. (For Kolab compat) - - Revision 620.11 2004/04/13 02:45:07 ajc - * Don't display the "Ending SSL/TLS" log message unless TLS is actually present - - Revision 620.10 2004/04/12 20:51:40 error - * citadel.lsm: Update LSM for 6.20p1; uploaded to ibiblio.org - - Revision 620.9 2004/04/09 23:11:01 error - * serv_chat.c: Differentiate when a user does not exist when paging users. - - Revision 620.8 2004/04/09 23:05:52 error - * user_ops.c: fix unused variable compiler warnings - - Revision 620.7 2004/04/03 15:42:35 ajc - * stress.c: include in order to get RAND_MAX - (Submitted by Thomas.Lotterer@cw.com, Cable & Wireless / OpenPKG) - - Revision 620.6 2004/04/01 04:41:55 ajc - * Put some blankety-blank values in the default generated vCard so it's - more acceptable to LDAP conversion - - Revision 620.5 2004/03/31 02:19:09 ajc - * Change the IMAP folder delimiter from "|" to "/" because more than a few - client programs don't follow RFC2060 strictly enough to work with - non-"/" delimiters. Actual slashes in room names appear as "|" in IMAP. - - Revision 620.4 2004/03/30 03:11:07 ajc - * control.c: when config.c_maxsessions is unset or negative, set it to 0 - instead of setting it to 1 when it is 0 or negative. The default should - be unlimited sessions. - - Revision 620.3 2004/03/29 16:05:02 ajc - * begin_critical_section() -- bypass transaction checking for S_FLOORCACHE - sections, to avoid crashing the db layer - - Revision 620.2 2004/03/29 02:33:19 error - * citadel.spec: major modifications for 6.xx (hasn't been updated since 5.xx) - - Revision 620.1 2004/03/27 23:04:59 error - * citadel.lsm: update version number, sending to ibiblio - - Revision 620.0 2004/03/27 02:33:26 ajc - * THIS IS 6.20 - - Revision 614.105 2004/03/27 02:33:10 ajc - * Bumped the version number to 6.20 - * Corrected session.txt writeup for CONF command (three of the five LDAP - related fields were missing) - * Updated the roadmap documentation slightly - - Revision 614.104 2004/03/27 02:21:30 ajc - * Completed documenting the LDAP Connector - - Revision 614.103 2004/03/26 05:41:25 ajc - * Began writing up the LDAP Connector for Citadel in the documentation - - Revision 614.102 2004/03/26 05:40:47 ajc - *** empty log message *** - - Revision 614.101 2004/03/26 05:13:15 ajc - * citadel-slapd.conf: comment out the reference to the Citadel schema - and add "schemacheck off" to make it easier to get started with the - Citadel LDAP connector. Also made the backend in the sample conf - ldbm instead of bdb, because that's what RH9 ships with. - - Revision 614.100 2004/03/24 21:23:50 ajc - * msgbase.c: repaired a memory leak - - Revision 614.99 2004/03/24 17:07:11 ajc - * Put a new memory leak checker into the server because it turns out that - the third-party ones all suck. :) This one doesn't involve renaming - all of the malloc() related functions, though. - - Revision 614.98 2004/03/24 15:04:06 ajc - * stress.c: fix "wrong password" race condition by giving the very - first worker thread time to finish creating the user account before the - other threads start using it. (Ok, I fixed it by creating a different - race condition, but if your Citadel takes more than three seconds to - create an account, your problems can't be fixed with the stress tester.) - - Revision 614.97 2004/03/24 03:46:40 ajc - * Reorg header stuff to make it more compatible with leak checkers - - Revision 614.96 2004/03/24 03:25:19 ajc - * Removed the built-in memory leak checker. It wasn't threadsafe and - there now exist third-party utilities that do this job better. - - Revision 614.95 2004/03/24 02:59:19 ajc - * After initializing the database, chown and chmod all files in the data/ - directory correctly to avoid EPERM errors later on when we drop root privs - - Revision 614.94 2004/03/22 19:37:28 error - * sysdep.c: worker_thread(): Make scheduling a little more fair to higher - sessions - * sysdep.c: lprintf(): Enable microsecond display in trace file - * stress.c: worker(): Sleep for random amount of time as per specification - - Revision 614.93 2004/03/21 22:51:54 error - * Fix a few remaining lprintf(9, ...) to lprintf(CTDL_DEBUG, ...) - - Revision 614.92 2004/03/21 22:35:20 error - * stress.c: Wait before posting instead of after posting. - - Revision 614.91 2004/03/21 22:34:41 error - * database_sleepycat.c: emit a panic message when Berkeley DB wants us to - run recovery; should provide a little more detail on the actual error - - Revision 614.90 2004/03/21 22:32:24 ajc - * room_ops.c: increased the thread safety of cgetfloor() - * housekeeping.c: check floor reference counts in two passes instead of - trying to manipulate multiple tables in O^2 - - Revision 614.89 2004/03/21 17:14:46 error - * stress.c: Fixed. Now properly spawns threads and stresses out your - favorite Citadel server by simulating large numbers of really active - users. (It's configurable on the command line, too, to vary the stress - level.) Don't use it against a production system! You've been warned! - - Revision 614.88 2004/03/21 17:13:15 error - * configure.ac: Fix for defines for pthreads not being included properly - - Revision 614.87 2004/03/21 06:15:06 ajc - * docs/citadel.html: documented TLS support and administration procedures - - Revision 614.86 2004/03/20 22:32:06 ajc - * citadel.rc: changed the comments around local_screen_dimensions= to - reflect its legacy type of situation - - Revision 614.85 2004/03/16 22:44:15 ajc - * Better conversion of friendly name to fully qualified vcard name - - Revision 614.84 2004/03/16 21:09:37 ajc - * Eliminate EVT_OUTPUTMSG server extensions (don't need them anymore) - * Add EVT_NEWUSER server extensions - * EVT_NEWUSER and EVT_PURGEUSER server extensions now specify a - struct ctdluser * instead of a username and usernum - * serv_vcard.c: automatically create and submit a skeleton vCard when - a new user is created. - - Revision 614.83 2004/03/16 19:05:50 error - * Further changes to stress.c, Makefile.in to build it, .cvsignore - (but it's still broken) - - Revision 614.82 2004/03/15 18:11:34 error - * stress.c: various fixed/improvements (but it still isn't working) - - Revision 614.81 2004/03/15 17:22:14 error - * First draft of the stress tester. Isn't quite ready (it needs to be - tested itself!). - - Revision 614.80 2004/03/15 16:48:22 error - * Documentation update: update citadel.html for new syslog logging - - Revision 614.79 2004/03/15 16:47:04 error - * msgbase.c: cmd_move(): Fix the security logic for non-aides trying to - move or copy messages. The logic should do the following: - * Allow move/copy for Aides - * Allow regular users to: - * Move a message between two personal rooms - * Copy a message from a Personal room to a room the user is subscribed to - * Copy a message from a room the user is subscribed to, to a personal room - * Prohibit other moves/copies - - Revision 614.78 2004/03/15 16:39:27 error - * Multiple files: Set permissions on existing Citadel directories to prevent - access to the database by local unix users to prevent direct database reads. - - Revision 614.77 2004/03/15 16:36:50 error - * Multiple files: Convert most remaining client code to use new Citadel IPC - functions. A few bits remain and will be converted when the chat system - is rewritten. - - Revision 614.76 2004/03/14 06:35:46 ajc - * Cache IMAP "BODY" fetches in an already-converted format. This speeds - up clients like Mozilla and Thunderbird that request big messages in - chunks -- we don't have to load and convert the message every time - another chunk is requested. - * Fixed a potential memory leak in fetch - - Revision 614.75 2004/03/13 23:26:10 ajc - * imap_fetch.c: don't fetch the message from disk at all for UID and FLAGS - fetch items. (It's rare, but sometimes IMAP optimizations are actually - possible, despite IMAP's brain-dead design!) - - Revision 614.74 2004/03/13 22:52:05 ajc - * Documented the GNET and SNET commands :) - - Revision 614.73 2004/03/12 19:35:13 error - * routines2.c: Fix two typos - - Revision 614.72 2004/03/12 19:32:09 error - * routines2.c: Convert multiple functions to use new IPC code (almost done!) - - Revision 614.71 2004/03/12 19:30:06 error - * citadel.c: main(): Fix error response for RCHG, HCHG and UCHG commands. - - Revision 614.70 2004/03/12 19:28:04 error - * Implement GNET/SNET commands in IPC code; provide a CtdlIPC_delete(); - emit warnings when client code uses CtdlIPC_getline() or CtdlIPC_putline() - (These are reserved and should not be used by client code.) - - Revision 614.69 2004/03/10 04:50:04 ajc - * serv_expire.c: auto-purge any Citadel account that is associated with - a Unix account that no longer exists. - - Revision 614.68 2004/03/09 20:46:33 error - * Add a Linux Software Map file - - Revision 614.67 2004/03/08 05:26:49 ajc - * When the last argument of an IMAP APPEND command is a binary literal - (i.e. all the time), the client will still be sending a CRLF after the - literal. Added an extra client_read() after the message input to absorb - that extra CRLF, to keep client and server from getting out of sync. - - Revision 614.66 2004/03/06 05:09:04 ajc - * serv_smtp.c: don't offer the STARTTLS extension if TLS is already - active. Done for to-the-letter compliance with RFC2487. - - Revision 614.65 2004/03/06 02:03:39 ajc - * serv_smtp.c: do not offer the PIPELINING extension when TLS is - running. Doing so causes sessions to hang unexpectedly. - - Revision 614.64 2004/03/05 23:21:25 ajc - * Added some more debugging to serv_smtp.c to try to figure out the - problem with Postfix TLS hanging during send - - Revision 614.63 2004/03/05 03:36:03 ajc - * Remove the automatic population of A and N fields we recently added - when found to be NULL. It was confusing the output functions into - thinking that Internet messages were local. - - Revision 614.62 2004/03/03 05:43:29 ajc - * Generate better output when a user is kicked out of chat - - Revision 614.61 2004/03/01 22:36:14 ajc - * Implement the NAMESPACE extension of IMAP (RFC 2342) - - Revision 614.60 2004/03/01 17:47:28 error - * Fix missing arg in m next rewrite. - - Revision 614.59 2004/03/01 17:33:30 error - * Rewrite m next function; now uses CtdlIPC code. - - Revision 614.58 2004/03/01 04:08:34 ajc - * Revoke access to room when /kicked - - Revision 614.57 2004/02/29 23:26:48 ajc - * Added /kick command to chat. /ban coming soon. - - Revision 614.56 2004/02/28 16:37:41 ajc - * setup.c: removed an unused temp file name variable - - Revision 614.55 2004/02/27 17:23:21 error - * Use syslog-compatible logging levels in lprintf(); the loglevel chosen - is passed directly to syslog(). The available levels are docuemnted in - sysdep_decls.h. - - Revision 614.54 2004/02/27 04:29:00 ajc - * Fixed a bug in PLAIN authentication - - Revision 614.53 2004/02/26 22:03:24 error - * ;Goto floor now goes to first KNOWN room, or first room only if no known - rooms on the floor - - Revision 614.52 2004/02/26 20:30:36 error - * Populate IPC into a few more places to avoid a nasty crash at MORE prompt - - Revision 614.51 2004/02/26 20:17:29 error - * Client stability and enhancements: - * CtdlServInfo structure moved inside CtdlIPC; eliminates unnecessary - global and makes IPC more self-contained - * Removed redundant serv_ from variable names in CtdlServInfo struct - * Send SIGHUP to process group when connection_died(). Kills self and - children (e.g. external editor). - - Revision 614.50 2004/02/25 01:35:34 error - Missing parameter to a printf() function. No idea where it went, but I - put it back. - - Revision 614.49 2004/02/24 05:09:06 ajc - * Better validation of incoming network messages. - - Revision 614.48 2004/02/23 16:10:47 nbryant - --disable-pie by default. - - Revision 614.47 2004/02/22 04:55:15 ajc - * CSR code more or less in its final form for now. - - Revision 614.46 2004/02/22 04:42:05 ajc - * Initial version of function to automatically generate a Certificate - Signing Request if one is not present - - Revision 614.45 2004/02/20 19:29:05 error - * Fix bug 112: .Goto allowed partial room match on forgotten rooms - - Revision 614.44 2004/02/20 02:55:18 ajc - * Fixed one of the prompts (bugzilla #118) - - Revision 614.43 2004/02/19 04:12:56 ajc - * Instead of doing the silly "Kolab reserved folder names" thing, instead - implemented the Cyrus-compatible style of forcing all personal mailbox - folders to be subfolders of INBOX. But only for IMAP. - - Revision 614.42 2004/02/18 14:46:05 ajc - * smtp: EHLO response now includes both "AUTH " and "AUTH=" output, due to - the requirement to interoperate with brain-dead Microsoft shitware that - doesn't follow the RFC. - - Revision 614.41 2004/02/17 16:56:51 ajc - * During SSL initialization, create the "keys" directory if it does not - exist ... generate a private key if that does not exist ... more code - coming soon to generate CSR and self-signed cert. Hard-coded pathnames - have been moved to sysconfig.h. - - Revision 614.40 2004/02/17 04:47:22 ajc - * Support PLAIN auth method in SMTP - - Revision 614.39 2004/02/17 03:53:11 ajc - * New ICAL subcommand "sgi" to enable or disable automatic server - generated invitations. (WebCit wants sgi's but Kontaqt doesn't.) - - Revision 614.38 2004/02/16 21:54:22 ajc - * Support POP3 over TLS - - Revision 614.37 2004/02/16 21:45:43 ajc - * Implement RFC 2487 - SMTP Service Extension for Secure SMTP over TLS - - Revision 614.36 2004/02/16 21:02:28 ajc - * IMAP and Citadel protocols now use the same code path for TLS negotiation - - Revision 614.35 2004/02/16 20:55:47 ajc - * Genericized the Citadel API for TLS-enabling protocols - - Revision 614.34 2004/02/16 18:16:39 error - * Remove some unnecessary and possibly hazardous debugging code leftover - from debugging IMAP STARTTLS - - Revision 614.33 2004/02/16 18:14:00 error - * Fixed IMAP STARTTLS; trouble was in client_read_ssl the whole time. - It should now be possible to implement SSL/TLS for any protocol. - - Revision 614.32 2004/02/16 18:13:10 error - * Log session IDs in syslog as well as stderr - - Revision 614.31 2004/02/16 15:06:44 error - * Add specific error codes for every command on the wire protocol, so that - clients can more easily determine what went wrong. Partially updated - session.txt (will finish it later). This lets clients more easily - determine what, if anything, went wrong with a particular command. - - Revision 614.30 2004/02/15 06:06:49 ajc - * More work on IMAP TLS. Still not working correctly. :( Added in - support for server-side certificates. Now instead of failing it hangs. - - Revision 614.29 2004/02/14 04:41:55 ajc - * STARTTLS attempt #2. Still disabled because it's broken. - - Revision 614.28 2004/02/13 20:51:13 error - * Reset screen attributes before fork() so that external programs do the - right thing - - Revision 614.27 2004/02/12 04:16:38 ajc - * Support for PLAIN logins in IMAP (need to test!) - - Revision 614.26 2004/02/11 03:50:49 ajc - * The groupware folders "Calendar", "Contacts", "Notes", and "Tasks" are - now presented as subfolders of INBOX when using IMAP. This is for the - purpose of Kolab compatibility. - - Revision 614.25 2004/02/09 22:40:57 error - * oops...also close the client on EOF/error on tty OUTPUT - - Revision 614.24 2004/02/09 22:26:17 error - * Exit the citadel client when EOF reached on input - should prevent - a process from hanging around when a telnet connection dies unexpectedly - - Revision 614.23 2004/02/08 05:29:34 ajc - * Corrected various small syntax conversion problems that were keeping - some vCards out of the LDAP directory. - - Revision 614.22 2004/02/07 05:28:10 ajc - * Automatically purge files from ./network/spoolout which were intended - for nodes which no longer exist - - Revision 614.21 2004/02/07 04:59:21 ajc - * Cache the IGnet config in memory, avoiding a db fetch for every single - operation which references it. Invalidate the cache when a new config - is uploaded. - * When doing network spool for a room, automatically remove shares for - Citadel nodes which no longer exist. - - Revision 614.20 2004/02/07 04:22:12 ajc - * serv_network.c: fixed a problem with an uninitialized data structure - - Revision 614.19 2004/02/06 04:40:50 ajc - * Suppress posting of messages to Aide> when the loopzapper catches dupes. - * New command NSYN to sync the entire contents of a room to a specified - network node. This will be used to bring new nodes in sync with existing - nodes. - - Revision 614.18 2004/02/06 03:58:10 ajc - * Added some comments to the sample citadel-slapd.conf - - Revision 614.17 2004/02/06 03:52:46 ajc - * Changed the domain name and password in the sample slapd.conf - - Revision 614.16 2004/02/05 05:20:20 ajc - * Delete a user's LDAP entry when deleting the vCard. NOT TESTED. - - Revision 614.15 2004/02/05 03:54:14 ajc - * Completed the per-user initialization of LDAP entries. - - Revision 614.14 2004/02/04 18:27:25 error - * Don't delete temp file when composing message until after server writes - it successfully (or an error occurs in the client itself). - - Revision 614.13 2004/02/04 04:07:56 ajc - * More work on LDAP connector - - Revision 614.12 2004/02/01 06:19:22 ajc - * policy.c: fix bug in GetExpirePolicy() that was causing the default - mailbox purge policy to be misinterpreted if it was set to "use - system default" - * serv_vcard.c: always set the Global Address Book room's expire policy - to "never expire" and its default view to "address book" - - Revision 614.11 2004/01/31 05:44:29 ajc - *** empty log message *** - - Revision 614.10 2004/01/27 19:56:29 ajc - * serv_smtp.c: HELO and EHLO responses now reply with the detected - IP address and reverse DNS lookup of the connecting host - - Revision 614.9 2004/01/24 05:47:50 ajc - * Got Citadel talking to LDAP. Still requires manual creation of schema - and container entries, which I don't like; we'll have to fix that. It - also does not yet populate all fields. - - Revision 614.8 2004/01/19 21:01:15 error - * Clear out the autom4te.cache when bootstrapping to avoid autoheader problems - - Revision 614.7 2004/01/19 04:44:11 ajc - * Further work on creating LDAP entries. - - Revision 614.6 2004/01/18 21:04:40 ajc - * Reworked vCard etc. functions for addition of new vCard data to LDAP - - Revision 614.5 2004/01/17 22:57:54 ajc - * Added "Base DN" "Bind DN" and "Bind DN password" config options - * serv_ldap.c: added. (New module implementing the LDAP Connector) - * Upon startup, connect to LDAP directory and bind to it. Unbind at exit. - - Revision 614.4 2004/01/17 04:23:28 ajc - * Sysconfig commands for specifying where the LDAP server lives - - Revision 614.3 2004/01/17 03:26:17 ajc - * Changed a diagnostic in msgbase.c to a higher logging level so it doesn't - make as much noise. - * Setup now adds "-x3 -llocal4" to the default inittab line. - - Revision 614.2 2004/01/17 03:17:34 ajc - * New server command-line option "-l" to send log output to the host - computer's syslog facility instead of to a trace file. - - Revision 614.1 2004/01/02 22:13:59 ajc - * Link to OpenLDAP client library (-lldap) and set HAVE_LDAP if present. - - Revision 614.0 2003/12/30 04:13:40 ajc - * THIS IS 6.14 - - Revision 613.12 2003/12/30 04:13:31 ajc - * Commented out one of the supplied .RU commands in citadel.rc - - Revision 613.11 2003/12/24 05:02:49 ajc - * Allow a separate default message expire policy for mailbox rooms. The - floor default setting is now ignored for mailboxes. Updated client and - documentation to match. - - Revision 613.10 2003/12/23 03:53:49 ajc - * Expanded the size of all string fields in "struct CtdlIPCMessage" to - the standard SIZ length, in order to accomodate "weird" messages - without crashing. Also converted many strcpy()'s to safestrncpy()'s - while populating this data structure, to avoid overruns. - - Revision 613.9 2003/12/22 16:49:36 error - * Add Preview for Mac OS X as an image viewer option in citadel.rc - - Revision 613.8 2003/12/22 15:30:53 error - * Fork image viewer process in background (works now); suppress - stdout/stderr from the image viewer - - Revision 613.7 2003/12/21 20:02:28 error - * When viewing images, append the image filename to the temp filename so - that less-intelligent viewers can deal with the images - - Revision 613.6 2003/12/21 19:07:28 error - * Start a new thread and fork() for image viewer (broken/disabled; for - refernce only) - - Revision 613.5 2003/12/21 01:23:12 nbryant - added some additional comments to citadel.rc concerning possible image viewers - - Revision 613.4 2003/12/21 00:44:19 error - * Fix for idle_threshold being ignored when reading citadel.rc - - Revision 613.3 2003/12/21 00:37:54 error - * Fix for crash when downloading multiple attachments - - Revision 613.2 2003/12/21 00:19:41 error - * Image viewer code for the text client. Hit 'I' to view an image - attached to a file. Hey aahz, this code actually works! - - Revision 613.1 2003/12/19 04:33:52 ajc - * Changes to auto-expunge algorithm to support correct behavior in - some IMAP clients while moving messages. - - Revision 613.0 2003/12/15 16:37:01 ajc - * THIS IS 6.13 - - 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 if present - configure.ac: check for - - 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 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 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 IMAP's gratuitous complexity. - - 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. - - 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. - * Upon an IPGM authentication failure, wait 5 seconds before displaying an - error, then disconnect the session. - - Revision 607.20 2003/07/13 04:58:35 ajc - * Allow connect on unix domain sockets to Citadels in other directories - * sendcommand now uses unix domain sockets instead of the network - * Do not allow IPGM command to run on the network -- unix domain sockets only - - Revision 607.19 2003/07/11 22:33:02 ajc - * Ignore comments in public_clients file - - Revision 607.18 2003/07/11 22:30:19 ajc - * Automatically add 127.0.0.1 and config.c_fqdn to public_clients - - Revision 607.17 2003/07/11 22:19:49 ajc - * is_public_client() now caches the IP addresses of all hosts in - the public_clients file, at server startup and whenever the file is - modified. This eliminates the need to make lots of calls to the - resolver library every time. - - Revision 607.16 2003/07/10 05:51:46 ajc - * Added cs_addr field to struct CitContext -- holds a dotted quad string - of the user's source IP (if applicable). It's big enough to hold other - types of address strings in the future (such as IPv6). - * locate_host() populates cs_addr when on a network connection. - * serv_smtp.c now saves the IP address in the proper place in - the Received: header. - * is_public_client() no longer accepts a hostname. It just looks at - CC->cs_host instead. - - Revision 607.15 2003/06/29 19:54:39 ajc - * Renamed "struct user" to "struct ctdluser" - * Renamed "struct room" to "struct ctdlroom" - - Revision 607.14 2003/06/29 04:13:32 ajc - * Renamed: - S_QUICKROOM to S_ROOMS - S_USERSUPP to S_USERS - CDB_QUICKROOM to CDB_ROOMS - CDB_USERSUPP to CDB_USERS - - Revision 607.13 2003/06/29 04:07:11 ajc - * Globally renamed "struct quickroom" and "struct usersupp" to - "struct room" and "struct user". - - Revision 607.12 2003/06/29 04:06:41 ajc - *** empty log message *** - - Revision 607.11 2003/06/29 03:58:41 ajc - * Renamed fields in 'struct config' which are no longer relevant (but kept - them in place to avoid corrupting everyone's data files). Removed them - entirely from serv_vandelay.c. - - Revision 607.10 2003/06/28 05:12:56 ajc - * Bump internal version number to 6.08 - * 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 607.9 2003/06/27 22:19:31 error - * routines2.c: Quick and dirty fix for Mail> becoming new after entering a - mail message - - Revision 607.8 2003/06/26 01:50:14 ajc - * Compiler warning fix for building setup without newt - - Revision 607.7 2003/06/25 15:40:57 ajc - * setup now uses "newt" instead of "curses" to draw its pretty screens. - Changes were made to setup.c as well as all the autoconf stuff. - - Revision 607.6 2003/06/25 02:40:05 ajc - * Per-user and global flags calling for validation need to be set in the - vCard upload thingie, not in the wrapper function that emulates the - deprecated REGI server command. Moved it to the correct place. - - Revision 607.5 2003/06/22 20:49:31 error - * citadel.c: display idle times in wholist up to 999 days - - Revision 607.4 2003/06/19 04:12:30 ajc - * domain.c: use qsort() to sort MX records by preference. Why have a - custom function when the operating system provides one for free? - * serv_smtp.c: accept mail from "<>" (empty sender). RFC1123 5.2.9 demands it. - - Revision 607.3 2003/06/19 03:55:22 ajc - * Fixed a subtle but ugly bug in the SMTP sender that was causing it to - ignore all successful connections except the last one. Now when it gets - a connection it uses it. - - Revision 607.2 2003/06/17 22:05:11 ajc - * New format for wholist. - - Revision 607.1 2003/06/16 04:39:45 ajc - * support.c: removed an unused variable - * citadel.c: sort wholist by idle time (most recently active users first) - - Revision 607.0 2003/06/10 04:15:39 ajc - * THIS IS 6.07 - - Revision 606.10 2003/06/04 21:46:13 error - * citadel.c: Added a missing #ifdef __CYGWIN__ - - Revision 606.9 2003/06/04 21:39:27 error - * Numerous fixups needed for Windows port: - * cmd_mesg() rewritten to use the stat() syscall to find files - * really_do_keepalive() does not try to send if we are not connected - * Misc. fixups; added Windows readme file - - Revision 606.8 2003/06/04 21:30:39 error - * messages.c: When file attachment has no name, use message subject as name - - Revision 606.7 2003/06/02 23:11:00 error - * Checkin installer script citadel.nsi for NSIS Windows installer - - Revision 606.6 2003/06/02 03:01:22 ajc - * citserver.c: added another trace message to is_public_client(). Uncensored - has crashed twice in this function, for no apparent reason. - * internet_addressing.c: don't attempt to look up the specified Internet - address in a Citadel directory, if the supplied address has no hostname - portion. (Fixes a crash in the calendar service when alias() attempts to - look up potentially nonexistent attendees during event validation) - - Revision 606.5 2003/05/28 03:08:38 ajc - * msgbase.c: validate_recipients() now rejects Internet addresses in - domains belonging to the local system or an attached Citadel network, - when it fails to translate to a Citadel address. - - Revision 606.4 2003/05/26 05:36:25 ajc - * citadel.h: changed internal version number to 6.07 - * file_ops.c: #include - * migratenet.c: #include - - Revision 606.3 2003/05/26 05:30:18 ajc - * serv_calendar.c: fixed a bug in the "ICAL freebusy" subcommand which - caused it to always fetch the logged in user's freebusy times instead - of the user specified. - - Revision 606.2 2003/05/22 13:34:30 ajc - * database_sleepycat.c: added a couple of diagnostic messages to help - troubleshoot problems with db-4.1.25 on Red Hat Linux 9 - * room_ops.c: call mkdir() instead of system() to create a directory - - Revision 606.1 2003/05/20 01:28:50 error - * citadel.c: don't truncate roomname when user is idle, in long who list; - display idle time in short who list - - Revision 606.0 2003/05/16 15:17:11 ajc - * THIS IS 6.06 - - Revision 605.50 2003/05/16 14:59:08 ajc - * Removed the old rec_log() facility because the utilities which read its - data are crufty, disused, and produce incorrect output. - * Updated the documentation for the forthcoming 6.06 release. - * public_clients: removed hostnames which crept in from development servers - - Revision 605.49 2003/05/16 04:07:37 nbryant - make configure.ac automagically do the right thing on redhat 9 - remove crappy tolower() hack that was breaking the build on redhat 9 - (because the kerberized openssl includes ctype.h) - - before anyone yells at me, i did a little cvs archaeology on the tolower - thing, and it appears to have been in the Citadel source base since, - roughly, the Epoch. I doubt that the hack is needed any longer, and using - the OS's tolower() will handle extended charsets. - - Anyone who is stupid enough to be using an OS with such a horribly broken - tolower() can just scratch their head and figure things out for - themselves. Citadel needs higher barriers to entry, there are too many - weirdos on the IGnet lately. :-) - - Revision 605.48 2003/05/13 03:22:04 ajc - * Implemented the IMAP STARTTLS command as specified in RFC 2595. - - Revision 605.47 2003/05/06 03:38:59 ajc - * IMAP folder create and rename commands -- don't allow backslashes in - folder names. - - Revision 605.46 2003/05/03 16:50:52 ajc - * Change folder delimiter in room names from / to \ - - Revision 605.45 2003/05/02 04:02:47 ajc - * setup.c: allow specification of the Citadel system account by either - username or uid - * setup.c: tell init to re-read /etc/inittab by sending a SIGHUP to pid 1 - instead of hunting around for the correct init or telinit command - * docs/citadel.html: documented the above change, and also rewrote some - other stuff to be less BBS-specific - - Revision 605.44 2003/04/30 16:16:13 ajc - * Minor fix to ESMTP greeting (missing '-' screwed up pipelining) - - Revision 605.43 2003/04/30 15:46:27 ajc - * Added the ENHANCEDSTATUSCODES extention to ESMTP. - - Revision 605.42 2003/04/29 04:41:22 ajc - * Fix an off-by-one error in the mime parser - - Revision 605.41 2003/04/29 04:13:58 ajc - * mime parser: look for the "name=" subfield tacked onto either - Content-type or Content-disposition, wherever it finds it. - - Revision 605.40 2003/04/28 16:56:51 ajc - * Added a site-configurable setting to suppress the automatic correction of - forged From: lines from authenticated SMTP users, for those who prefer - strict RFC compliance instead of common sense. - - Revision 605.39 2003/04/26 21:55:15 ajc - * Anytime a socket connect() fails, CLOSE THE SOCKET before erroring out. - Not doing so causes a file descriptor leak. - - Revision 605.38 2003/04/26 04:22:51 ajc - * Removal of individual "remote" lines from message delivery instruction sets - was corrupting the end of the set, rendering the "bounceto" line unusable - and preventing bounces from being delivered. Fixed this by explicitly - adding a trailing newline when remove_token() strips it. - - Revision 605.37 2003/04/25 18:28:47 ajc - * When rejecting spam, use SMTP error code 550, not 552 - - Revision 605.36 2003/04/23 03:18:44 ajc - * Allow IMAP STORE of more than one flag at a time (Mail.app from MacOS - does this). - - Revision 605.35 2003/04/15 02:44:02 ajc - * Do not allow incoming network polls while an outbound network processing - session is in progress. - * tools.c: removed collapsed_strcmp() as it is no longer used anywhere - - Revision 605.34 2003/04/08 04:03:37 ajc - * Implemented the ".SILENT" protocol option in IMAP STORE. Certain apps seem - to want to use it. - * Optimized the IMAP operations which scan for expunged and added messages. - These loops no longer make multiple traversals through the message list. - - Revision 605.33 2003/04/07 05:02:23 ajc - * Reworked all the "list rooms" operations so that they only require one - pass through the database. - * Repaired the "create floor" operation which was broken by the switch - to the new IPC libray - - Revision 605.32 2003/04/02 13:33:28 ajc - * Fixed output of "-0500" vs. "+0500" type of timezone stamps in RFC822. - (I think they were reversed.) - - Revision 605.31 2003/04/01 05:01:08 ajc - * sysdep.c: optimized MyContext() a bit, and inlined it. A little profiling - revealed that this function was getting used super heavily. - * tools.c: removed the older, slower string tokenizer functions that - weren't getting used anymore. - - Revision 605.30 2003/03/31 04:55:58 ajc - * Repaired the formatting of text/plain messages with blank lines. - - Revision 605.29 2003/03/30 06:16:52 ajc - * Optimized CtdlReadMessageBody() and also gave it an option to store - messages with CRLF newlines instead of LF. This option is used when - reading SMTP in order to keep Pine from barfing on LF-terminated newlines - while decoding quoted-printable. *sigh* - - Revision 605.28 2003/03/26 05:17:12 ajc - * Downloading of attachments was completely broken by the change to the new - protocol library. Located and fixed bugs. - * html.c: increased the conversion buffer size - - Revision 605.27 2003/03/24 03:42:14 ajc - * Add the ability to quit out while validating users. Also added a help - option listing available access levels. This closes Bugzilla #37. - - Revision 605.26 2003/03/22 05:38:23 ajc - * During startup, display the version string from the Berkeley DB library. - * When deleting a mailbox, don't reveal the namespace prefix to the user. - - Revision 605.25 2003/03/20 08:37:04 error - * connection_died(): Don't crash before printing message, crash afterward. - (Bugzilla id 111) - - Revision 605.24 2003/03/19 11:48:06 error - * entmsg(): Don't corrupt the msg_arr[] when replying to a message in a room - - Revision 605.23 2003/03/19 04:04:56 ajc - * Dropped support for GDBM and for versions of Berkeley DB prior to 4.1 - - Revision 605.22 2003/03/18 05:15:05 ajc - * Applied a patch sent in by Clint Adams to handle - building on Debian's unstable with Berkeley DB 4.1, compiled with - the --with-db-uniquename when errno is a macro (as in glibc 2.3.1). - - Revision 605.21 2003/03/17 11:56:35 error - * Fix oto in alternate_semantics - it actually marks messages read now. - - Revision 605.20 2003/03/17 04:03:14 ajc - * Supply a NULL argument as the second argument to accept() instead of an - empty buffer whose contents we never even look at. - - Revision 605.19 2003/03/16 05:07:12 ajc - * Fixed the bug that caused freebusy publishes to crash. - - Revision 605.18 2003/03/15 23:05:08 ajc - * Rewrite of calendar-to-freebusy conversion functions. This one creates - freebusy in the correct format, instead of what I mistakenly assumed it - was supposed to look like. :( - - Revision 605.17 2003/03/15 22:31:06 ajc - * When scanning a user's Calendar> room for calendar events, search for - MIME parts of type text/calendar instead of assuming that the event will - always appear as part "1" - - Revision 605.16 2003/03/14 05:08:25 ajc - * Clone calendar subcomponents before encapsulating in case they already - happen to have a parent. - - Revision 605.15 2003/03/13 05:48:33 ajc - * Move towards storing calendar objects as fully encapsulated VCALENDAR - components instead of just VEVENT subcomponents. - - Revision 605.14 2003/03/12 03:33:54 ajc - * More changes to the handling of RFC822 headers with regard to - splitting up the headers and body. (Blank lines and such.) - - Revision 605.13 2003/03/11 06:23:50 ajc - * More accurate handling of IMAP FETCH xx BODYSTRUCTURE command. This should - make Pine happier with multipart messages. - - Revision 605.12 2003/03/10 05:38:21 ajc - * Tweaks to msgbase.c and imap_fetch.c to fix slightly incorrect byte counts - reported in the numerous variations of IMAP FETCH. This silences a number of - error messages reported by Pine. - - Revision 605.11 2003/03/10 03:40:08 ajc - * Fixed bug that caused segv when eplying to certain messages - - Revision 605.10 2003/03/07 17:39:45 ajc - * Remove the "modules" directory - - Revision 605.9 2003/03/06 04:58:11 ajc - * When entering a message into Citadel with authenticated SMTP, stamp the - room name as MAILROOM (Mail>) so it doesn't end up with an ugly moniker - like "0000058008.Sent Items" - - Revision 605.8 2003/03/05 04:55:32 ajc - * serv_smtp.c: when authenticated, do not log out when a RSET command is - issued. This breaks clients which carelessly issue RSET before each - message, such as Pine. - * serv_smtp.c: when authenticated, ignore envelope FROM: sender name - and replace with address of user who authenticated. Also fixes Pine. - * serv_smtp.c: when authenticated, not only do we continue our glorious - RFC-violating condition of replacing the From: header with the user who - is logged in, but we also stamp it with their preferred Internet address - for outbound mail (which is kept in CC->cs_inet_email). - - Revision 605.7 2003/03/03 04:09:21 ajc - * When creating a user, hide the "My Citadel Config>" room of the user being - created, not the user currently logged in. - - Revision 605.6 2003/03/01 18:18:03 ajc - * commands.c: alternate_semantics might have been getting set where it - should not. Fixed. - - Revision 605.5 2003/03/01 17:25:33 ajc - * citadel.rc default for alternate_semantics = no - - Revision 605.4 2003/02/23 05:34:45 ajc - * When the ew command is used to read new messages, the next "lazy" - command (space bar) now always does oto, regardless of the last one. - - Revision 605.3 2003/02/21 04:24:51 ajc - * Completed the "ICAL freebusy" subcommand, which fetches free/busy times - for any requested user (output in stripped-down VCALENDAR format) - - Revision 605.2 2003/02/20 04:51:17 ajc - * Began framing up a command to view other users' free/busy times - - Revision 605.1 2003/02/19 22:38:43 ajc - * Changed socklen_t to int (to allow compile on Macintosh) - - Revision 605.0 2003/02/19 03:46:01 ajc - * THIS IS 6.05 - - Revision 601.134 2003/02/17 05:23:20 ajc - * Fixed a small bug in the GDBM backend (deprecated, but the bug was very - obvious and a kind user pointed it out) - * Removed vestiges of setjmp/longjmp from the client - * When doing .TS, don't get caught in a constant-logout loop - - Revision 601.133 2003/02/14 16:12:04 ajc - * Added support for any standard RBL - - Revision 601.132 2003/02/13 22:33:41 ajc - * Fixed algorithm for reporting "last login" - - Revision 601.131 2003/02/13 21:52:13 ajc - * IMAP service: fixed bug that was causing the wrong messages (usually *all* - messages) to be flagged when a STORE or COPY operation was performed. - - Revision 601.130 2003/02/13 20:13:51 ajc - * Applied "multi editor" patch supplied by georbit - - Revision 601.129 2003/02/12 04:51:44 ajc - * More docs update - - Revision 601.128 2003/02/10 04:50:33 ajc - * More documentation updates - - Revision 601.127 2003/02/09 03:38:28 ajc - * Updated the documentation some more - - Revision 601.126 2003/01/25 07:37:15 error - * whobbs.c: Print error message if we can't connect to server - - Revision 601.125 2003/01/23 05:50:59 ajc - * citadel.c: hitting enter without entering a room name in the <.G>oto and - <.S>kip commands now does nothing instead of exhibiting undefined behavior - - Revision 601.124 2003/01/23 04:42:33 ajc - * Began reviewing, updating, and HTML-izing the documentation - - Revision 601.123 2003/01/22 03:53:24 ajc - * More reliablility hacks for autologin mode, and better quarantine of - autologin code when it's disabled. - - Revision 601.122 2003/01/21 04:42:12 ajc - * Moved login-to-screenname code ... no longer part of CtdlTryExistingUser(), - it's now part of getuser() so it always gets called, even when looking up - addresses for mail and stuff. - - Revision 601.121 2003/01/19 08:59:02 error - * Remove irrelevant file hpsux.h (was part of dynloader) - - Revision 601.120 2003/01/19 05:55:59 ajc - * serv_calendar.c: allocate dynamic symbol at module startup, not during - each session startup. This error was causing crashes (of course). - - Revision 601.119 2003/01/18 06:18:20 ajc - * whobbs.c: line up the columns better - * routines2.c: when doing <.ASI> command, entering a blank hostname causes - it to abort instead of adding a new host. Also strip l/t whitespace. - - Revision 601.118 2003/01/17 22:36:56 ajc - * This commit is a figment of your imagination. - - Revision 601.117 2003/01/17 21:50:27 ajc - * Began making some build changes for Cygwin compatibility - - Revision 601.116 2003/01/17 10:06:54 error - * fmout(): Ignore \r (carriage return) characters in messages - - 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 Citadel site - - Revision 601.114 2003/01/16 21:16:23 error - * CtdlIPCGetMessages(): Fix message read failing on first attempt to read - messages - - Revision 601.113 2003/01/16 10:04:03 error - * ENT0 command: changed post-as username from arg 4 to arg 5; 4 was already - used as the message subject - * Convert message entry and reading to new IPC code - * Minor bugfixes throughout IPC code - - Revision 601.112 2003/01/16 04:17:02 ajc - * citadel_ipc.c: when issuing a SPEX command, send the string value for - room/floor/site instead of the number. citserver wants a string. - * ipc_c_tcp.c: don't call SSL_shutdown() from connection_died(). This just - causes it to segfault because there's no valid socket. - - Revision 601.111 2003/01/16 03:41:45 ajc - * Renamed "dynloader" to "serv_extensions" globally. We don't want people - to think we have a dynamic loader, do we? :) - * serv_*_init() is now declared in serv_extensions.h. This is definitely the - wrong place for it. It's there temporarily until we decide on a new - convention for server extensions. - * bootstrap: more reliable detection of Red Hat Linux 7.3 -- more specifically, - fewer fireworks when the host system is *not* Red Hat Linux. - - Revision 601.110 2003/01/15 16:34:53 ajc - * bootstrap: don't check /etc/redhat-release if it doesn't exist (which is - the case on all non Red Hat Linux systems) - - Revision 601.109 2003/01/15 05:57:09 ajc - * First cut at static-linking the citserver. Ripped out libtool and - replaced the dynloader paradigm with "server extensions" paradigm (static - linked, but still very loosely coupled by way of using the API's to - register callbacks and commands etc.) Needs more testing. - - Revision 601.108 2003/01/14 04:12:26 ajc - * Set default view for new user Calendar> rooms to 3 (calendar) - * Set default view for new user Tasks> rooms to 4 (tasks) - - Revision 601.107 2003/01/13 17:04:19 ajc - * Add a sample URL view command for Macintosh in the included citadel.rc - - Revision 601.106 2003/01/13 02:55:07 ajc - * Do calendar support only if libical header *and* library are present - - Revision 601.105 2003/01/12 23:07:40 ajc - * configure.ac: Attempt to check for libical 0.24 or newer - - Revision 601.104 2003/01/12 05:01:58 ajc - * Start marking things for 6.05 release - - Revision 601.103 2003/01/12 04:48:23 ajc - * Display message subjects in magenta instead of white - - Revision 601.102 2003/01/06 09:17:10 error - * Remove non (yet) existent sstring.c dependency from Makefile.in - - Revision 601.101 2003/01/05 07:35:03 error - * Add an AllFloors parameter to the citadel IPC API - - Revision 601.100 2003/01/01 08:07:46 error - * commands.c: bugfix for reading from FILE pointers; affected quote, print - and external editor. - - Revision 601.99 2002/12/28 05:33:29 ajc - * ical_dezonify: set is_utc=1 even if we didn't convert from some arbitrary - timezone. Presumably this means the time was already UTC, and we really - need that "Z" to get slapped on it. - - Revision 601.98 2002/12/28 05:12:06 ajc - * Yet another attempt at making ical_dezonify() send outgoing calendar items - in UTC format. (This one will probably work -- the timestamps have the - "Z" after them which signifies UTC instead of local time.) - - Revision 601.97 2002/12/27 04:40:40 ajc - * Another attempt at fixing timezones :( - - Revision 601.96 2002/12/25 23:17:07 ajc - * ical_dezonify.c: shuffle around #includes and #ifdef's - - Revision 601.95 2002/12/25 21:46:19 ajc - * Another shot at timezone handling (ugggghh) - - Revision 601.94 2002/12/25 07:05:26 ajc - * set up ical_dezonify() to be called at appropriate times - (but it doesn't seem to work correctly yet) - - Revision 601.93 2002/12/25 06:41:44 ajc - * ical_dezonify.c: added (function to strip localized timestamps out of - a component and replace them with UTC timestamps) - - Revision 601.92 2002/12/19 04:51:49 ajc - * database_cleanup.sh: added - - Revision 601.91 2002/12/18 04:08:16 ajc - * Don't attempt to send out invitations when there are no attendees. - - Revision 601.90 2002/12/15 10:53:51 error - * Final touches on the new message formatter. - - Revision 601.89 2002/12/15 09:42:37 error - * Converted more routines to new IPC code. - - Revision 601.88 2002/12/14 23:21:29 ajc - * When saving a calendar event, set the message Subject to the event - summary string, and the message Date/time to the event start time. - - Revision 601.87 2002/12/10 23:36:20 ajc - * Fixed a bug in the allocation of per-session dynamic data for calendar module - - Revision 601.86 2002/12/09 06:07:29 ajc - * Finished the code to accept incoming calendar REPLY messages and - merge/save the updated event in the user's calendar. - - Revision 601.85 2002/12/08 06:01:48 ajc - * More work on the reply handler. Wrote functions to locate the message - containing the invitation being replied to. Just need to write the - merge and resave functions now. - - Revision 601.84 2002/12/08 00:23:08 ajc - * Began adding a calendaring subcommand to accept a reply to a meeting - invitation and update the event in the user's calendar. (Not finished.) - - Revision 601.83 2002/12/04 05:01:18 ajc - * When sending out invitations, encapsulate the VEVENT component inside a - VCALENDAR component, along with proper metadata such as product ID and - vcalendar version. Move the METHOD:REQUEST property to the encapsulating - component rather than the event itself. (Still need to add a VTIMEZONE). - - Revision 601.82 2002/12/03 04:49:15 ajc - * Send out meeting requests! (Need to test with various clients.) - - Revision 601.81 2002/12/02 08:09:00 error - * Improvements to the new message formatter, including URL support and - doing the Right Thing for text/plain messages. - - Revision 601.80 2002/12/01 11:02:57 error - * New experimental message formatter - try it, you'll like it! - - Revision 601.79 2002/12/01 04:48:24 ajc - * The code to check for sending invitations needs to happen *after* save - - Revision 601.78 2002/12/01 00:59:54 ajc - * Reliably detect when the user saving an event is listed as the meeting - organizer. (Currently calls a stub function. Still need to write the - function to generate and send invitations.) - - Revision 601.77 2002/11/30 21:35:30 ajc - * just some trace messages - - Revision 601.76 2002/11/30 05:39:28 ajc - * Started banging out some code to determine when a saved vEvent needs to - send out meeting invites. - - Revision 601.75 2002/11/29 16:24:59 ajc - * When calling ical*_remove_*() routines, the caller then owns the object - which is removed. Added ical*_free() calls to free the memory. - - Revision 601.74 2002/11/29 15:44:41 ajc - * CC->cs_inet_email is now a string buffer, not a pointer - * Initialize CC->cs_inet_email with a default address, so it always - contains something even when the directory doesn't - * Augment CHEK command to return the user's preferred Internet e-mail addr. - - Revision 601.73 2002/11/27 21:05:31 nixo - added dot ungoto functionality. - It allows you to enter a room to ungoto, it will look - through the ungoto list and goto there at the room position - you last goto-ed it from. - Don't blame me, this was Gary's idea. - - Revision 601.72 2002/11/25 05:10:07 ajc - * Post a notification to Aide> when a user is manually deleted - (resolves Bugzilla enhancement request #73) - - Revision 601.71 2002/11/25 04:57:43 ajc - * Allow set/clear of per-user Internet mail privilege - * Honor that flag - - Revision 601.70 2002/11/23 13:35:47 error - * Makefile.in: Alphabetized all the source files - - Revision 601.69 2002/11/21 05:38:13 ajc - * Added support for a "New User Greetings" room. See docs/install.txt - - Revision 601.68 2002/11/15 11:24:40 error - * serv_rwho.c: cmd_rwho(): move logged_in from param 8 to param 11 - (see RWHO in techdoc/session.txt) - - Revision 601.67 2002/11/13 17:20:57 ajc - * When in curses mode, call beep() instead of putc(7, stdout) to make it beep. - - Revision 601.66 2002/11/12 04:30:16 ajc - * Completed the invitation accept/decline code. It now sends back a - correctly formated reply! (Tested with Evolution) - - Revision 601.65 2002/11/11 06:21:55 error - * Fixed minor bugs with color handling; added explicit support for handling - the background color e.g. for transparent terminals - - Revision 601.64 2002/11/11 04:17:24 ajc - * More work on reply to meeting invitation - - Revision 601.63 2002/11/10 09:21:57 error - * messages.c: fixed eader command - - Revision 601.62 2002/11/10 09:19:38 error - * Convert some more routines to new IPC code - - Revision 601.61 2002/11/10 09:14:16 error - * citadel.spec: updated for post-6.01 - - Revision 601.60 2002/11/10 09:12:06 error - * citadel.c: When terminating, don't mark messages new when using new - message semantics - - Revision 601.59 2002/11/08 05:28:54 ajc - * Reply to VEVENT invitations: generate reply by cloning the request, - stripping out non-me attendees, setting the partstat to accept/decline, - and extracting the address of the organizer. (Still not finished: right - now it does everything except actually sending the reply.) - - Revision 601.58 2002/11/07 04:40:07 ajc - * Repaired the "remember username/password" functionality of the client - (it was broken during the transition to the new client protocol library) - - Revision 601.57 2002/11/06 05:03:01 ajc - * No changes; just testing CVS permissions - - Revision 601.56 2002/11/04 21:49:53 ajc - * Don't run the wait indicator when in an external editor - - Revision 601.55 2002/11/01 04:57:56 ajc - * Fixed .AM and .AE commands - - Revision 601.54 2002/10/29 20:14:56 error - * rooms.c: don't allow a blank floor name when creating a floor (in client) - - Revision 601.53 2002/10/26 06:15:09 ajc - * cmd_cflr() - don't allow zero length floor names - - Revision 601.52 2002/10/26 06:01:19 ajc - * Increase size of temp file name buffer in struct CitContext - - Revision 601.51 2002/10/25 09:38:38 error - * Fixed broken .Goto by partial match - - Revision 601.50 2002/10/25 09:26:26 error - * Fix the status line not updating with the new wait indicator; rearrange - the code so network_status_cb is a member function of ipc. - - Revision 601.49 2002/10/25 04:39:38 ajc - * When in fullscreen mode, display an "X" icon in the lower right corner of - the screen while waiting for the server. - - Revision 601.48 2002/10/24 09:04:53 error - * acconfig.h: add DISABLE_CURSES template - - Revision 601.47 2002/10/23 04:06:41 ajc - * "conflicts" check now also tells the client whether a conflicting event - is really just an older version of the same object. - - Revision 601.46 2002/10/23 03:55:21 ajc - * Finished: when saving an object of type text/calendar to the Calendar> room, - set the Citadel "extended message ID" to the UID of the VEVENT object. This - causes the message base to automatically delete any existing instance(s) of - that object: automatic replacement. - - Revision 601.45 2002/10/23 03:07:43 ajc - * First hack at UID-to-EMSGID mapping (for auto replacement) - - Revision 601.44 2002/10/21 20:00:41 ajc - * List UID and SUMMARY properties of conflicting events - - Revision 601.43 2002/10/21 17:14:42 ajc - * More work on conflict detects - - Revision 601.42 2002/10/20 21:42:54 ajc - * More conflict checking stuff - - Revision 601.41 2002/10/20 20:21:27 ajc - * Put in a skeleton "hunt for conflicts" code - - Revision 601.40 2002/10/20 08:01:03 error - * docs/install.txt: add Mac OS X build instructions - - Revision 601.39 2002/10/19 21:35:34 ajc - * Moved some of the calendar logic over from WebCit - - Revision 601.38 2002/10/19 08:30:03 error - * dynloader.c: Darwin places underscores in front of symbol names, just - like OpenBSD. - - Revision 601.37 2002/10/19 08:18:06 error - * Disable any use of curses on Darwin (this is temporary until I beat - Apple's bizarre linker into submission) - - Revision 601.36 2002/10/18 10:33:09 error - * More signed/unsigned fixes (for the new progress gauge) - - Revision 601.35 2002/10/18 07:56:30 error - * fix self-service account creation at login prompt (accidentally called - CREU instead of NEWU). - - Revision 601.34 2002/10/18 03:44:13 ajc - * Fixed a bug in CtdlRenameRoom() that caused the old room record not to be - deleted when there was a mailbox namespace attached. - * Reworked imap_rename() and imap_rename_backend() to not use nested functions - - Revision 601.33 2002/10/17 12:56:44 error - * Bug fixes: Fix numerous char array size mismatches, signed/unsigned - mismatches, and const correctness problems (though not nearly all) - - Revision 601.32 2002/10/17 11:13:27 error - * Convert room listings and some aide functions to new IPC code - - Revision 601.31 2002/10/16 13:46:19 ajc - * Remove some trace messages - - Revision 601.30 2002/10/16 08:59:41 error - * Don't assume pointer to time_t is compatible with pointer to - struct timeval.tv_sec (it isn't on darwin) - - Revision 601.29 2002/10/16 02:49:55 ajc - * CtdlWriteObject() encode in memory instead of on disk (not tested) - - Revision 601.28 2002/10/15 17:41:20 ajc - * Numerous warning fixes and cleanups for compile on Linux for IBM S/390 - * Name temp files with source code location of who created them - - Revision 601.27 2002/10/15 06:47:11 error - * IPC support for resumable downloads - - Revision 601.26 2002/10/15 06:44:55 error - * configure.ac check for malloc.h header file (Mac OS X needs this) - - Revision 601.25 2002/10/15 03:56:33 ajc - * Run without crashing on Berkeley DB 4.1 :) - - Revision 601.24 2002/10/15 03:30:52 ajc - * Build ok on Berkeley DB 4.1 - - Revision 601.23 2002/10/14 08:27:40 error - * Mac OS X build fixes (everything but serv_imap now builds) - - Revision 601.22 2002/10/08 09:44:52 error - * Build environment: cvs ignore .diff/.patch files - - Revision 601.21 2002/10/07 18:59:37 ajc - * Build fixes for Solaris box without OpenSSL installed - - Revision 601.20 2002/10/07 09:40:49 error - * Don't try to compile non-existent client_crypto.c (oops!) - - Revision 601.19 2002/10/06 18:46:30 error - * Move (nearly) all IPC-related code to citadel_ipc.[ch]. - - Revision 601.18 2002/10/05 04:48:29 ajc - * Change MAXSETUP from 4 to 3 (bug reported by mavherzog, fix suggested by IO) - - Revision 601.17 2002/10/04 07:11:56 error - * Fix bootstrap for Red Hat 7.3 - - Revision 601.16 2002/10/02 04:07:27 error - * status_line() now shows "new mail" only when there is new mail - - Revision 601.15 2002/10/01 04:00:13 ajc - * html.c: speed improvement in html-to-ascii converter - * messages.c: MASSIVE speed improvement in message output - - Revision 601.14 2002/09/30 08:07:11 error - * ipcdef.h: add extern "C" for linking to C++ programs - - Revision 601.13 2002/09/30 07:32:09 error - * ipcdef.h: remove prototype for connection_died(), it doesn't belong there - - Revision 601.12 2002/09/30 07:20:35 error - * Fix configure mis-detecting libical and zlib and a missing semicolon in - tools.h - - Revision 601.11 2002/09/29 04:55:13 error - * File and attachment downloads now use the new IPC code. - * Implemented high-speed pipelined file download in IPC code. - - Revision 601.10 2002/09/29 04:41:43 error - * file_ops.c: cmd_read() now returns a short read at end-of-file instead of - 4096, this prevents trailing garbage on the downloaded file; also it now - succeeds if the requested number of bytes is > 4096; it simply returns - only 4096 bytes. - - Revision 601.9 2002/09/27 06:53:20 error - * Allow multiple simultaneous IPC connections. All changes necessary for - the client to use the new code are necessarily included. - - Revision 601.8 2002/09/22 02:48:04 ajc - * axdefs.h: add "Notes" view - - Revision 601.7 2002/09/17 03:18:15 ajc - * Create the Calendar> and Tasks> rooms at login time, and set their default - views to calendar and tasklist views. Renamed "My Calendar>" to "Calendar>" - to be in sync with the KDE groupware project. - - Revision 601.6 2002/09/15 03:24:28 ajc - * Renamed decode_base64() to CtdlDecodeBase64() - * Renamed decode_quoted_printable() to CtdlDecodeQuotedPrintable() - * These changes are to avoid namespace conflict with libical - - Revision 601.5 2002/09/13 15:41:39 ajc - * serv_calendar.c: #include "serv_calendar.h", not "serv_ical.h" - - Revision 601.4 2002/09/11 03:17:18 ajc - * [EXPERIMENTAL] Link in the "libical" calendar library if present - * Rename serv_ical to serv_calendar (because the resulting module would be - named "libical" which conflicts with the external library by that name) - - Revision 601.3 2002/09/10 08:07:38 error - * update citadel.spec for 6.00* update citadel.spec for 6.00* update citadel.spec for 6.00* update citadel.spec for 6.00* update citadel.spec for 6.00* update citadel.spec for 6.00* update citadel.spec for 6.00* update citadel.spec for 6.00 - - Revision 601.2 2002/09/09 03:03:18 ajc - * When a user logs in, create the Mail> room if it doesn't exist. (Should - never happen, but one site had a situation where this patch came in handy.) - - Revision 601.1 2002/09/08 04:15:28 ajc - * Also fixed a bug in <.T>erminate tay which caused the terminal to - become wacky on second and subsequent sessions. - - Revision 601.0 2002/09/08 03:51:30 ajc - * Let's call this 6.01, shall we? - - Revision 600.2 2002/09/08 03:48:48 ajc - * Fixed a crashy crashy bug in the AGUP protocol function in the client - - Revision 600.1 2002/09/07 03:24:23 ajc - * When displaying messages using MSG4, enumerate the attachments on the - client side, because the server won't add their descriptions to the - message text. - - Revision 600.0 2002/09/04 03:06:58 ajc - * Committing the current code base as version 6.00 - - Revision 591.109 2002/09/03 14:09:04 ajc - * setup.c: automatically stop/start services - - Revision 591.108 2002/09/03 04:42:15 ajc - * Added MSG4 support to client-side IPC - * Moved HTML-to-text conversion to the client side - - Revision 591.107 2002/09/02 20:40:34 ajc - * Automation work for setup - - Revision 591.106 2002/08/31 04:36:26 ajc - * IMAP APPEND no longer forces messages to appear as from the logged-in user - when appending to a mailbox room. (Allows migration to Citadel from some - other type of server without losing all the sender names.) - - Revision 591.105 2002/08/31 04:12:39 ajc - * Set version number to 6.00 in documentation and header files. - * Convert RFC822 newlines (CRLF) to Unix/Citadel newlines (LF) when - performing an IMAP APPEND command. - - Revision 591.104 2002/08/28 03:18:06 ajc - * Make reply_to and reply_subject global (otherwise they don't work!) - - Revision 591.103 2002/08/27 04:01:03 ajc - * Added the ability to run an external command from the client when new mail - arrives. (Ok, I admit it: I just discovered http://www.dailywav.com and I - just *had* to have Bear in the Big Blue House tell me I've got mail) - - Revision 591.102 2002/08/26 02:55:09 ajc - * Small bugfix for memory bounds checking in the MIME parser - - Revision 591.101 2002/08/25 21:23:49 ajc - * Hide the SMTP queue and the sysconfig rooms. - - Revision 591.100 2002/08/24 05:58:53 ajc - * Bugfixes and cosmetic changes to listsub system - - Revision 591.99 2002/08/23 03:36:52 ajc - * Finished all of the subscribe/unsubscribe/confirm stuff! - - Revision 591.98 2002/08/23 02:30:02 ajc - * Delete unconfirmed pending subscribe/unsubscribe requests after three days - * Don't allow multiple subscriptions of the same address to a list - - Revision 591.97 2002/08/22 03:55:11 ajc - * Fixed bug in above - - Revision 591.96 2002/08/22 03:40:00 ajc - * Add "unsubscribe" command (but not yet "confirm unsubscribe") - - Revision 591.95 2002/08/21 21:58:00 ajc - * Completed self-service list subscription via web. - (Still need to implement unsubscribe.) - - Revision 591.94 2002/08/16 21:04:56 ajc - * Add LPRM command - - Revision 591.93 2002/08/14 20:21:52 ajc - * Extend GETR/SETR to allow twiddling of bits in the QRflags2 bucket - * New flag and config options to allow/disallow self-service list subscription - and unsubscription to a room - - Revision 591.92 2002/08/14 02:36:05 ajc - * WebCit list subscription integration - - Revision 591.91 2002/08/13 18:48:46 ajc - * Generate and send subscription confirmation requests. - (Still need to finalize the URL format) - - Revision 591.90 2002/08/13 17:19:11 ajc - * Added email capability to quickie_message() - - Revision 591.89 2002/08/13 04:02:06 ajc - * eplace string is now case sensitive - - Revision 591.88 2002/08/13 03:46:31 ajc - * More work on the self-service subscribe/unsubscribe infrastructure - - Revision 591.87 2002/08/12 03:00:20 ajc - * Fixed bug in eplacestring which caused it to lock up in certain conditions - - Revision 591.86 2002/08/12 00:09:05 ajc - * Compress VISIT records using zlib if available. This reduces the object - size from over 4k to about 70 bytes. Experimental. - * Automatically uncompress database records found to be compressed (duh) - - Revision 591.85 2002/08/08 22:01:35 ajc - * autoconf to look for zlib (for an upcoming experiment) - - Revision 591.84 2002/08/08 03:25:56 ajc - * Bugfix for above - * Started writing some infrastructure for sub/unsub - - Revision 591.83 2002/08/08 02:49:12 ajc - * serv_network.c: retain unknown commands in netconfigs and write them back - * techdoc/netconfigs.txt: specify commands for subscribe/unsubscribe pending - * serv_listsub.c: added (currently a stub) - - Revision 591.82 2002/08/06 03:12:14 ajc - * Fixed and clarified "new mail has arrived" messages. - - Revision 591.81 2002/08/06 03:02:29 ajc - * ;AE command -- Make it clearer which floor the user is editing - - Revision 591.80 2002/08/06 02:58:01 ajc - * Cleaned up the output of digest mode. It's usable now, but the self-service - subscribe/unsubscribe functions are not there yet. - - Revision 591.79 2002/08/05 14:38:11 ajc - * rooms.c: corrected a typo reported by Campagnolo (Mike Poulin) - - Revision 591.78 2002/08/03 19:48:40 ajc - * NULLify 'roomrec' before attempting partial match in oto - (fixes heap corruption when this command is executed) - - Revision 591.77 2002/08/03 04:13:46 ajc - * citadel_ipc.c: Attempted to clean up memory allocation - - Revision 591.76 2002/08/01 05:41:53 ajc - * Completion of (most of) digest mode. Still needs some polish. - - Revision 591.75 2002/07/31 04:01:57 ajc - * Began implementing "digest mode" for listserving. (Not complete) - - Revision 591.74 2002/07/28 20:33:13 ajc - * Augmented the "headers only" functionality of the message reading API (as - well as the options of the server commands which expose it) to allow - headers+body, headers only, or body only. - * Adjusted message output of IMAP command FETCH BODY[1] when message is in - legacy Citadel format. This fixes a bug exposed by SquirrelMail. - - Revision 591.73 2002/07/23 04:00:06 ajc - * Completed the MSGP and MSG4 commands to set the client's preferred MIME - content types, and fetch messages with MIME content types. - - Revision 591.72 2002/07/21 22:29:46 ajc - * Added in some infrastructure to switch the client's message reading from - conventional MSG0 to a MIME-download type thing, like WebCit does. - - Revision 591.71 2002/07/21 15:45:07 error - * Remove duplicate call for server time in who_is_online(); IPC does this now - - Revision 591.70 2002/07/21 15:43:57 error - * citadel_ipc.c: Fix for segfault on empty messages - - Revision 591.69 2002/07/20 04:05:10 ajc - * Updated hack.txt with some fresh new information - - Revision 591.68 2002/07/19 02:28:11 ajc - * citadel_ipc.c: changed various buffer lengths from 256 to SIZ in order to - accomodate long lines which often spew out (usually from spam unfortunately) - - Revision 591.67 2002/07/18 21:29:37 nbryant - added a note about GNU make to the configure script output - - Revision 591.66 2002/07/18 20:21:18 ajc - * Eliminated the 512-message limit in the client for reading messages. - - Revision 591.65 2002/07/13 04:12:40 ajc - * Don't lie about format types in MSG0 anymore. We no longer need to. - - Revision 591.64 2002/07/13 03:24:32 ajc - * CtdlOutputMsg() caches the most recently fetched message in memory. This - eliminates the need to do multiple database fetches when we go back for - additional MIME parts, etc. - - Revision 591.63 2002/07/11 03:40:51 ajc - * When outputting a multipart MIME message, supply the client with "pref=" - and "suff=" lines in addition to the "part=" lines. - - Revision 591.62 2002/07/02 16:27:06 error - * prototypes in citadel_ipc.h updated - - Revision 591.61 2002/06/29 23:26:55 error - * fixed some memory leaks - - Revision 591.60 2002/06/29 18:36:31 error - * tools.c: Massively faster versions of extract_token() and remove_token(). - These functions can now handle multi-kilobyte sized strings with hundreds - of tokens (or more?). - - Revision 591.59 2002/06/29 15:55:07 error - * Convert whobbs, serv_info, misc. functions to new IPC code - - Revision 591.58 2002/06/27 03:10:04 error - * rooms.c: converted most functions to new IPC code - - Revision 591.57 2002/06/25 15:38:52 error - * fixed bug in dotgoto() causing free() to segfault - - Revision 591.56 2002/06/25 15:13:27 error - * gotonext() now uses new IPC code to retrieve room listing - - Revision 591.55 2002/06/25 14:21:35 error - * remove a debugging trap I accidentally left in the code - - Revision 591.54 2002/06/24 20:17:43 error - * Fixed code for client segfault at login - - Revision 591.53 2002/06/24 20:11:00 error - * Buffer overflow fixes and minor cleanup in IPC code - - Revision 591.52 2002/06/24 16:07:42 error - * Message reading and other functions which use the fmout() screen - formatter now use the new IPC code. - - Revision 591.51 2002/06/22 20:09:16 error - * Use a new IPC API (in citadel_ipc.c). Partially converted citadel.c to - use the new API. - - Revision 591.50 2002/06/21 12:32:48 ajc - * Minor documentation update - - Revision 591.49 2002/06/19 21:52:13 ajc - * Support a transient room create as well - - Revision 591.48 2002/06/19 21:42:57 ajc - * Added support for "transient goto" which allows entry into a private and/or - zapped room without putting the room [back] on your known rooms list. This - is useful for the new administrative functions in WebCit (updating a user's - vCard without the Aide suddenly having that user's config room on their - list). - - Revision 591.47 2002/06/18 16:34:06 error - * room_ops.c: Fix for old room record not being deleted when renaming - baseroom or aideroom - - Revision 591.46 2002/06/16 21:01:11 ajc - * Allow Aides to create rooms in other users' namespaces (if global access - controls allow) - - Revision 591.45 2002/06/15 20:48:50 ajc - * Fixed small bug in the epert mode toggle - - Revision 591.44 2002/06/15 20:14:55 ajc - * Fixed a memory allocation bug in the vCard parser - - Revision 591.43 2002/06/15 17:53:59 error - * citserver.c: MESG command can now send a different system message based - on the developer and client ID of the connected client - - Revision 591.42 2002/06/15 04:52:26 ajc - * SpamAssassin connector is now configurable in <.A>ide ysconfig nternet. - * Allow more than one SA server (it'll try 'em all) - * Don't run SA for logged in users - - Revision 591.41 2002/06/14 20:42:56 ajc - * Discovered that spamd works even without the Content-length: command, so I - was able to redo the spam checker to work without a temp file. - - Revision 591.40 2002/06/14 20:37:03 ajc - * Disabled the spam strings checker I wrote a few days ago. - * When receiving SMTP, check to see if spamd (the SpamAssassin daemon) is - running on the local machine. If yes, run the message through it and - reject if spam. - - Revision 591.39 2002/06/12 03:42:21 ajc - * "Suppress message prompts" has been changed to "Prompt after each message" - and of course the effect has been reversed. - * "Be unlisted in userlog" has been moved to the end of the list of - configuration prompts, so it doesn't interrupt the flow of thought regarding - the prompting questions. - - Revision 591.38 2002/06/10 22:25:25 ajc - * Configuration for spam filter - - Revision 591.37 2002/06/09 23:59:38 ajc - * Started working on the spam filter - - Revision 591.36 2002/06/07 22:10:51 ajc - * Added a new message function hook type EVT_SMTPSCAN which permits modules to - register hooks that can scan incoming SMTP messages and elect to reject them - (due to virus or spam content, for example). - - Revision 591.35 2002/06/07 03:22:13 ajc - * Added a module "serv_mrtg" which allows activity reporting to MRTG - (http://www.mrtg.org) -- this will replace our stats program. - - Revision 591.34 2002/06/02 16:42:17 error - * Support for Ctrl-W to erase a word when editing or at a prompt - - Revision 591.33 2002/05/31 18:34:04 nbryant - better curses compatibility, and a couple makefile/configure tweaks - - Revision 591.32 2002/05/28 13:59:02 ajc - * Removed the 'netsetup' and 'dnetsetup' utilities (obsolete) - - Revision 591.31 2002/05/24 19:58:13 ajc - * Fixed the "idle timeout during paginator prompt" bug by reintroducting the - concept of a "half keepalive" and sending them during paginator prompts. - - Revision 591.30 2002/05/23 03:33:21 ajc - * Added a GTSN (GeT list of SeeN messages) command - - Revision 591.29 2002/05/20 14:29:59 ajc - * commands.c: fixed bug in the scan for idle_threshold= which didn't include - the = sign and ended up always setting this value to 0 - - Revision 591.28 2002/05/17 03:57:30 ajc - * When doing fixed_output() of converted HTML, output the whole block of - data at once instead of one character at a time - - Revision 591.27 2002/05/16 04:44:58 ajc - * Reduce the number of socket writes when doing fixed_output() to avoid - getting killed by overhead. (Thanks to IO for the insight) - - Revision 591.26 2002/05/14 15:25:34 error - * room_ops.c: clarified aide message when room aide is removed - - Revision 591.25 2002/05/14 15:18:43 error - * rooms.c: Print name of room aide if any when doing nfo - - Revision 591.24 2002/05/14 01:33:18 error - * Fixed some incredibly silly typos - - Revision 591.23 2002/05/14 01:27:18 error - * Minor cosmetic changes, extraneous double spaces etc. - - Revision 591.22 2002/05/14 01:15:54 error - * Idle threshold on the who list is now customizable in the citadel.rc - - Revision 591.21 2002/05/14 01:09:57 error - * citadel.c: spacebar won't read New if there are no new messages - - Revision 591.20 2002/05/12 23:00:11 ajc - * Removed an unused variable - - Revision 591.19 2002/05/12 22:57:04 ajc - * Removed the unfinished moderation system. - * CtdlForEachMessage() - only fetch metadata when hunting for messages with - a specified Content-type. Serious performance boost. - - Revision 591.18 2002/05/05 17:33:09 error - * screen.c: fix lack of beeps in curses mode - - Revision 591.17 2002/05/04 02:58:16 ajc - * Documented a small protocol change for the STEL command - - Revision 591.16 2002/04/30 03:13:59 ajc - * When sending a page that results in the receiver's Sent/Received Pages> - room to be created, don't automatically grant the sender access to that room. - * Added a parameter to create_room() to implement the above - - Revision 591.15 2002/04/23 13:38:08 ajc - * Minor docs update - - Revision 591.14 2002/04/21 21:28:06 ajc - * Create the My Citadel Config> room along with the user account - - Revision 591.13 2002/04/20 03:00:01 ajc - * One more fix for the RENAME command wrt namespaces. - - Revision 591.12 2002/04/18 18:44:36 nbryant - don't use libtool -avoid-version for libcitserver - this might help for - OpenBSD - - Revision 591.11 2002/04/17 04:35:06 ajc - * Finished the IMAP RENAME command. (I ended up using nested functions - because it made the task much, much easier. We can fix it later or convert - it to C++ if we find this becomes a problem.) - - Revision 591.10 2002/04/15 13:25:47 ajc - * Add error responses to imap_rename() and set up subfolder framework - - Revision 591.9 2002/04/14 22:42:49 ajc - * Began implementing RENAME command in IMAP. - - Revision 591.8 2002/04/14 22:27:05 ajc - * Added access control checking to CtdlRenameRoom() - - Revision 591.7 2002/04/14 22:11:22 ajc - * New back end function CtdlRenameRoom() which is used to rename a room and/or - move it to a different floor. - * cmd_setr() now uses CtdlRenameRoom() to do part of its work - - Revision 591.6 2002/04/10 03:58:40 ajc - * Began work on IMAP RENAME - - Revision 591.5 2002/04/09 14:26:43 ajc - * Allow INBOX to have subfolders. There's no longer any reason not to. - - Revision 591.4 2002/04/05 22:31:59 error - * Send time-of-day with pages sent via IMAP - - Revision 591.3 2002/04/05 14:34:02 ajc - * Minor tweak to nested folder algorithm to handle nesting in mail root - - Revision 591.2 2002/04/05 04:25:56 ajc - * Support nested folders in IMAP. We might want to change the delimiter. - - Revision 591.1 2002/04/04 23:25:30 ajc - * Experimental hacking to handle subfolderization in IMAP. Seems to work ok - but it makes Mozilla mail hang. Will investigate more later... - - Revision 591.0 2002/04/01 05:13:20 ajc - * Tagged everything for 5.91 release - - Revision 590.168 2002/04/01 05:12:57 ajc - * Prep for 5.91 release - - Revision 590.167 2002/03/29 04:43:15 ajc - * Removed the BMBX command. Mailbox security update now runs automatically when the - server starts and it sees data files version <5.91. - - Revision 590.166 2002/03/26 05:58:35 nbryant - don't check for a database driver until after the openssl check is - complete. if the ld paths aren't set up for the db installation this - can interfere with the openssl check because it tries to run a program - linked against the libraries we've been finding. - - Revision 590.165 2002/03/26 05:20:46 nbryant - removed last vestiges of "#ifdef CIT_CLIENT" conditional compilation, - which has been rendered unusable by the build system simplifications - - Revision 590.164 2002/03/26 05:13:32 nbryant - fix monstrous shell script syntax in configure.ac - - Revision 590.163 2002/03/26 04:38:31 nbryant - * support autoconf 2.53 - * make a note that people should be using libtool 1.4d - * cut some of the more pointless bells and whistles out of the configure - script in an effort to make it more maintainable - * modularized ipc_c_tcp.c and client_crypto.o so that they're not tied - to the curses stuff. - * timezone/daylight and other FreeBSD fixes - * more effort in the configure script to detect the common - bastardizations (ahem, ports) of Berkeley DB without falling down - - Revision 590.162 2002/03/25 03:09:39 nbryant - fix warning on platforms where pthread_t may be a pointer - - Revision 590.161 2002/03/25 00:01:50 nbryant - * compatibility with Berkeley DB < 3.3 - * squished symbol clashes with the OK symbol from curses in certain *n[iu]x - distributions. this is kind of a pain in the ass, but I had to rename our - OK to CIT_OK :-( - - Revision 590.160 2002/03/22 04:35:38 ajc - * Handle vCard registration updates for users other than the one currently - logged in. (Allows administrative editing of contact information.) - - Revision 590.159 2002/03/20 19:03:27 ajc - * Don't re-declare timezone variables ('cuz FreeBSD chokes on that) - - Revision 590.158 2002/03/19 04:34:42 ajc - * mime_parser.c: minor changes for easier porting between Citadel and WebCit - - Revision 590.157 2002/03/19 04:19:33 ajc - * Saw what IO did with strchr() and did the same in a few more places - - Revision 590.156 2002/03/17 00:08:02 error - * mime_parser.c: more robust parsing of Content-Type header - - Revision 590.155 2002/03/16 05:22:59 ajc - * Post an error message to Aide> when unlink() is unable to delete old - database log files. - - Revision 590.154 2002/03/14 04:35:26 nbryant - avoid symbol clash with curses' "timeout" function (which may be a macro - in some versions) - - Revision 590.153 2002/03/14 04:24:20 nbryant - support window resizing in curses mode - - Revision 590.152 2002/03/13 04:11:11 nbryant - fix up minor gotcha introduced by fgets change - - Revision 590.151 2002/03/13 03:58:29 ajc - * Site-configurable option "Allow system Aides to gain access to mailboxes" - - Revision 590.150 2002/03/13 03:34:38 nbryant - /* when running in curses mode, the scroll bar in most - xterm-style programs becomes useless, so it makes sense to - pause after a screenful of pages if the user has been idle - for a while. However, this is annoying to some of the users - who aren't in curses mode and tend to leave their clients - idle. keepalives become disabled, resulting in getting booted - when coming back to the idle session. but they probably have - a working scrollback in their terminal, so disable it in this - case: - */ - if (!is_curses_enabled()) - lines_printed = 0; - - Revision 590.149 2002/03/12 23:34:37 nbryant - use ncurses in preference to curses if it's installed; it handles - background colors properly on dtterm, has a larger color pair palette, - and has a bigger terminal database than solaris curses - - Revision 590.148 2002/03/12 22:47:17 nbryant - curses fix: map our normal color pairs into the 0-7 range instead of 1-8, - in order to make our pairs fit on terminals such as dtterm where COLOR_PAIRS=8. - map the white/blue color pair onto 8 instead of 9, but only if that slot - is available; fall back on white/black otherwise. - - it seems there may be an off-by-one error in the color pair manpages for - the various curses packages (?) if not, our 0 entry is unusable, but that's - the DIM_BLACK color and we don't use it anyway. - - Revision 590.147 2002/03/12 22:17:20 ajc - * Give mailbox owners access to "who knows room" command - - Revision 590.146 2002/03/12 21:08:03 nbryant - support color under Solaris curses - - Revision 590.145 2002/03/12 19:59:40 ajc - * Access control change: do not treat mailboxes as guessname rooms for Aides. - Open up INVT/KICK commands to non-Aides for their mailboxes. - - Revision 590.144 2002/03/12 04:30:52 nbryant - if a filesystem node exists at /var/run/egd-pool, try to connect to it as - the EGD (Entropy Gathering Daemon) or PRNGD (pseudorandom number - generator daemon) socket and seed OpenSSL's RNG. - - this is necessary on solaris and other systems which lack /dev/urandom. - - Revision 590.143 2002/03/12 03:43:26 nbryant - squished the last remaining calls to sprintf - - Revision 590.142 2002/03/12 03:36:55 nbryant - replace calls to gets with fgets - - Revision 590.141 2002/03/12 03:19:09 nbryant - more sprintf bashing. now the only ones left are in mime_parser - - Revision 590.140 2002/03/12 01:33:42 nbryant - - pass -Wcast-qual to gcc - - more sprintf bashing - - Revision 590.139 2002/03/12 00:03:43 nbryant - more sprintf removals - - Revision 590.138 2002/03/11 06:00:21 nbryant - use before or - this is the only way i can think of to make it work everywhere; people on - systems like FreeBSD where the ports work the other way around will have to - specify an extra -I flag in their CPPFLAGS variable. - - Revision 590.137 2002/03/11 05:42:46 nbryant - removed all references to sprintf from several files (not all files yet) - and replace with snprintf - - Revision 590.136 2002/03/11 04:16:20 nbryant - warning fixes on sparc-sun-solaris2.8 with gcc 3.0.4, mostly for *printf - format strings - - Revision 590.135 2002/03/11 03:55:24 nbryant - - fixes for building without OpenSSL - - setenv doesn't exist on all systems, use putenv instead - - support Solaris' curses implementation - - Revision 590.134 2002/03/09 22:52:04 ajc - * Applied a patch submitted by to fix a potential buffer - overflow problem in lprintf(). I also did the same fix to cprintf(). - - Revision 590.133 2002/03/09 16:47:57 ajc - * Added BMBX to fix a problem - - Revision 590.132 2002/03/09 06:18:37 ajc - * one more tweak - - Revision 590.131 2002/03/09 05:22:29 ajc - * this should do it. - - Revision 590.130 2002/03/09 05:02:20 ajc - * Attempts to fix the access control crap - - Revision 590.129 2002/03/08 05:42:02 ajc - * Patch to allow invitations and admin access to mailbox rooms. NEEDS TESTING! - - Revision 590.128 2002/03/07 04:30:37 ajc - * Force recipient only in Mail>, not in all mailbox rooms - - Revision 590.127 2002/03/05 22:45:40 error - * Autoconf fixes for DB4 support - - Revision 590.126 2002/03/05 04:47:49 ajc - * vcard.c: another API update - - Revision 590.125 2002/03/04 05:29:39 ajc - * Made a small API change to vcard.c for WebCit, brought the change over here too - in order to keep vcard.c identical everywhere. - - Revision 590.124 2002/03/03 06:48:25 ajc - * Client and server options to disable self-service user account creation - - Revision 590.123 2002/03/03 06:31:58 ajc - * Added password starred-out entry to newprompt() and strprompt() - * Applied the above setting to password set/change in <.A>ide seredit - - Revision 590.122 2002/03/03 06:18:45 ajc - * Implemented the CREU server command to administratively create user accounts - * Added the ability to create new user accounts to <.A>ide seredit - - Revision 590.121 2002/03/03 06:05:16 ajc - * Split up some of the code in order to prepare for user accounts to be - administratively created without logging in to them. - - Revision 590.120 2002/03/02 05:56:48 ajc - * Properly implemented the network filter list. Finished the server module and - did a client-side <.A>ide ysconfig ilterlist command. - - Revision 590.119 2002/03/01 04:24:20 ajc - * Cosmetic change to Received: line - - Revision 590.118 2002/03/01 04:16:22 ajc - * CtdlReadMessageBody() -- fixed bug that caused the prepend buffer to be - discarded instead of prepended. "Received:" lines now work. - - Revision 590.117 2002/02/23 19:20:51 ajc - * Do the use table purge in two phases to avoid crashy crashy - - Revision 590.116 2002/02/20 22:42:19 ajc - * Started adding better management of source IP addressses in SMTP service - - Revision 590.115 2002/02/15 04:28:57 ajc - * Wrote the expire/purge routine for the new use table - - Revision 590.114 2002/02/15 04:05:08 ajc - * Began implementation of a networker use table that doesn't chew up oodles - of CPU time. (It uses a cdb instead.) - - Revision 590.113 2002/02/15 03:40:06 ajc - * Stu's changes (which he checked in without making any ChangeLog comments, - bad Stu!) didn't build properly without curses. Added #ifdef's. - - Revision 590.112 2002/02/13 22:15:10 ajc - * That was stupid. - - Revision 590.111 2002/02/13 22:04:11 ajc - * added vcard_to_html() function - - Revision 590.110 2002/02/13 15:48:55 ajc - * Allow the READ command to return packets bigger than 1 byte. (ooops!) - - Revision 590.109 2002/02/12 20:15:25 ajc - * Threw in a few more #ifdef's so the client build doesn't barf on - non-curses systems - * Added rc_prompt_control (ext/top active at paginator: on/off/user) - - Revision 590.108 2002/02/11 15:52:10 ajc - * Don't crash when deleting "purge this vCard" messages - - Revision 590.107 2002/02/10 22:36:41 nbryant - - replace cdb_trunc with a complete version of the code i had been - working on; fallback code for db < 3.3.x needed - - change 'can't connect to host.port' to 'can't connect to host:port' - - Revision 590.106 2002/02/08 22:39:08 ajc - * If there's already a Subject line in memory, display it below the usual - headers when the user hits - - Revision 590.105 2002/02/08 22:36:23 ajc - * Changed the logic for printing RFC822 addresses (again) - * Implemented cdb_trunc() in database_sleepycat.c, using db_truncate() - (We need to either provide an alternative implementation or require DB >=3.3) - * Automatically Re: subject line in the client where appropriate - - Revision 590.104 2002/02/08 19:02:25 ajc - * Added client and server side support for entering Subject lines in - messages when not using RFC822. - - Revision 590.103 2002/02/08 18:10:07 ajc - * When outputting a message in non-RFC822 format, don't display an Internet - address if the user is local. - - Revision 590.102 2002/02/07 04:42:49 ajc - * Silently refuse to add directory entries for Internet addresses already - belonging to other users. - * cdb_trunc() for CtdlDirectoryInit: implemented for GDBM, stubbed for DB - - Revision 590.101 2002/02/05 05:05:53 ajc - * Don't crash when posting if the user doesn't have an Internet directory address - - Revision 590.100 2002/02/03 15:29:03 error - * fixed a silly oversight in serv_crypto.c when removing the ETLS command - - Revision 590.99 2002/02/03 15:21:48 error - * Remove the ETLS command, it is no longer needed - - Revision 590.98 2002/02/02 21:44:04 ajc - * If a user has at least one valid Internet directory address, stamp it onto - any outgoing messages. - - Revision 590.97 2002/02/01 05:11:26 ajc - * Added a QDIR protocol command to do quick-and-dirty queries of the directory - * In the client, check the directory for conflicts when selecting email addr. - - Revision 590.96 2002/01/31 05:13:44 ajc - * When deleting a vCard from the Global Address Book room, remove the - corresponding address in the directory. (Not tested.) - - Revision 590.95 2002/01/30 19:03:41 ajc - * Added a new DeleteFunctionHook type of thing. These get called when a - message is being deleted from a room. - * When deleting messages from a room, do the AdjRefCount() calls (and now, - the PerformDeleteHooks() calls) in a second pass. This keeps that stuff - outside of the S_QUICKROOM critical section. - - Revision 590.94 2002/01/27 06:39:45 error - * file_ops.c: fixed bug in cmd_read() which could cause server to report - the wrong number of bytes for the client to download - - Revision 590.93 2002/01/26 21:33:38 ajc - * More internet addressing and global directory stuff. I think it's all working now - except for the purging of old entries. - - Revision 590.92 2002/01/26 11:02:37 error - * citadel.spec cleaned up - - Revision 590.91 2002/01/26 09:23:40 error - * setup now has a silent running mode (-q option) where it silently sets - defaults for everything. This is intended for use in scripts such as - the RPM packages, eliminating a step from the installation process. - - Revision 590.90 2002/01/26 09:19:16 error - * citadel.spec has been completely overhauled, we can make RPMs now! - - Revision 590.89 2002/01/26 04:59:57 ajc - * smtp FROM command now validates sender using the validate_recipients() loop - (yeah, it's good for that too) making it directory-aware - - Revision 590.88 2002/01/26 04:01:10 error - * Formatter now uses more of the available screen width - - Revision 590.87 2002/01/26 03:57:30 error - * Revised status_line() display, it's much more compact now - - Revision 590.86 2002/01/26 03:50:26 error - * Better error reporting in connection_died(), kills curses before printing - error message, prints last errno. - - Revision 590.85 2002/01/25 05:19:03 ajc - * Greatly simplified the logic for validating recipient addresses for incoming - SMTP. This logic destroys the whitespace mangling for local names; I will - fix this tomorrow. - - Revision 590.84 2002/01/25 04:36:35 ajc - * fixz to allow incoming vCards in the address book to actually get processed - - Revision 590.83 2002/01/24 06:52:54 error - * citadel_decls.h: fix unresolved extern errors - - Revision 590.82 2002/01/23 05:04:05 ajc - * Add vCards from incoming network messages in the GAB to the directory. - - Revision 590.81 2002/01/23 03:39:32 ajc - * Added a new hook type for handling incoming network messages - * Wrote a skeleton module for net filtering - - Revision 590.80 2002/01/22 10:46:25 error - * read_message() and fmout() now accept a FILE to which to send their - output; this fixes quoting in the fullscreen client - - Revision 590.79 2002/01/20 08:03:43 error - * curses client: use the status line as "input" line in chat mode - - Revision 590.78 2002/01/20 07:43:07 error - * serv_chat.c: Server no longer crashes when CHATLOG can't be opened - - Revision 590.77 2002/01/20 05:22:07 error - * curses client: allow goodbye message to be seen on some terminals - - Revision 590.76 2002/01/19 16:56:31 error - * Fixed color support, now works when rc_ansi_color is on or auto - - Revision 590.75 2002/01/19 15:10:25 error - * Cosmetics for the client status line - - Revision 590.74 2002/01/19 11:59:33 error - * A real status line for the text client - - Revision 590.73 2002/01/19 10:08:43 error - * fix link for libcitserver.so to tools.o which I broke (oops!) - - Revision 590.72 2002/01/19 09:59:08 error - * Full-screen curses support for Citadel text client - - Revision 590.71 2002/01/17 20:11:05 nbryant - remove lock.c/lock.h; don't need them for what i was planning after all - - Revision 590.70 2002/01/17 10:48:36 error - * cosmetic fixes in the new trace file functionality - - Revision 590.69 2002/01/17 10:32:14 error - * lprintf() now logs the session ID for each log entry within a session. - Also SMTP, IMAP, POP3 and Citadel protocol commands are differentiated. - - Revision 590.68 2002/01/17 10:16:09 error - * migratenet.c: cygwin fix: include limits.h - - Revision 590.67 2002/01/17 10:13:31 error - * serv_ical.c: set expire policy for My Calendar> to manual - - Revision 590.66 2002/01/17 07:18:11 ajc - * Changed all "free software" references to "open source" in order - to piss off Richard Stallman - - Revision 590.65 2002/01/17 00:22:35 nbryant - added lock.[ch]: recursive read/write locking support. (not actually used yet) - - Revision 590.64 2002/01/15 12:41:53 error - * Implement alternate_semantics (see comments in citadel.rc file) - - Revision 590.63 2002/01/15 11:07:51 ajc - * vcard.c: updated vCard "object methods" to handle multiple instances of - the same key name when necessary. - - Revision 590.62 2002/01/15 06:38:39 error - * Update citadelapi.txt with CtdlUnregister* calls, LogHook calls - - Revision 590.61 2002/01/15 06:20:18 error - * Modules can now unregister any of their hooks (though none yet take - advantage of this). - - Revision 590.60 2002/01/14 08:49:13 error - * Fixed bug in cmd_cre8() causing protocol to get out of sync when creating - a new room - - Revision 590.59 2002/01/13 04:46:31 ajc - * Allow incoming SMTP to relay to other Citadel nodes for whom we are - providing directory service. - - Revision 590.58 2002/01/13 04:06:33 ajc - * Repaired the problems I created when moving the_mime_parser()'s variables - from the stack to the heap. (Hint: sizeof(char *) is 4, not 4096) - - Revision 590.57 2002/01/11 15:46:57 error - * Allow users to move/copy messages between personal rooms - - Revision 590.56 2002/01/11 04:59:00 ajc - * Finished most of the work for the Global Address Book. - - Revision 590.55 2002/01/11 04:37:03 ajc - * More code for the Global Address Book - - Revision 590.54 2002/01/11 02:57:35 error - * Don't print **** when sending a page or mail from an anonymous-only room - - Revision 590.53 2002/01/10 21:22:37 ajc - * Minor changes for global directory service - - Revision 590.52 2002/01/10 04:29:28 ajc - * Minor updates for directory service - - Revision 590.51 2002/01/09 23:12:40 ajc - * Allow users to zap mailbox rooms - - Revision 590.50 2002/01/09 04:37:32 ajc - * Finished the callback stuff for vCard address extraction - - Revision 590.49 2002/01/09 04:05:53 ajc - * Began writing code to harvest Internet e-mail addresses from vCards, and - hacked together a temporary version (and writeup) of the IGAB command. - - Revision 590.48 2002/01/08 16:34:22 ajc - * serv_vcard.c: cosmetic cleanup - - Revision 590.47 2002/01/06 22:44:21 error - * Enable/disable encryption in client from command line and/or citadel.rc - - Revision 590.46 2002/01/06 21:25:26 ajc - * sysdep.c: in client_write(), handle redirect_fp and redirect_sock *before* - handling redirect_ssl, because these need to be done the same way regardless - of client session crypto - * serv_crypto.c: pasted a bunch of Nathan's #ifdef blocks from sysdep.c in - order to gain greater portability (or even to get it to compile on splorph) - - Revision 590.45 2002/01/06 11:13:33 error - * Enable SSL/TLS support in the client (again) - - Revision 590.44 2002/01/06 11:11:31 error - * Enable SSL/TLS in the client - - Revision 590.43 2002/01/06 10:49:55 error - * Add some #includes I apparently somehow missed - - Revision 590.42 2002/01/06 10:33:10 error - * SSL/TLS support for the Citadel wire protocol - - Revision 590.41 2002/01/06 08:54:58 error - * user_ops.c: fixed become_session() when calling EVT_LOGOUT session hooks - - Revision 590.40 2002/01/05 22:31:22 ajc - * Removed some protocol commands and writeups that are no longer necessary - * Began some of the framework for the Global Address Book - - Revision 590.39 2002/01/05 12:44:43 error - * serv_chat.c: allow a session to be killed while in chat - - Revision 590.38 2002/01/05 12:31:04 error - * user_ops.c: become_session() when calling EVT_LOGOUT session hooks - - Revision 590.37 2002/01/05 04:51:36 error - * stats now sorts its top 20 lists properly - - Revision 590.36 2002/01/04 20:57:36 nbryant - cygwin fix - - Revision 590.35 2002/01/04 20:46:26 nbryant - Makefile fix for cygwin (fix migratenet linkage) - - Revision 590.34 2002/01/04 20:43:26 nbryant - configure/genstamp: check for struct tm.tm_gmtoff - - Revision 590.33 2002/01/03 22:01:17 ajc - * Fixed mail to "sysop" - - Revision 590.32 2002/01/03 21:35:07 ajc - * I think this is the last of the fixes for the new submit queue. - - Revision 590.31 2002/01/03 12:27:35 error - * Fixed my name in docs/copyright.txt, why didn't I notice that before? - - Revision 590.30 2002/01/03 12:21:02 error - * Autoconf support for recognizing OpenSSL - - Revision 590.29 2002/01/03 04:52:28 ajc - * serv_network.c: migrated deliveries and bounces to the new message - submission subsystem. NOT TESTED. - - Revision 590.28 2002/01/01 21:32:10 ajc - * Finished the updates to serv_smtp.c, although I think there may be a - problem with one-too-many reference counts when a message is submitted - via SMTP. - - Revision 590.27 2001/12/31 20:15:13 ajc - * Almost finished converting serv_smtp.c to the new message submission - framework. Still not done yet; don't use this. - - Revision 590.26 2001/12/30 06:20:46 error - * More keys while reading messages: Q or S same as Ctrl-C, N same as Ctrl-O. - - Revision 590.25 2001/12/30 05:50:46 error - * Security: Citadel now drops privileges when called from telnetd, also - checks to make sure you didn't set the setuid/setgid bits. No more - loginwrapper.sh! - - Revision 590.24 2001/12/29 05:19:32 ajc - * Minor cosmetic hack - - Revision 590.23 2001/12/29 04:21:22 nixo - stupid me. I didn't realize that asking for the header did what I wanted - so I changed my little 'y' hack to not bother reading the text of the - message. a little saving on the bandwidth. - - Revision 590.22 2001/12/28 22:32:38 nixo - Added a "read m next" function in read mode. It will skip to the next - message by the user in the current message list (whatever mode you're in - be it read forward, last 50, whatever.) - - Revision 590.21 2001/12/28 11:06:53 error - * More server support for hostnames up to 63 characters (oops I missed a spot) - - Revision 590.20 2001/12/28 09:39:10 error - * Client support for hostnames up to 63 characters: truncated at 24 in - short who list, full display in long who list. - - Revision 590.19 2001/12/28 09:28:04 error - * Server support for hostnames up to 63 characters - - Revision 590.18 2001/12/26 05:01:30 ajc - * Added a new developer ID for Anticlimactic Teleservices - - Revision 590.17 2001/12/23 10:00:43 error - * Pages are once again formatted to the caller's screen width. - - Revision 590.16 2001/12/23 09:57:47 error - * tools.c: added parameter to fmt_date() to allow for printing the seconds - along with the time, e.g. 12:34 pm or 12:34:56 pm - - Revision 590.15 2001/12/20 04:54:26 ajc - * If you paid for this software, someone is ripping you off. - - Revision 590.14 2001/12/18 08:24:56 nbryant - more lovely configure tweaks (include paths for db) - - Revision 590.13 2001/12/18 06:04:08 ajc - * Moved the buffers in the_mime_parser() from the stack to the heap, because - it was crashing boxen with small stack sizes. - - Revision 590.12 2001/12/18 05:54:16 ajc - * Added more load_floorlist() commands to the beginning and end of functions - in the client that manipulate the floor list. This fixes a bug in which - new floors don't show up right away after being created. - - Revision 590.11 2001/12/17 08:14:26 nbryant - restored the checks for /usr/include/db3 and /usr/local/include/db3 - in configure. there are too many variations on db installation; this is - getting messy :-( - - Revision 590.10 2001/12/17 08:00:45 nbryant - set the pthreads stack size to 128K because FreeBSD's default of 64K - seems too small. fixes crashes under FreeBSD. - - Revision 590.9 2001/12/16 00:50:14 error - * Added usersupp.lastcall to the parameters returned from the PASS/PAS2 - commands in logged_in_response(). - - Revision 590.8 2001/12/14 21:33:18 nbryant - finally changed configure to complain if there's no database driver ;) - - Revision 590.7 2001/12/14 08:29:30 error - * Security: trace file is now only readable by owner, since it contains - plain text passwords. - - Revision 590.6 2001/12/14 07:04:24 ajc - * Now you can send mail to yourself. Hi from Stu. - - Revision 590.5 2001/12/14 06:58:12 ajc - * Hi from Stu - - Revision 590.4 2001/12/13 22:36:30 nbryant - make configure search for /usr/local/BerkeleyDB.4.0 - - Revision 590.3 2001/12/13 22:29:57 nbryant - make it compile with Berkeley DB 4.0.x - - Revision 590.2 2001/12/11 21:31:07 nbryant - - test for -ldb3 before -ldb - - Revision 590.1 2001/12/11 20:04:41 nbryant - - fix library flags, includes for portability - - malloc.h is deprecated - - fix genstamp, hopefully - - fix size_t *printf handling for portability - - Revision 590.0 2001/12/08 03:31:41 ajc - * THIS IS 5.90 - - Revision 580.95 2001/12/08 03:30:37 ajc - * Final changes to networking docs for 5.90 - - Revision 580.94 2001/12/06 05:13:34 ajc - * Added the documentation for room sharing and listserv - - Revision 580.93 2001/12/04 05:24:15 ajc - * Added two more bytes to the possible length of shared secrets in networking - due to some legacy support requirements. - - Revision 580.92 2001/12/04 05:16:19 ajc - * mime_parser.c: change to memory allocation algorithm ... some badly done - messages were crashing the server - - Revision 580.91 2001/12/03 22:48:16 ajc - * ooops. Look for the QR2_SYSTEM flag in QRflags2, not QRflags. - - Revision 580.90 2001/12/03 17:02:50 ajc - * dynloader.c: fixed improperly done declaration and mallok() - - Revision 580.89 2001/12/03 04:28:02 ajc - * mime_parser.c: now uses built-in functions to decode base64 and - quoted-printable attachments, instead of piping data to outboard programs. - - Revision 580.88 2001/12/03 02:45:46 ajc - * Began implementing some code to handle multiple recipients (but #define'd - it all out because we're approaching a release) - - Revision 580.87 2001/12/03 01:50:17 ajc - * When sending mail, copy to the sender's "Sent Items>" room instead of to - the sender's "Mail>" room. - - Revision 580.86 2001/12/02 23:36:24 ajc - * On a new system, set the default new user level to 4 instead of 1. - - Revision 580.85 2001/12/02 23:27:01 ajc - * Removed references to the old networker from the documentation. Did not - write any new documentation, so what's there now is kind of sparse. - - Revision 580.84 2001/12/02 02:42:55 ajc - * Implemented new room flag QR2_SYSTEM which supresses the room from all - room listings, even for Aides (but it's still gotoable). This will be used - for rooms which hold system configuration and message queues. - - Revision 580.83 2001/12/01 19:23:26 ajc - * clientsocket.c: implement socket timeouts for read operations - - Revision 580.82 2001/12/01 17:00:23 ajc - * serv_smtp.c: when multiple MX's are the same preference, randomize them - - Revision 580.81 2001/12/01 07:18:28 ajc - * Fixed an SMTP delivery problem that was causing certain classes of - transient errors to cause a message to never be delivered. - - Revision 580.80 2001/12/01 05:26:01 ajc - * Added a command "SMTP" to the Citadel protocol, to do some unimportant - utility/diagnostic functions. - - Revision 580.79 2001/11/27 17:08:29 ajc - * When calling an external editor, set the environment variable - WINDOW_TITLE to an appropriate value. - - Revision 580.78 2001/11/26 03:27:08 ajc - * new algorithm to load the use table - - Revision 580.77 2001/11/17 19:55:08 ajc - * Updated some of the documentation - - Revision 580.76 2001/11/16 04:43:12 ajc - * Eliminated the sock_puts_crlf() function and ensured that all SMTP client - commands are sent out using a single sock_write() call. There are broken - SMTP server implementations that can't handle SMTP commands split across - multiple writes. (Thanks to Andru Luvisi and Ben Mehlman for the idea.) - - Revision 580.75 2001/11/15 04:11:30 ajc - * hack.doc: updated to reflect Cit86Net compatibility fields removed from the - file format (since we dumbed down the gateway software) - * ipc_c_tcp.c: removed SOCKS4 support. Nobody uses it anymore. - * ipc_c_tcp.c: fixed a bug which caused the client to fall back to defaultPort - if a numeric port number was specified instead of a service name - - Revision 580.74 2001/11/14 02:59:01 ajc - * Network run frequency is now a site-definable setting - - Revision 580.73 2001/11/13 22:05:23 ajc - * Re-introduced the ability to enter IGnet mail into the system. - - Revision 580.72 2001/10/29 22:59:22 ajc - * Renamed "SuppMsgInfo" to "MetaData" because that's what it is - - Revision 580.71 2001/10/29 16:39:54 ajc - * Finished the migratenet utility (finally). - - Revision 580.70 2001/10/28 05:18:51 ajc - * migratenet almost finished - - Revision 580.69 2001/10/26 04:26:45 ajc - * more work on the net migrator - - Revision 580.68 2001/10/23 03:37:33 ajc - * Threw a few more lines of code into migratenet.c - - Revision 580.67 2001/10/20 18:10:50 ajc - * migratenet.c: added (not even close to being finished) - - Revision 580.66 2001/10/17 21:07:20 nbryant - further format string cleanups (for i686-linux type sizes) - - Revision 580.65 2001/10/17 20:41:07 nbryant - - declare *printf format specifiers if gcc detected - - format string fixes (compiles w/o warnings on alpha osf/1) - - Revision 580.64 2001/10/17 19:40:38 nbryant - warning fixes and cleanups for 64-bit machines - - Revision 580.63 2001/10/16 20:47:37 nbryant - - backed out -export-dynamic, it doesn't do anything and i've found the real - problem - - remove declaration for make_message - - Revision 580.62 2001/10/16 19:18:49 nbryant - backed out that compiler detection change for Tru64. it's not incredibly - important and results in broken autoconf macro expansions. - - Revision 580.61 2001/10/16 18:36:33 nbryant - reinstate -export-dynamic for citserver in case libtool decides to build - static libraries (why?) - - Revision 580.60 2001/10/16 18:21:53 nbryant - add some explanatory text to bootstrap - - Revision 580.59 2001/10/16 17:43:53 nbryant - - further configure tweaks for FreeBSD and Tru64 Unix - - updated to latest libtool configure fragment - - there are two functions named make_message. (?) so declare them both - static. - - Revision 580.58 2001/10/16 01:48:55 nbryant - - configury tweaks for a /usr/include/db3 goof and Digital/Tru64 Unix - - #ifdef out inline on non-GCC compilers - - Revision 580.57 2001/10/15 19:50:50 ajc - * Fixed a bug in the loopzapper that was corrupting the use table saved copy. - * Post notification in Aide> when the loopzapper catches a message. - - Revision 580.56 2001/10/12 22:41:11 ajc - * Wrote the rest of the use table code. Finished except for a bug. - - Revision 580.55 2001/10/10 18:35:12 ajc - * Comments & cosmetics for previous update - - Revision 580.54 2001/10/10 17:12:54 ajc - * Bugfix for MSG0 command to properly handle multipart/alternative - - Revision 580.53 2001/10/06 21:32:29 ajc - * Finished the concurrency check for network polling. (Now works both for - polling and being polled. Severe UUCP deja vu.) - - Revision 580.52 2001/10/06 20:28:06 ajc - * Began implementing some concurrency stuff for the networker - - Revision 580.51 2001/10/06 19:51:47 ajc - * Stripped the build of obsolete parts of the old networker no longer in use. - - Revision 580.50 2001/10/03 20:05:50 ajc - * serv_smtp.c: implement RFC2920 ESMTP "pipelining" extension on the server - side. (No changes required other than advertising the extension.) - - Revision 580.49 2001/10/03 03:15:16 ajc - * Implemented BOUNCE BOUNCE BOUNCE - - Revision 580.48 2001/10/02 03:04:30 ajc - * Allow non-Aides to terminate sessions belonging to them - - Revision 580.47 2001/09/24 18:55:13 ajc - * Completed migrating the "netpoll" utility into the serv_network module. - Removed this utility. - - Revision 580.46 2001/09/21 20:58:25 nbryant - support different log_archive prototype in DB versions prior to 3.3 - - Revision 580.45 2001/09/20 04:17:10 ajc - * Inbound network authentication working. Fixed a bug in the split-horizon - algorithm. Still need to move the 'netpoll' command into the server. - - Revision 580.44 2001/09/18 04:05:04 ajc - * Added host/IP and port to node config (client side only) - - Revision 580.43 2001/09/17 23:55:45 ajc - * Support for IGnet routing (not tested) - - Revision 580.42 2001/09/16 05:44:51 ajc - * serv_smtp.c: instead of doubling delivery retry times unbounded, set a - maximum retry time of SMTP_RETRY_MAX (currently set to 12 hours) - - Revision 580.41 2001/09/09 16:19:29 error - * Updated PAM configuration file citadel.pam for Red Hat 7.x. - - Revision 580.40 2001/09/09 03:19:38 ajc - * cdb_cull_logs() now removes log files as soon as the log_archive() function - says it's ok to do so. - - Revision 580.39 2001/09/08 18:58:38 ajc - * More changes to the new networker. Added client command for room sharing. - - Revision 580.38 2001/09/07 04:05:27 ajc - * You guessed it: still more code for the new networker. - - Revision 580.37 2001/09/06 05:47:29 nbryant - check for /usr/include/db3 (for RedHat 6.2; others?) - - Revision 580.36 2001/09/06 05:23:14 nbryant - #include fix for glibc 2.1.3 - - Revision 580.35 2001/09/06 04:02:34 ajc - * A few more updates to the networker - - Revision 580.34 2001/09/06 03:32:41 nbryant - build fix for sparc-sun-solaris2.8; i think the dependencies should be - set up properly for all platforms now. - - Revision 580.33 2001/09/06 02:55:27 nbryant - build fix for Linux - - Revision 580.32 2001/09/06 02:49:22 ajc - * Fixed paste-post mode (<.E>nter scii) to append instead of replace when - the user hits ontinue (bug reported by Stu Mark) - - Revision 580.31 2001/09/06 01:26:39 nbryant - - port to Cygwin (DLL support, etc.) - - don't build SMTP module if there's no resolver library (eg on Windows) - - Revision 580.30 2001/09/06 00:54:01 nbryant - updated to libtool 1.4.1 and automake 1.5 - - Revision 580.29 2001/08/29 02:51:25 ajc - * More work on the new networker. - - Revision 580.28 2001/08/25 05:04:57 ajc - * Worked a little more on the in-server replacement for netproc - - Revision 580.27 2001/08/22 04:18:17 ajc - * Realized that there was lots of similarly broken code in - process_rfc822_addr(). Wrote two new utility functions in tools.c - stripout() and stripallbut() and used them where appropriate. This should - take care of all possible infinite loops. - - Revision 580.26 2001/08/22 03:43:11 ajc - * internet_addressing.c: fixed a bug in process_rfc822_addr() that caused the - server to jump into an endless loop when an e-mail address contained - unbalanced angle brackets. - - Revision 580.25 2001/08/15 04:26:02 ajc - * Added split horizon and delete-after-spool to the new networker - - Revision 580.24 2001/08/14 02:41:57 ajc - * Began the migration of netproc into part of the serv_network.c module instead - of a standalone program. - - Revision 580.23 2001/08/11 22:35:40 nbryant - updated citadel-with-berkeley-db.txt. - - updated build instructions - - improved backup procedures to be safer and more space-efficient. - - Revision 580.22 2001/08/11 19:18:41 ajc - * Realized that I am stupid and started implementing server commands to load - and save network configurations, when I had already lovingly implemented the - CONF GETSYS and CONF PUTSYS commands to store arbitrary configuration sets - in the Local System Configuration> room. Ripped the newer crap out. - * Implemented a skeleton of <.A>ide ysconfig etwork on the client side. - - Revision 580.21 2001/08/11 03:51:56 ajc - * Removed the idle timer from the client. Dialup is dead. - - Revision 580.20 2001/08/06 21:33:29 nbryant - made the client fall back on port 504 if there's no /etc/services entry - - Revision 580.19 2001/08/05 23:54:14 ajc - * prep for new network node infrastructure - - Revision 580.18 2001/08/03 16:53:21 ajc - * Added some more "break" statements to the main switch..case loop in - citadel.c where they were needed. - - Revision 580.17 2001/08/03 16:43:53 ajc - * database_sleepycat.c: when running txn_checkpoint(), handle DB_INCOMPLETE - return code as a warning instead of an error worthy of aborting the server. - See http://www.sleepycat.com/docs/api_c/txn_checkpoint.html for explanation. - - Revision 580.16 2001/07/30 03:46:14 nbryant - made ForEachUser use a read-only cursor, too. there is now only one piece of - code in Citadel proper (not the database driver) that needs transactions. - that's check_ref_counts; in other words it's the only thing standing in the way - of a clean implementation of retryable transactions. - - Revision 580.15 2001/07/29 22:24:04 nbryant - - added a new function to the database interface, cdb_close_cursor(). always - call this when you're finished with a traversal but didn't bother reading all - the way to the end. - - - removed several cdb_begin_transaction()/cdb_end_transaction() calls that are - no longer needed because of the read-only cursor support. - - Revision 580.14 2001/07/29 20:56:09 nbryant - change ForEachRoom to use read-only cursors by default. it can be overridden to - still use read/write cursors by doing: - - cdb_begin_transaction(); - ForEachRoom(...); - cdb_end_transaction(); - - the only place I found where it appears necessary to do so is check_ref_counts, - so this checkin affects that function too. - - Revision 580.13 2001/07/29 20:06:33 nbryant - generate symlinks to .libs in modules directory - - Revision 580.12 2001/07/28 00:02:50 nbryant - implemented read-only cursors. one of the advantages to these is that - transactions can be avoided; a cursor operation that occurs within a - transaction will often acquire a read lock on every single database page. in - general, the Sleepycat documentation recommends avoiding transaction-protected - read-only operations where practical. read/modify/write operations can still - be transaction protected, of course. - - to use a read-only cursor, call cdb_rewind without a previous call to - cdb_begin_transaction. the DB driver will notice this and prevent the current - thread from modifying data or starting a transaction until the cursor is - closed. - - Revision 580.11 2001/07/27 20:45:44 nbryant - libtool has matured a lot since the last time i looked at it (years ago) - so we now use it to handle the details of building shared libraries and - the linker flags for the main executable. - - in theory this should bring a lot more portability to the dynloader - subsystem and enable us to do things like transparently detect GNU vs Sun - linkers on solaris, for example - - Revision 580.10 2001/07/27 03:29:04 nbryant - missed one thing in the autoconf move - - Revision 580.9 2001/07/27 02:57:43 nbryant - support one cursor per database rather than one global cursor - - Revision 580.8 2001/07/27 01:32:07 nbryant - remove the automatic transaction demarcation on singleton read operations - - Revision 580.7 2001/07/26 21:43:46 nbryant - - move to autoconf 2.52 - - random warning fix - - check for db 3.3 - - Revision 580.6 2001/07/24 13:17:54 ajc - * New UI for mailing list setup - * rooms.c: code cleanup - * docs update - - Revision 580.5 2001/07/20 23:48:23 nbryant - fix build on solaris, check default install location for db 3.2, and silence - gcc 3.0 - - Revision 580.4 2001/07/16 14:24:30 ajc - * Silly cosmetic change to keep the wholist ordered by ascending session number - - Revision 580.3 2001/07/13 00:01:36 ajc - * Shuffled around some of the housekeeping loop code - - Revision 580.2 2001/07/11 17:01:10 ajc - * database_sleepycat.c: small changes to log messages - - Revision 580.1 2001/07/11 04:35:40 nbryant - moved dret initialization in cdb_fetch, just in case - - Revision 580.0 2001/07/03 03:07:06 ajc - * THIS IS 5.80 - - Revision 573.143 2001/07/03 03:06:50 ajc - * Last minute doco update for 5.80 - - Revision 573.142 2001/07/01 15:44:32 nbryant - configure.in: check for Berkeley DB first. - - Revision 573.141 2001/06/27 23:34:30 ajc - * Added some verbage to messages/roomaccess to placate a user who keeps - bitching about privacy policy. - - Revision 573.140 2001/06/19 03:41:04 ajc - * Ooops... last_cull needs to be declared static - - Revision 573.139 2001/06/19 03:33:19 ajc - * imap_fetch.c: download MIME parts without decoding first. We like that. - * database_sleepycat.c: added automatic culling of log files which have not - been written to in five days. - - Revision 573.138 2001/06/17 19:42:23 nbryant - fix all the vs. issues, hopefully - - Revision 573.137 2001/06/07 03:28:37 ajc - * More tweaks to the MIME parser - - Revision 573.136 2001/06/06 15:44:37 ajc - * msgbase.c: output extra newline at end of RFC822 message if necessary to - ensure that 000 termination string appears on a line by itself. - - Revision 573.135 2001/06/06 04:22:25 ajc - * Moved memreadline() to tools.c - * internet_addressing.c: fixed conversion of fields to (hopefully) never get - into an active loop when encountering badly formed headers - - Revision 573.134 2001/05/27 05:23:03 ajc - * Added a "no new messages" response in the client, displayed when a read - command turns up a zero message count. - - Revision 573.133 2001/05/18 20:12:09 ajc - * Fixed bug in mime_parser.c that caused parts to be dropped when the last - boundary was the very last line of the message. - * serv_smtp.c: toned down some of the command response verbage. - - Revision 573.132 2001/04/28 04:42:55 ajc - * Updated some of the docs. Bumped version number to 5.80 in anticipation - of going into a release cycle soon. - - Revision 573.130 2001/04/26 03:31:00 ajc - * Finished the implementation of per-message seen/unseen logic, both in the - server proper and in IMAP. Citadel protocol uses new "seen" command. - - Revision 573.129 2001/04/21 04:55:51 ajc - * Began implementation of per-message seen/unseen attribute - - Revision 573.128 2001/04/20 03:39:54 ajc - * IMAP LIST/LSUB: made it case insensitive. Also minor IMAP code cleanup. - - Revision 573.127 2001/04/17 00:35:19 cough - * Modified rooms.c in the client so that it would allow inviting into - public rooms. This is important since there is now a V_LOCKOUT - flag which prevents users who have been kicked from rejoining - a room unless/until you invite them back in. - - Revision 573.126 2001/04/16 19:21:14 cough - * Fixed bug in room_ops.c that wasn't allowing aides to goto passworded - rooms without knowing the password. - - Revision 573.125 2001/04/14 04:26:44 ajc - * Fixed an unterminated string bug in IMAP APPEND. Storing messages should - work now. - - Revision 573.124 2001/04/10 01:04:10 ajc - * Finished coding IMAP APPEND. It works, but there's a bug in it somewhere - that is corrupting the memory. - - Revision 573.123 2001/04/03 00:47:23 ajc - * Began implementing IMAP APPEND - - Revision 573.122 2001/04/01 22:05:44 cough - * *Actually* fixed a botched ChangeLog entry. - - Revision 573.121 2001/04/01 22:04:28 cough - * Fixed a botched ChangeLog entry. - - Revision 573.120 2001/04/01 22:03:10 cough - * Changed two fclose()s to pclose()s. - - Revision 573.119 2001/03/25 11:52:36 error - * serv_pop3.c: Fixed APOP. Now logs in properly. Also cleaned up some non- - RFC-compliant error messages. - - Revision 573.118 2001/03/21 05:47:49 ajc - * Added the new IMAP mailbox string compare submitted by Daniel Malament. - - Revision 573.117 2001/03/20 01:33:55 ajc - * Added the (\NoInferiors) tag to all rooms listed in IMAP. This made Mozilla - behave very nicely. - - Revision 573.116 2001/03/13 17:19:33 ajc - * support (BODY[HEADER.FIELDS(BLAH BLAH BLAH)]) and HEADER.FIELDS.NOT - - Revision 573.115 2001/03/12 01:27:42 ajc - * Implemented SUBSCRIBE and UNSUBSCRIBE commands - - Revision 573.114 2001/03/11 23:00:29 ajc - * Mega sexy hack to deliver express messages THROUGH IMAP! uber coolness!! - - Revision 573.113 2001/03/11 22:09:20 ajc - * Replaced the "citlogin" binary wrapper with the "loginwrapper.sh" script. - - Revision 573.112 2001/03/11 20:06:53 ajc - * Fixed bug that created incorrect roomnames when sending pages - - Revision 573.111 2001/03/11 19:23:32 ajc - * IMAP DELETE command ... also split up access control for room delete cmds - - Revision 573.110 2001/03/10 17:29:07 ajc - * Implement proper access control for deleting messages from IMAP - - Revision 573.109 2001/03/07 04:02:27 ajc - * Fixed some small IMAP bugs - - Revision 573.108 2001/03/06 04:44:00 ajc - * Probable completion of STATUS, COPY, STORE, and EXPUNGE commands in IMAP - - Revision 573.107 2001/03/06 03:31:58 nbryant - database-related cleanups and paranoia tests; - fixed a transaction-leak/deadlock problem in cdb_delete; - solved the SIGPIPE mystery (GDB stops on SIGPIPE is all it was) - - Revision 573.106 2001/03/05 04:59:31 ajc - * IMAP COPY - - Revision 573.105 2001/03/04 23:49:41 ajc - * IMAP EXPUNGE responses -should- be correct now - - Revision 573.94 2001/02/20 00:02:56 ajc - * IMAP: implemented the STATUS command (sort of). - - Revision 573.93 2001/02/19 22:24:41 ajc - * IMAP server: added untagged, unsolicited server messages for newly arrived - messages, and messages expunged by another session. - - Revision 573.92 2001/02/17 05:53:35 ajc - * Repaired the creation of page log rooms in the wrong namespace when the - recipient does not yet have his/her log room created. - * Rewrite "EXPI messages" to run in two passes: one to gather messages to - purge and the next to delete them. Works better in transactionland. - - Revision 573.91 2001/02/14 08:11:27 error - * citadel.rc: added RCS ID (it's about time!) - - Revision 573.90 2001/02/14 04:23:54 ajc - * Fixed POP3 server responses ending in \n instead of \r\n as they should be. - This was causing some clients (such as Pine) to lock up. - - Revision 573.89 2001/02/13 04:06:14 ajc - * Worked out the remaining bugs in IMAP FETCH for the BODYSTRUCTURE and - BODY[n] data items. I think. So much protocol crud, so little time... - - Revision 573.88 2001/02/13 01:18:44 ajc - * imap fetch - - Revision 573.87 2001/02/12 04:31:34 ajc - * sysdep.c ig_tcp_server() - use IPPROTO_TCP instead of getprotobyname() - - Revision 573.86 2001/02/08 04:45:58 ajc - * Fixed namespace problems resulting from the automatic namespece prefixing - added to create_room(). Also added the ability to specify "create a mailbox - but I've already supplied the namespace prefix" for situations where the - namespace isn't that of the logged in user. - * Made the POP3 server response messages slightly less humorous - - Revision 573.85 2001/02/06 04:44:12 ajc - * Added a floor listing (complete with \NoSelect flag) to LIST and LSUB - - Revision 573.84 2001/02/06 02:09:38 ajc - * citadel.rc: changed the default for local_screen_dimensions to 1, since - Internet users now outnumber dialup users 100 to 0. - * room_ops.c: added a really_create option to create_room(). Also moved the - generation of personal namespace into that function. MODULE OWNERS PLEASE - CHECK YOUR CALLS TO AVOID MULTIPLE NAMESPACING!! - * room_ops.c: fixed a bug in cgetfloor() that left bad pointers around - * serv_imap.c: finished the CREATE command (finally) - - Revision 573.83 2001/02/05 05:20:22 ajc - * Made some changes to functions which translate between Citadel room names - and IMAP folder names. They're still buggy. - - Revision 573.82 2001/02/04 23:17:28 ajc - * Implemented the IMAP CREATE command - - Revision 573.81 2001/02/04 02:40:07 ajc - * more imap. imap sucks. die crispin die. - - Revision 573.80 2001/02/03 10:02:12 error - * serv_ical.c: Verify that objects posted to My Calendar> are of type - text/x-calendar or text/calendar; abort saving if not - - Revision 573.79 2001/02/03 09:30:46 error - * serv_ical.c: now creates a My Calendar> personal room, sets attributes - - Revision 573.78 2001/02/03 08:21:00 error - * serv_ical.c and serv_ical.h added; skeleton code for now - - Revision 573.77 2001/02/02 20:18:18 ajc - * Changed the error message in cdb_delete() to actually *say* cdb_delete - instead of cdb_store. Useful to know which function failed... - - Revision 573.76 2001/02/01 04:08:03 ajc - * IMAP minor change to mailbox name output - * Increased size of buffer in lprintf() - - Revision 573.75 2001/01/28 09:50:02 error - * sysdep.c: lprintf() now generates timestamps - - Revision 573.74 2001/01/28 07:35:04 error - * serv_bio.c: RBIO now also returns stats about a user, see session.txt - - Revision 573.73 2001/01/16 04:03:13 ajc - * yeesh ... more on the IMAP BODYSTRUCTURE - - Revision 573.72 2001/01/16 01:51:12 ajc - * imap bodystructure - - Revision 573.71 2001/01/16 00:46:40 ajc - * Changed the MIME parser API *again* because we now need the ability to - supply callback functions to be executed before and/or after parsing a - multipart. (Need this for IMAP BODYSTRUCTURE output.) - - Revision 573.70 2001/01/15 23:59:26 ajc - * user_ops.c: reject NULL password in CtdlTryPassword() instead of crashing - - Revision 573.68 2001/01/15 20:34:04 ajc - * "Path:" removed for now because it confuses brain-dead Microsoft shitware - into thinking that mail messages are newsgroup messages instead. When we - add NNTP support back into Citadel we'll have to add code to only output - this field when appropriate. - - Revision 573.67 2001/01/15 16:30:31 ajc - * temporary implementation of 901 asynchronous express messages - - Revision 573.66 2001/01/14 14:55:39 ajc - * Changed the format of <.W>holist ong - - Revision 573.65 2001/01/13 06:40:26 nbryant - merged remaining changes from TRANSACTIONS (using cvs update -j TRANSACTIONS) - which should now be considered closed. - - Revision 573.64 2001/01/13 06:12:15 ajc - * Added the ASYN command - - Revision 573.63 2001/01/12 22:05:46 ajc - * Fixed a bug that caused bogus wholist lines to be displayed when a non-aide - reads a list containing stealth mode sessions. - - Revision 573.62 2001/01/09 05:39:45 ajc - * Merged in code from the TRANSACTIONS branch for testing. - - Revision 573.61 2000/12/30 06:17:17 ajc - * Still more work on IMAP. Damn this is tedious. - - Revision 573.60 2000/12/30 04:55:05 ajc - * more buffer size stuff - - Revision 573.59 2000/12/27 20:19:51 ajc - * The size constant "256" which shows up everywhere as a buffer size has now - been changed to SIZ. And, SIZ has been defined now as 1024, not 256, because - we need 1024 byte buffers for most Internet protocols. - - Revision 573.58 2000/12/27 05:09:58 ajc - * Added a skeleton IMAP "SEARCH" command (based on the FETCH logic) - - Revision 573.57 2000/12/26 03:46:50 ajc - * More IMAP tweaks - - Revision 573.56 2000/12/25 22:50:43 ajc - * Added an API function to extract and unfold specific RFC822 fields. - * imap-->fetch-->envelope-->in-reply-to now works - * More robust checking and reporting of temp file errors in the client - - Revision 573.55 2000/12/25 20:43:24 ajc - * imap_fetch.c: added support for fetch-->envelope-->from - - Revision 573.54 2000/12/20 04:09:24 ajc - * A few memory handling fixes to netproc. - - Revision 573.53 2000/12/20 01:57:37 ajc - * netproc.c: added bounds check to fpgetfield() - - Revision 573.52 2000/12/19 20:41:55 ajc - * Fixed generation of unique file names for network uploads etc. - - Revision 573.51.2.11 2000/12/26 05:30:55 nbryant - remove extraneous transaction around dynamic module initializations. this will - fix the crash on database creation. - - Revision 573.51.2.10 2000/12/24 23:00:58 nbryant - clean: also remove parsedate.c - - Revision 573.51.2.9 2000/12/20 01:38:42 nbryant - require transactional cursors - - Revision 573.51.2.8 2000/12/20 00:30:01 nbryant - release any stale db handles at the end of a server command - (unfinished transactions will be aborted to annoy lazy programmers) - - Revision 573.51.2.7 2000/12/19 06:18:27 nbryant - set sched_yield as sleepycat's yield function. this should improve locking - performance. - - Revision 573.51.2.6 2000/12/19 02:22:29 nbryant - added automatic transaction start/end on cdb_fetch, cdb_delete, and cdb_store - - Revision 573.51.2.5 2000/12/18 03:51:13 nbryant - ditto S_USER_TRANS, S_CALLLOG, and S_HOUSEKEEPING, which are no longer used at - all - - Revision 573.51.2.4 2000/12/18 02:49:17 nbryant - removed all references to S_MSGMAIN critical section; it wasn't really needed. - this should make things significantly more scaleable. - - Revision 573.51.2.3 2000/12/17 22:12:48 nbryant - reworked shutdown sequence to wait for worker threads to terminate before - checkpointing and closing databases. it is no longer safe to call - master_cleanup() directly to force a shutdown; instead, just set - time_to_die to a nonzero value - - Revision 573.51.2.2 2000/12/17 05:06:09 nbryant - added deadlock detection and cleaned up messages - - Revision 573.51.2.1 2000/12/16 21:06:59 nbryant - created TRANSACTIONS branch - track cursor and transaction id's in thread-specific data - - Revision 573.51 2000/12/14 18:36:34 ajc - * Fixed the "users not in chat" wholist display - - Revision 573.50 2000/12/12 18:06:46 ajc - * Removed the transaction stuff (but left the log in). It wasn't working. - - Revision 573.49 2000/12/12 06:19:55 ajc - * Stabilize, dammit!! - - Revision 573.48 2000/12/12 04:20:03 ajc - * Made the transaction open/close a global thing, in a frantic attempt to get - Uncensored to stop crashing. More fixes on the way... - - Revision 573.47 2000/12/11 06:08:41 ajc - * Removed the housekeeper thread, moved terminate_idle_sessions() out to a - timer event, and check_sched_shutdown() to the end of the worker thread - loop. Seems to have improved reliability (but why?) - - Revision 573.46 2000/12/11 03:22:11 ajc - * Added server-side REQT command to issue client termination requests - - Revision 573.45 2000/12/11 02:19:26 ajc - * Client now honors EM_GO_AWAY flag, used by the server to request that a - client log off. (The server doesn't support sending that flag yet, though) - - Revision 573.44 2000/12/09 06:20:06 ajc - * A few final touches to the Sleepycat DB back-end - - Revision 573.43 2000/12/08 17:06:33 ajc - * Wrap txn_begin and txn_end in S_DATABASE mutex - - Revision 573.42 2000/12/07 20:21:39 ajc - * begin/end transaction in master_startup() - - Revision 573.41 2000/12/07 16:59:02 nbryant - added --with-db and --with-gdbm options to configure - - Revision 573.40 2000/12/07 04:50:33 ajc - * Wrap housekeeper and timer events in transaction open/close functions - * Checkpoint the DB as an EVT_TIMER event instead of after each session - (runs each minute, but actually limited by the parameters of the function) - - Revision 573.39 2000/12/06 04:44:36 ajc - * Changed netproc to keep the use table in a flat file instead of a database - - Revision 573.38 2000/12/05 05:32:58 ajc - * Added support for non-USA country identities in vCard and registration - * User edit now asks whether it should prompt to change the password - - Revision 573.37 2000/12/03 04:12:21 ajc - * Finished (mostly) the Sleepycat DB backend ... added transaction logging - - Revision 573.36 2000/11/30 03:23:17 ajc - * Got the Sleepycat DB back end working, by opening the databases in a non - shared, non threaded mode, and using Citadel's locking to serialize access. - - Revision 573.35 2000/11/29 05:00:02 ajc - * I think the db stuff is ok, but my db library is fux0red... - - Revision 573.34 2000/11/27 14:12:09 error - * commands.c: fixups to print_express() to make external command not print - extraneous stuff to the terminal and make the displayed message consistent - - Revision 573.33 2000/11/27 10:41:14 error - * print_express(): now uses GEXP instead of old PEXP; displays timestamps - - Revision 573.32 2000/11/27 10:29:59 error - * serv_chat.c: fix send_express_message() to include timestamps - - Revision 573.31 2000/11/27 03:44:27 ajc - * Initial checkin of database_sleepycat.c (doesn't work yet) - - Revision 573.30 2000/11/26 05:24:22 ajc - * msgbase.c: Added new API function CtdlOutputPreLoadedMsg(), and - re-implemented the existing CtdlOutputMsg() as a wrapper around it. - * imap_fetch.c: used the above function to do all output pre-loaded - - Revision 573.29 2000/11/25 09:36:18 error - * Added a bit of detail to syslog entries; now shows session id attached to - client, hostname, and username, and time the session ended. - - Revision 573.28 2000/11/25 06:17:06 ajc - * Minor IMAP tweaks. It still doesn't work. :( - - Revision 573.27 2000/11/23 07:22:21 error - * citadel.spec: update version number - - Revision 573.26 2000/11/21 11:12:56 error - * domain.h: changed the HP/UX compatibility code to use defines from - typesize.h for integers of specific bit widths (needed for Solaris, etc) - - Revision 573.25 2000/11/12 04:20:49 ajc - * Optimized server side input of message text - - Revision 573.24 2000/11/10 03:55:06 ajc - * Ford's Fix for Faster Functionality (save position during reply) - - Revision 573.23 2000/11/09 04:48:50 ajc - * tools.c: striplt() strips all whitespace, not just spaces - - Revision 573.22 2000/11/07 20:47:21 ajc - * imap_fetch.c: added a skeleton "ENVELOPE" fetch. Currently sends NIL's. - - Revision 573.21 2000/11/07 15:54:53 ajc - * xx FETCH n:n BODY[pn.MIME] now works - - Revision 573.20 2000/11/06 05:10:01 ajc - * Changed the mime_parser() API (again) to allow "don't decode" mode - - Revision 573.19 2000/10/29 18:11:07 ajc - * Start numbering top-level MIME parts as 1, 2... not 1.1, 1.2... - - Revision 573.18 2000/10/28 14:14:19 error - * msgbase.c: eliminated most gotos; a single goto in alias() remains because - it actually makes sense to do it that way... - - Revision 573.17 2000/10/25 21:37:09 ajc - * Implemented the AUTHENTICATE LOGIN command in IMAP - - Revision 573.16 2000/10/25 19:20:37 ajc - * FETCH now works for ranges *and* sets, and with sequence numbers *and* UID's - - Revision 573.15 2000/10/24 20:39:59 ajc - * Added RFC822, RFC822.HEADER, RFC822.SIZE, RFC822.TEXT fetch keys to IMAP - - Revision 573.14 2000/10/23 20:26:51 error - * War on goto: rewrote a few easy functions to eliminate unnecessary gotos - - Revision 573.13 2000/10/11 23:03:44 error - * utilsmenu: obey $PAGER environment var, if any. Default to more if neither - $PAGER nor less is available. - - Revision 573.12 2000/10/11 22:55:25 error - * citadel.c: when ansi_color=user, enable color at login, so Lobby> posts - displayed at login are in color - - Revision 573.11 2000/10/11 22:47:51 error - * domain.c: getmx() returns hostname as MX if no MX records found a la RFC 974 - - Revision 573.10 2000/10/10 19:18:12 ajc - * Added support of macros ALL, BODY, FAST, and FULL to the IMAP FETCH command - - Revision 573.9 2000/10/06 03:31:55 ajc - * IMAP is a convoluted mess. - - Revision 573.8 2000/10/05 22:23:16 ajc - * Slowly and painfully writing IMAP support - - Revision 573.7 2000/10/04 22:39:06 ajc - * Added skeleton versions of the LIST and LSUB commands to the imap server - - Revision 573.6 2000/10/04 17:48:21 ajc - * Allow Aides to zap rooms (site configurable setting) - - Revision 573.5 2000/10/03 01:45:00 ajc - * Changed the <.A>ide ysconfig eneral command to explicitly allow the - global page log room to be disabled (answer "no" to set the log room to a - null string) - - Revision 573.4 2000/09/28 10:27:38 error - * 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 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 - protocol sessions. (This was affecting POP etc.) - - Revision 573.1 2000/09/11 22:05:04 ajc - * citadel.c: accept -h and -p arguments, so citadel can be called - directly by telnetd, bypassing /bin/login. It works, but not recommended at - this time because it has to run as root. - - Revision 573.0 2000/09/05 18:35:22 ajc - * Tagged everything for version 5.73 release - - 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 - - Revision 572.37 2000/09/01 17:31:47 ajc - * 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 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 572.34 2000/09/01 03:43:09 ajc - * Added 'author' command-line arg to aidepost. Closes enhancement request - #71 on bugzilla. - * Put the default SMTP and POP3 ports back to 25 and 110. Now that the - unix domain socket bug is fixed, it's ok if these binds fail. - - Revision 572.33 2000/08/31 23:02:15 ajc - * ig_tcp_server() and ig_uds_server() - check to make sure queue length is - always at least 5. Zero-length queues can cause connection lockups. - - Revision 572.32 2000/08/31 21:32:44 ajc - * Still trying to fix a socket connect bug - - Revision 572.31 2000/08/31 16:37:08 ajc - * docs/import-export.txt: added. - - Revision 572.30 2000/08/28 19:51:51 ajc - * messages.c: cosmetic cleanup (coding convention and comments) - - Revision 572.29 2000/08/26 20:23:18 ajc - * Finished up the back end code for mailing list sends. Sends now work! - - Revision 572.28 2000/08/24 02:48:18 ajc - * Merged in IO ERROR's diffs to make Citadel work with HP/UX - - Revision 572.27 2000/08/22 02:31:47 ajc - * nonce (for APOP-style auth) is now generated when a context is created - instead of during protocol greeting functions. - * Moved Citadel protocol nonce output from greeting to INFO - - Revision 572.26 2000/08/18 21:09:36 ajc - * Added a little more mailing list code to serv_network.c - - Revision 572.25 2000/08/10 04:36:25 ajc - * Fixed a bug in keyboard polling (in commands.c) which was causing the - client protocol to get out of sync in certain conditions. - - Revision 572.24 2000/08/10 02:42:13 ajc - * Changed all the "200 ok" responses to more descriptive strings - * Added a *temporary* protocol sync check. Remove this! - - Revision 572.23 2000/08/09 17:14:34 ajc - msgbase.c: fixed a bug in - remove_any_whitespace_to_the_left_or_right_of_at_symbol() that was - causing the eply function to fail on names with whitespace in - certain parts of the string. This closes Bug #56. - - Revision 572.22 2000/08/05 04:24:00 ajc - * Added [idle] to client wholist display for sessions idle >15 minutes - * Added a generic "void *userdata" field to CtdlForEachMessage() - * More prep for mailing list handling in the server - - Revision 572.21 2000/07/30 04:36:12 ajc - * Set up the SNET (Send NETwork config) and GNET (Get NETwork config) commands - for the network overhaul. - - Revision 572.20 2000/07/29 05:29:19 ajc - * Changed the format of RWHO output to provide non-masqueraded user/room/host - names (to Aides only) as additional fields rather than an extra line of - output. - * Changed the client to display new RWHO fields, in the "long" wholist only. - * Default SMTP and POP ports are now -1, not 25/110. These services must now - be activated manually. - - Revision 572.19 2000/07/24 00:39:13 ajc - * Fixed a path problem when calling netmailer from mailinglist.c - - Revision 572.18 2000/07/22 03:44:17 ajc - * Prepared infrastructure for the networker rewrite - - Revision 572.17 2000/07/17 02:38:08 ajc - * Completed serv_vandelay.c (importer/exporter module) - * sendcommand.c: fix behavior of SEND_LISTING mode - * sysdep.c: client_gets() fill buffer with "000" terminator when returning -1 - - Revision 572.16 2000/07/14 03:06:55 ajc - * Added .ATN (DOWN) and .ATS (SCDN 1) commands to the client - - Revision 572.15 2000/07/10 23:36:08 ajc - * Another attempt to fix the crashy crashy bug in serv_vcard - * Did more work on the Art Vandelay module - * Replaced all instances of sprintf(tempfile, tmpnam(NULL)) with strcpy() - - Revision 572.14 2000/07/10 04:01:12 ajc - * added an unfinished serv_vandelay.c (Art Vandelay module - importer/exporter) - - Revision 572.13 2000/07/09 02:47:40 ajc - * Overhauled the keepalive logic in the chat client. Closes bug #20. - - Revision 572.12 2000/07/09 02:27:02 ajc - * Eliminated the whole SIGINT/SIGQUIT based handling of Ctrl-O and Ctrl-C - keyboard interrupts. Replaced with a non-blocking check for keyboard input - which sets the global variable 'sigcaught' if either key was pressed. - fmout() and pprintf() switch to 'drain mode' if sigcaught is set. - This closes Bug #18. - - Revision 572.11 2000/07/06 20:26:36 ajc - * updated .Help SUMMARY - - Revision 572.10 2000/07/04 20:02:46 ajc - * Fixed potential crashy crashy bug in serv_vcard.c - - Revision 572.9 2000/06/28 03:42:56 ajc - * Changed the comments at the beginning of each file to a consistent format - * Improved the parameterization of commands in the IMAP module - - Revision 572.8 2000/06/27 01:27:13 ajc - * Coupla very small changes to get on the road to IMAP support - - Revision 572.7 2000/06/22 21:41:48 ajc - * Made the ICQ stuff far more reliable ... by removing it! - - Revision 572.6 2000/06/21 03:46:20 ajc - * IMAP is now legal but useless, supporting NOOP, LOGIN, and LOGOUT. - - Revision 572.5 2000/06/15 20:15:52 ajc - * Inserted a skeleton IMAP module into the build. IT DOES NOT WORK AT ALL. - - Revision 572.4 2000/06/04 02:30:56 ajc - * CtdlForEachMessage() now returns the number of messages processed. It also - accepts the MSGS_EQ mode, for targeting a specific message number (useful - for determining whether the specified message actually exists in a room). - * Completed the server side of the moderation system (serv_moderate.c module - which implements the MMOD command) - - Revision 572.3 2000/06/03 05:47:57 ajc - * Replaced most of the very repetitive and very redundant access level checks - in most commands with a single API call: CtdlAccessCheck() - * serv_moderate.c: added (not finished) - - Revision 572.2 2000/06/02 03:38:50 ajc - * Bind unix socket prior to TCP socket for citadel protocol - * Fixed bug in sendcommand.c which was causing it to crash on attach - - Revision 572.1 2000/05/26 19:27:51 ajc - * Changed some of the rev-level sensitive stuff to look at the actual version - of Citadel running, not the last version with which we ran setup - * Added a moderation system. Default filter level for new users is in the - config file. Per-user setting is in usersupp. Moderation level of each - message is in SuppMsgInfo. Tweaked CONF, GETU, and SETU. Read filter is - working. Moderate message up/down commands are not here yet. See - techdoc/moderation.txt for more info. - - Revision 572.0 2000/05/23 02:09:30 ajc - * Updated docs and tagged everything for the 5.72 release - - Revision 571.7 2000/05/20 23:28:20 ajc - * Fixed bug in client API that was causing netproc to crash - - Revision 571.6 2000/05/15 00:05:19 ajc - * Double the retry interval for SMTP deliveries after each failed attempt. - - Revision 571.5 2000/05/11 03:08:47 ajc - * serv_smtp.c: clear the relevant state buffers after an SMTP DATA command - completes, allowing multiple messages in one session. Closes bug #58. - - Revision 571.4 2000/04/24 03:36:43 ajc - * Removed references to strucmp() and struncmp(), replaced them with - strcasecmp() and strncasecmp() as we did in the server a while ago, and - set up the config script to figure out whether they need to be compiled - in. Also moved them to tools.h - * Wrote a password manager for the client - - Revision 571.3 2000/04/19 03:17:10 ajc - * Don't ever expire the Local System Configuration> room - - Revision 571.2 2000/04/16 19:03:47 ajc - * Minor changes to avoid host lookup for local clients - - Revision 571.1 2000/04/15 19:55:52 ajc - * Fixed "Unvalidated users appear even with registration disabled" bug #36 - - Revision 571.0 2000/04/13 02:43:24 ajc - * Fixed a problem that crashed the client during oto commands if a room - existed with a name more than 32 characters (thanks to Magus for reporting - this one). - * Tagged everything and updated docs for the 5.71 release - - Revision 570.18 2000/04/10 01:47:22 ajc - * More paginator changes. Shuffled code around, added pagination to a bunch - of other functions, and replaced the old, cumbersome pagination with the - new, easy, API-based one in everything except message output. - - Revision 570.17 2000/04/09 17:51:18 ajc - * Added pprintf() (paginated version of printf) to the client-side API. Now - any client side function can be paginated simply by changing all of the - printf's to pprintf's. I've already done this for the user list and wholist - (removing the old style pagination) and for "read directory." - - Revision 570.16 2000/04/08 04:52:48 ajc - * Another minor stoopid little time display fix - - Revision 570.15 2000/04/08 03:58:12 nbryant - * backed out the previous changes since they didn't look good on some - xterms with a blue bold mode. just set the background color to black - instead. this makes black-on-white terminals actually readable, if not - particularly good looking. - - Revision 570.14 2000/04/08 01:36:30 nbryant - * citadel.c, commands.c: comment out cls() as this wasn't called if - ansi_color=user anyway, and we have no way of knowing whether the user's - terminal does background color erase, which was the reason for adding this - in the first place. with the recent changes to color(), the display will get - screwed up if they *do* have background color erase. perhaps this is a job - for terminfo. - - Revision 570.13 2000/04/08 00:37:42 nbryant - * commands.c: fix color support for black-on-white color terminals such as - CDE's dtterm. this just avoids white-on-white text; some color combinations - such as yellow-on-white still aren't very legible due to contrast. There's - not much I can think to do about that without affecting the look on the - white-on-black terminals which probably account for most users. - - Revision 570.12 2000/04/07 20:22:34 ajc - * Fixed am/pm bug in time display - - Revision 570.11 2000/04/07 19:22:45 ajc - * For services disabled by setting port number to -1, administratively skip - the bind instead of just allowing it to fail. - - Revision 570.10 2000/03/31 04:31:02 ajc - * Quick fix to 'stats' utility to purge records with bogus timestamps - - Revision 570.9 2000/03/31 02:10:52 ajc - * Caved in to pressure and enabled eply in public rooms. - - Revision 570.8 2000/03/28 03:55:53 ajc - * Modified <.RU> to allow search for partial match - - Revision 570.7 2000/03/27 03:08:19 ajc - * Third parameter of CtdlDeleteMessages() now takes "" instead of NULL to - specify 'any MIME type'. - - Revision 570.6 2000/03/27 01:14:08 nbryant - * Makefile.in: generate parsedate.c automatically - * configure.in: check for bison/byacc/yacc. bison seems to build cleaner - code. - * parsedate.c: removed from CVS - * parsedate.y: added #include so it builds with bison - - Revision 570.5 2000/03/27 00:46:10 nbryant - * First cut at Solaris fixes. There may still be some *printf("%s", NULL) - type of issues lurking in the shadows. - - Revision 570.4 2000/03/25 18:29:58 nbryant - changed my email address - - Revision 570.3 2000/03/23 02:41:50 ajc - *** empty log message *** - - Revision 570.2 2000/03/21 03:23:24 ajc - * Experimental new linebreak mode - - Revision 570.1 2000/03/20 14:43:19 ajc - * "Brown paper bag" fix for SMTP bug (incoming long fields crash logger) - - Revision 570.0 2000/03/19 23:42:34 ajc - * This is the official 5.70 release. - - Revision 1.494 2000/03/19 23:04:08 ajc - * Small cosmetic change to date/time output - - Revision 1.493 2000/03/19 05:02:39 ajc - * SMTP hacks to deal with AOL braindamage - - Revision 1.492 2000/03/18 18:18:04 ajc - * Support multiline responses from SMTP servers when sending mail - - Revision 1.491 2000/03/17 16:26:57 ajc - * Set up a private "Sent/Received Pages" room for each user - - Revision 1.490 2000/03/17 04:11:24 ajc - * Moved bio-related commands out to a loadable module - - Revision 1.489 2000/03/16 17:58:54 smw - Created a docs directory. - Moved install.txt to docs. - 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) - Made a couple of changes to install.txt (references to new documentation) - Added Steve Williams to copyright.txt as the document writer. - -Revision 1.488 2000/03/15 03:04:51 ajc -* Added DEXP server command to disable incoming express messages. -* uiet mode client side command to set/clear DEXP mode. -* nown rooms list displays through the paginator. - -Revision 1.487 2000/03/12 00:21:35 ajc -* Removed the semi-broken "chat room" functionality in the chat system, and - replaced it with direct mapping to the actual Citadel room the user is in. -* Display masqueraded roomname in chat, if applicable. Fixes bug #19. - -Revision 1.486 2000/03/11 21:29:37 ajc -* SM_ flags for CtdlSaveMsgPointerInRoom() need to be a bit bucket, not an - enum, since more than one can be passed. Changed SM_DONT_BUMP_REF_COUNT - from 3 to 4. This also fixes bug #33. - -Revision 1.485 2000/03/11 20:26:03 ajc -* Reworked the eply logic in messages.c - fixes bug #34 - -Revision 1.484 2000/03/11 19:22:19 nbryant - * commands.c: improved timing of background keepalives if connection is - lagged - -Revision 1.483 2000/03/11 05:08:48 nbryant - * commands.c: oops, that mutex stuff wasn't necessary - -Revision 1.482 2000/03/11 04:09:03 nbryant - * new threaded client code for background keepalives - -Revision 1.481 2000/03/10 21:40:04 ajc -* Changes to message base and networker to support Internet-style message - ID's instead of the conventional Citadel style. - -Revision 1.480 2000/03/08 03:36:37 ajc -* Shut off hostname resolution when dealing with Unix domain sockets -* Cleaned up the 'citmail' MDA tool -* Added POP3 and SMTP port numbers to global system configuration - -Revision 1.479 2000/03/07 21:54:58 ajc -* Fixed the naming conventions and permissions for unix domain sockets. - -Revision 1.478 2000/03/05 07:33:23 ajc -* Added support for protocols over Unix domain sockets. - -Revision 1.477 2000/03/04 22:36:23 ajc -* Remove nulls appended to editor files during replace, edit, and print - operations. Truncate temp files during same operations. - Closes bugs #6 and #7. - -Revision 1.476 2000/03/04 05:29:18 ajc -* Relax restrictions on editing of base rooms. Renaming is not allowed but - all other attributes can be edited. Closes feature request #21. -* Sending pages from the client now uses the same message editing functions - as entering messages, allowing edit/abort. Closes feature request #25. - -Revision 1.475 2000/03/03 04:50:14 ajc -* Moved all of the wholist masquerading commands into the serv_rwho module - -Revision 1.474 2000/03/03 04:12:37 ajc -* Finished the inbound side of gateway domain service - -Revision 1.473 2000/02/27 04:55:51 ajc -* Added "keymenu()" generic menu-maker to commands.c -* Blocked non-numeric input to intprompt() (fixes bug #16) - -Revision 1.472 2000/02/27 03:57:35 ajc -* Completed 'fsck'-like reference count verifier (server and client) - -Revision 1.471 2000/02/26 18:30:40 ajc -* Properly handle all aliases specified in network/mail.aliases for incoming - SMTP mail (uses the alias() function, so if we replace that function with - something that uses the same calling convention, it'll still work) - -Revision 1.470 2000/02/26 05:15:38 ajc -* Fortified the message base and SMTP code so that misdirected bounce messages - end up in the Aide> room instead of getting dereferenced -* Started writing a message reference count verifier ('fsck' for message base) - -Revision 1.469 2000/02/25 06:14:05 ajc -* Modularized the RWHO (Read WHO is online) command, basically as a pilot - for modularizing all "non-API" functionality. - -Revision 1.468 2000/02/24 03:44:00 ajc -* Implemented holdoff time (15 minutes) for SMTP send retry. -* Implemented "try for 3 days and then give up" on SMTP send. - -Revision 1.467 2000/02/24 00:51:48 ajc -* Client protocol synchronization check during exit from chat. - This closes Bug #15. - -Revision 1.466 2000/02/22 16:37:28 ajc -* Minor tweaks to RFC822 output to keep brain-damanged MS Outlook from dying - -Revision 1.465 2000/02/22 04:17:56 ajc -* Got bounce messages working (mostly ... testers, please beat this up!) -* Changed 'FIX' comments to 'FIXME' (less conflict, plus vim highlights it!) - -Revision 1.464 2000/02/18 22:29:18 ajc -* Coded up the "bounce" functions. Still a coupla bugs. - -Revision 1.463 2000/02/18 05:10:50 ajc -* Made the <.ASI> command a bit friendlier. -* SMTP sender now pays attention to "smarthost" entries in the system's - Internet configuration, using them if one or more is present. - -Revision 1.462 2000/02/17 05:27:39 ajc -* Got the "MAIL From:" command sending the correct data. (unnnhhhhnnhhhh...) - -Revision 1.461 2000/02/16 22:06:26 ajc -* Altered the display and conversion of RFC822 messages - -Revision 1.460 2000/02/16 03:43:28 ajc -* Added the resolver library to the configure script - -Revision 1.459 2000/02/16 01:19:39 ajc -* Vanquished the evil dn_expand() beast. getmx() now seems to be working. - -Revision 1.458 2000/02/14 04:36:14 ajc -* sysdep.c: added new event hook type EVT_TIMER. Timer event hooks are called - once per minute by any worker thread. -* msgbase.c: removed dependence on nested functions in CtdlOutputMsg() by - replacing them with an API call CtdlRedirectOutput() in sysdep.c, which - can temporarily redirect a session's output to an arbitrary file or socket. -* serv_smtp.c: implemented the purging of messages in the queue for which all - deliveries have been completed. -* serv_smtp.c: removed temporary 'QQQQ' server command and replaced it with - a timer event hook that runs the queue once per minute (this needs to be - made more robust) - -Revision 1.457 2000/02/08 21:00:47 ajc -* Implemented the deprecated "LAST" command in POP3. Some clients need it. -* POP3 sessions now set the last-read pointer in Mail>. - -Revision 1.456 2000/02/07 05:15:00 ajc -* Renamed CtdlLocalHost() to CtdlHostAlias() and worked it a little deeper into - the message routing logic. Still needs some work on the gateway-domain - stuff. -* Twiddled CtdlOutputMsg() a bit for 'all Internet' situations. Still needs - some work to avoid printing dual headers when both Cit and RFC822 exist. - -Revision 1.455 2000/02/03 03:57:35 ajc -* Formalized the 'Internet Configuration' logistics. Added new API call - CtdlLocalHost() to detect aliases for the local host. Used in SMTP listener. - -Revision 1.454 2000/01/31 02:13:05 ajc -* <.A>ide ystem configuration nternet in the client (unfinished) - -Revision 1.453 2000/01/26 02:41:27 ajc -* SMTP delivery is working but still *very* rough. - -Revision 1.452 2000/01/25 04:45:50 ajc -* Wrote enough of the SMTP sender to get Patriot drooling over it, but not - enough to complete the transmission of mail. - -Revision 1.451 2000/01/23 21:25:45 ajc -* Temporary hack to ig_tcp_server() to listen on an arbitrary port if the - one specified is not bindable (for development only) -* Added SM_DONT_BUMP_REF flag to CtdlSaveMsgPointerInRoom() to be used only - in very specific and special situations -* Generate delivery instructions when outbound SMTP mail is created from - within Citadel (as opposed to being from the SMTP module) - -Revision 1.450 2000/01/23 05:22:41 ajc -* Coded up some more of the SMTP-sender (still not done) - -Revision 1.449 2000/01/22 05:13:56 ajc -* Added some more functionality to the string tokenizer - -Revision 1.448 2000/01/17 20:57:43 ajc -* CR to CRLF hacks (lose, lose, lose) - -Revision 1.447 2000/01/17 18:30:27 ajc -* Completed POP3 server. All RFC1939 commands except APOP are implemented. - -Revision 1.446 2000/01/17 17:09:23 ajc -* Implemented LIST and STAT commands in the pop3 server - -Revision 1.445 2000/01/17 05:38:14 ajc -* citserver.c: cleanup hook functions are now run under the proper context, - even when initiated by the housekeeper thread -* serv_pop3.c: establish a place to hold the message list - -Revision 1.444 2000/01/17 04:26:39 ajc -* Modified CtdlOutputMsg() to handle output to arbitrary sockets or files. - This uses nested functions and may not be portable beyond GCC... - -Revision 1.443 2000/01/15 18:29:15 ajc -* Added a generic (void *) parameter to the ForEachUser() and ForEachRoom() - callback mechanisms, to allow callers and callbacks to pass arbitrary data - between each other without requiring TSD variables. -* room_ops.c: eliminated the need for 'FloorBeingSearched' TSD variable -* internet_addressing.c: eliminated 'buffer1' and 'buffer2' TSD variables - -Revision 1.442 2000/01/15 04:31:44 ajc -* Removed UI_DIALOG mode in setup. Can't count on 'dialog' to be consistent. - -Revision 1.441 2000/01/15 04:07:17 ajc -* Fixed the access rights on auto-created rooms (the same changes that were - made to version 5.62 in the stable tree) - -Revision 1.440 2000/01/13 03:32:36 ajc -* techdoc/delivery-list.txt: added (syntax for delivery lists) -* domain.*: added (will contain MX lookup code) -* internet_addressing.c, logging.c: fixed some buffer overflow bugs - -Revision 1.439 2000/01/12 03:56:27 ajc -* sysdep.c: start the housekeeping thread *after* dropping root perms. - -Revision 1.438 2000/01/09 19:03:16 ajc -* Removed the fifo-based protocol downloads and replaced it with a less - elegant "download temporary file to client, then sx/sb/sz" because - downloading through a fifo was confusing some software. - -Revision 1.437 2000/01/08 22:19:44 ajc -* Completed spool to outbound delivery queue (still no queue sender implemented) - -Revision 1.436 2000/01/08 05:00:09 ajc -* Reworked some of the data structures to handle multiple recipients -* Began implementation of the delivery queue -* Added CtdlReallocUserData() -* CtdlSaveMsg() now returns the local message ID in the database - -Revision 1.435 2000/01/06 03:50:34 ajc -* Replaced citmail.c with a new one that simply SMTP-forwards to Citadel -* Started outbound SMTP queue work - -Revision 1.434 1999/12/30 04:56:29 ajc -* Got initial SMTP delivery working in a very specific situation (delivery - to a single, local user) - -Revision 1.433 1999/12/29 04:44:00 ajc -* client_chat.c: display "No message sent" if a send page is aborted. - Closes bug #2 in bugzilla. - -Revision 1.432 1999/12/26 21:50:07 ajc -* serv_vcard: don't run hooks when not logged in (such as in SMTP sessions) -* serv_pop3: added. This is the skeleton for a module implementing POP3. - -Revision 1.431 1999/12/23 04:46:23 ajc -* "Finished" initial hack of RFC822 import - -Revision 1.430 1999/12/22 04:46:34 ajc -* Fixed up the "Date:" headers to be RFC822-compliant - -Revision 1.429 1999/12/13 05:30:57 ajc -* Removed our naive 'conv_date()' RFC822-to-unixtime conversion function - and replaced it with the public domain 'parsedate()' function from UseNet - -Revision 1.428 1999/12/10 23:58:25 ajc -* internet_addressing.c: added. (Internet address to Citadel mapping) - -Revision 1.427 1999/12/10 21:34:19 ajc -* serv_smtp: implemented RFC821 "VRFY" and "EXPN" commands - -Revision 1.426 1999/12/09 05:01:14 ajc -* Split cmd_user() and cmd_pass() into frontend/backend functions -* serv_smtp: implemented AUTH LOGIN for client authentication - -Revision 1.425 1999/12/09 00:22:58 ajc -* Finished the "arbitrary service" registration. -* Eliminated "special" master socket for Citadel protocol - just register it - like any other protocol. -* Began initial implementation of native SMTP service. - -Revision 1.424 1999/12/08 18:09:10 ajc -* Added CtdlRegisterServiceHook() and its data type, for implementing arbitrary - TCP-based services directly in the Citadel server. Not finished yet. - -Revision 1.423 1999/11/29 17:39:07 nbryant -* citserver.c: Solaris lacks inet_aton; use inet_addr instead - -Revision 1.422 1999/11/29 17:26:15 nbryant -* citserver.c: include ; may help portability to Solaris - -Revision 1.421 1999/11/22 00:27:42 ajc -* Added some temporary variables to OpenCmdResult(). Hopefully fixes - bug #14 when running on FreeBSD. - -Revision 1.420 1999/11/21 18:30:16 ajc -* Protected cmd_move() from buffer overrun (no longer crashes the server) -* cmd_chat() -- truncate input at 100 characters to prevent buffer overruns. - Also handle broken client sockets properly. (Thanks to DME for bug report) - -Revision 1.419 1999/11/19 01:57:40 ajc -* Fixed a *serious* memory leak in the database function wrappers. -* Updated version number to 5.60 -- run setup when installing this version. - -Revision 1.418 1999/11/18 03:29:20 ajc -* Changed the order of parameters in <.A>ide ystem config into a more - logical grouping. - -Revision 1.417 1999/11/18 02:31:50 ajc -* Updated some of the documentation -* Brought the internal version number up to 5.60 - -Revision 1.416 1999/11/17 04:15:05 ajc -* Removed the session_count() function. Instead, keep a reference count - updated when sessions begin and end. -* Replaced fixed number of worker threads with lower and upper limits; current - code now tries to make thread count == session count, within these limits - -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 CTDLUID - (Resolves bug #11 from the Bugzilla repository) - -Revision 1.414 1999/11/15 03:07:24 ajc -* Fixed the network-wide vCard purge logic so that it (1) actually works, - and (2) forces a netproc run immediately when a purge is entered - -Revision 1.413 1999/11/09 21:20:44 nbryant -* configure.in: include when doing checks which require - (should fix Bug #10 on FreeBSD) - -Revision 1.412 1999/11/05 03:53:47 ajc -* Issue 'cancel' messages for vCard when a user is deleted. -* Try to delete 'cancel' messages locally after they've been distributed. - -Revision 1.411 1999/11/03 04:01:20 ajc -* Fixed buffer overrun problems in cmd_rchg(), cmd_hchg(), and cmd_uchg() -* Removed my email address as the feedback content from the docs; replaced - it with a reference to the Citadel web site. - -Revision 1.410 1999/11/02 19:51:23 ajc -* Fixed timeout problem for remote client sessions (all timeouts were set to - 1 second ... probably a temporary hack that was missed in the cleanup) - -Revision 1.409 1999/11/02 03:03:27 ajc -* Several fixes to msgbase.c and netproc.c to prevent corrupted incoming - network traffic from crashing the server. Reject bad messages. - -Revision 1.408 1999/11/01 04:21:34 ajc -* Fixed a concurrency bug which crashed the server when multiple sessions - terminated simultaneously. - -Revision 1.407 1999/11/01 00:54:02 ajc -* CtdlFetchMessage() - generate a "" message body if there's none - on disk. Too much stuff goes haywire if there's no M field. - -Revision 1.406 1999/10/31 18:17:17 ajc -* Fixed buffer overrun in cmd_rchg() -* Call master_cleanup() when time_to_die==1 for proper shutdown - -Revision 1.405 1999/10/31 16:26:55 ajc -* Fixed incorrect assignment of new session ID's - -Revision 1.404 1999/10/31 04:17:17 ajc -* Fixed a bug which was crashing the server during very long message entry. - -Revision 1.403 1999/10/29 01:48:45 ajc -* database.c: Removed arbitrary limit on maximum number of sessions - -Revision 1.402 1999/10/29 01:03:03 ajc -* Debugged all possible ways for a session to terminate; do them cleanly. -* Assign session numbers in a more portable and less arbitrary way. - -Revision 1.401 1999/10/28 19:50:55 ajc -* Fixed a problem where the client protocol would spit out two responses - and therefore get out of sync if ASUP command set the access level to - 0 and therefore deleted the user (thanks to Eric McDonald) - -Revision 1.400 1999/10/28 05:08:49 ajc -* Removed all of the thread cancellation cruft that is no longer necessary -* Moved the now non-system-dependent RemoveContext() out of sysdep.c (now - it's part of cleanup() in citserver.c) -* Removed all references to pthread_* from all modules except sysdep.c - -Revision 1.399 1999/10/28 03:20:17 ajc -* Fixed the problem of worker threads waking up prematurely. -* 'QUIT'-terminated sessions now exit properly. - -Revision 1.398 1999/10/27 04:26:58 ajc -* Initial hack of worker-thread rearchitecture. Right now it is successfully - dispatching worker threads to active client sockets (and to the master - socket too, of course). Removing sessions is currently broken. - -Revision 1.397 1999/10/26 20:20:29 ajc -* Removed the auto-reconnect stuff... it was locking the client in an active - loop more often than it was reconnecting. - -Revision 1.396 1999/10/26 13:59:11 ajc -damn bugs - -Revision 1.395 1999/10/26 03:48:39 ajc -* Shuffled around the order of events when a thread is terminating. All - mutex operations now happen prior to the freeing of the CitContext structure, - otherwise begin_critical_section() and end_critical_section() try to - manipulate the context's mutex count when there isn't any context. - -Revision 1.394 1999/10/26 03:21:16 ajc -* Changed a lot of strncpy() calls to safestrncpy() and replaced most of their - hardcoded size arguments with 'sizeof' based arguments. - -Revision 1.393 1999/10/24 19:22:51 nbryant - * Makefile.in, configure.in: added --enable-icq flag; made checks for - authentication libraries more intelligent. - -Revision 1.392 1999/10/23 03:39:12 ajc -* Finished moving vCard functionality to the new message base functions. - -Revision 1.391 1999/10/21 00:50:14 ajc -* Finished up the flags and replication checks in CtdlSaveMsgPointerInRoom(). - -Revision 1.390 1999/10/20 16:46:27 ajc -* More code shuffle. Added some flags to CtdlSaveMessagePointerInRoom() and - enabled the MOVE command to also do a "copy" operation (actually just - creates a second link and bumps the ref count). Implemented "opy" in - the client. - -Revision 1.389 1999/10/20 16:07:48 ajc -* Wholist fixes for users who are in chat mode - -Revision 1.388 1999/10/20 03:42:29 ajc -* In the wholist, only show if the user viewing the list - doesn't know that room. Otherwise show the name. - -Revision 1.387 1999/10/20 02:59:22 ajc -* Code reorganization. Making it easier to move/copy messages without - duplicating existing code. - -Revision 1.386 1999/10/17 02:25:18 ajc -* Discovered a huge design flaw in the replication algorithm. Ripped it - out and replaced it with something a bit more robust. - -Revision 1.385 1999/10/16 05:30:17 ajc -* Changes to message replication code. Don't do server-side hooks during - an ENT3 command. Also fixed a bug in cmd_whok() that caused crashes - after a file format change. - -Revision 1.384 1999/10/14 03:04:16 ajc -* Finished the netproc side of Z (zap/supersede) processing for replication - -Revision 1.383 1999/10/13 04:24:18 ajc -* Added search-by-header-fields to CtdlForEachMessage(), and then to the - server MSGS command. This will have lots of uses. - -Revision 1.382 1999/10/13 01:36:39 ajc -* Starting some work on network zap (supersede) mode for replication - -Revision 1.381 1999/10/08 02:55:57 ajc -* More vCard-related debugging - -Revision 1.380 1999/10/07 02:58:46 ajc -* Semi-broken vCard replacement implementation in place. -* Added "Z" (Zap, supersede) field to message format - -Revision 1.377 1999/10/04 03:19:52 ajc -* We now have a housekeeping thread and a housekeeping queue. - -Revision 1.376 1999/10/03 21:48:21 ajc -* Added serv_upgrade.h to automagically convert pre-5.55 format user records - to 5.55 format user records and generate vCards. - -Revision 1.375 1999/09/29 21:13:17 ajc -* CtdlWriteObject() can now store objects in personal rooms for any specified - user -- rather than only the current user or non-personal rooms. - -Revision 1.374 1999/09/29 17:26:56 ajc -* serv_vcard.c: fixed crashola bug in cmd_greg() -* tools.c: simplified and improved the string tokenizer. Now it runs in a - single pass with no intermediate buffer. - -Revision 1.373 1999/09/28 03:27:37 ajc -* Fully migrated cmd_greg() and cmd_regi() into serv_vcard (still has bugs) - -Revision 1.372 1999/09/27 03:33:40 ajc -* cmd_regi() is now in serv_vcard and writes to the vcard instead of to the - usersupp file. Still needs tweaking. - -Revision 1.371 1999/09/24 03:32:19 ajc -* "read my vCard" and "write my vCard" are written and tested. - -Revision 1.370 1999/09/24 02:54:17 ajc -* Worked a little more on the vCard stuff. The serv_vcard module is now in - place, and a "read my vcard" function is there; "write my" is next... - -Revision 1.369 1999/09/23 03:07:56 ajc -* The vCard 'class' is now linked into the server, though it's not really - functional yet. Its constructors/destructors are debugged, though. - -Revision 1.368 1999/09/19 21:28:33 ajc -* Finished off the message architecture stuff with a new class of hooks to - enable future server-side handlers. - -Revision 1.367 1999/09/19 15:57:06 ajc -* migrated cmd_ent3() to CtdlSaveMessage() - -Revision 1.366 1999/09/19 05:13:57 ajc -* Debugged the new version of CtdlWriteObject() - -Revision 1.365 1999/09/16 03:23:23 ajc -* Did most of the migration from save_message() to CtdlSaveMsg(). The - latter builds a "struct CtdlMessage" (so we can run server-side handlers - against it later on), then serializes it and stores to disk. -* BROKEN BUILD ALERT!! cmd_ent3() and CtdlWriteObject() are still not - migrated. They are stubbed out and will MALFUNCTION if used right now!! - -Revision 1.364 1999/09/07 01:42:42 ajc -* cmd_msg3() now uses serialize_message() for its output. All message - commands will eventually exist as a "struct CtdlMessage" at some point - so that we can install server-side handler hooks. - -Revision 1.363 1999/09/07 00:04:13 ajc -* netproc.c: put outgoing messages into the use table, too -- this prevents - locally originated messages from showing up again if a remote system is - misconfigured and spools them back to us. - -Revision 1.362 1999/09/06 03:39:15 ajc -* citadel.c: run strproc() on new passwords - -Revision 1.361 1999/09/03 17:50:26 playcow -For URL view, don't prompt user to select url if there is only one. Display -RL View prompt if message contains url(s). -Ben - -Revision 1.360 1999/09/02 02:09:59 ajc -* msgbase.c: new function serialize_message() for future use - -Revision 1.359 1999/09/01 21:09:25 ajc -* database.c: display the GDBM version string on startup - -Revision 1.358 1999/09/01 02:36:34 ajc -* Actually _enforce_ the max msg len limit - -Revision 1.357 1999/09/01 01:51:48 ajc -* Added the ability to handle embedded URL's from the text client - -Revision 1.356 1999/09/01 01:02:47 ajc -* Implemented "maximum message length" in global system config - -Revision 1.355 1999/08/31 00:57:17 ajc -* Handle multipart/alternative properly during legacy message outputs. - Basically it just prints the first alternative and skips the rest. - -Revision 1.354 1999/08/29 21:12:24 ajc -* Made some changes to the output of MIME (especially multipart) messages. - -Revision 1.353 1999/08/29 19:56:43 ajc -* HTML updates - -Revision 1.352 1999/08/24 02:01:03 ajc -* html.c: added. This is an overly simplistic HTML-to-text converter. - -Revision 1.351 1999/08/21 18:37:29 ajc -* Minor cosmetic cleanup. No code changes. - -Revision 1.350 1999/08/21 05:15:34 ajc -* mailinglist.c, netmailer.c: fixed to allow list submissions from all posters - on a Citadel network rather than only on the local system. - -Revision 1.349 1999/08/08 00:25:45 ajc -* Made one more byte available in locate_host() and in all the structs which - its output gets written to (client can display 24 positions but we were only - saving 23). - -Revision 1.348 1999/08/07 16:34:38 nbryant -* serv_icq.c: warning fixes - -Revision 1.347 1999/08/06 02:57:26 ajc -* locate_host.c: use strdoop() and phree() instead of strdup() and free() -* serv_icq.c: run learned IP's through Citadel's locate_host() & put in Wholist - -Revision 1.346 1999/08/05 17:58:59 ajc -* RWHO command now returns express message code in postion 3 - -Revision 1.345 1999/08/04 02:21:45 ajc -* Fixed some bugs in the ICQ metaclient, and documented the new protocol cmds - -Revision 1.344 1999/08/03 11:34:35 ajc -* Added client_icq.c and client_icq.h - -Revision 1.343 1999/08/03 03:14:51 ajc -* Wrote the client side of the ICQ gateway. Now on to other projects. :) - -Revision 1.342 1999/08/03 01:52:06 ajc -* Redesigned the client protocol commands for dealing with ICQ -* Implemented page function priority ordering to prevent pages from being - simultaneously delivered over multiple IM systems -* Migrated serv_icq.* into the Makefile - -Revision 1.341 1999/08/01 21:36:30 ajc -* EXTREME coolness. The server side of the ICQ metaclient is now working. - It is set up using ICQL and ICQA commands, it automatically logs the user - onto ICQ along with Citadel, and displays all non-offline ICQ contacts - in the Wholist. - -Revision 1.340 1999/07/31 07:18:01 ajc -* Restructured the express message infrastructure, adding a class of function - hooks for the addition of multiple paging modules with message routing - -Revision 1.339 1999/07/30 22:20:19 ajc -* Applied bugfix patches contributed by Vaggelis Tsirkas: - * rooms.c: buffer overrun fix - * room_ops.c: cmd_rdir() now behaves better when directory doesn't exist - -Revision 1.338 1999/07/30 03:32:24 ajc -* Added strdoop(), a leak-checked version of strdup() -* Small fixes to new API functions in msgbase.c -* ICQ metaclient stores/reads config using the message base API functions - -Revision 1.337 1999/07/29 03:36:37 ajc -* msgbase.c: reorganized. output_message() now uses CtdlFetchMessage(), - cmd_msg3() now fetches directly from disk and spews to the client. - -Revision 1.336 1999/07/28 04:02:37 ajc -* Server modules are now labelled with their RCS ID instead of a complex and - manually-updated data structure. - -Revision 1.335 1999/07/28 03:50:24 ajc -* serv_expire.c: expire-by-age now calls CtdlFetchMessage() instead of - calling output_message() in MT_DATE mode. -* msgbase.c: removed MT_DATE mode ('twas a sleazy hack) - -Revision 1.334 1999/07/27 22:47:26 ajc -* Implemented new data type "CtdlMessage" which will eventually be used as - widely as possible to represent a message in memory. -* Implemented CtdlFetchMessage() which is intended to become the back-end to - output_message() as well as a bunch of other things. - -Revision 1.333 1999/07/27 20:00:24 ajc -Removed all references to CC->msglist and CC->num_msgs, and all utility -functions which relied upon them. Citadel Is Now Better. - -Revision 1.332 1999/07/27 19:32:22 ajc -Removed serv_upgrade.c and all references to it in Makefile.in -Reworked new-mail-count to not use MessageFromList() etc. - -Revision 1.331 1999/07/25 02:59:37 ajc -Fixed reference count problem in cmd_move() - -Revision 1.330 1999/07/24 22:50:38 ajc -Continued replacing references to [get|put]_msglist() with better code. -For some reason, cmd_msgs() still doesn't always work right. - -Revision 1.329 1999/07/24 22:16:41 ajc -Experimenting with automatic updating of ChangeLog by CVS. Simply twiddle -ChangeLog a bit (i.e. by adding or removing a newline from the end of the -file) before issusing "cvs commit", and the comments recorded by CVS will -automatically appear at the beginning of ChangeLog. - -Revision 1.328 1999/07/24 22:14:21 ajc -cmd_move() now uses CtdlDeleteMessages(). -WARNING: build is temporarily broken. Currently removing all references -to the "msglist" kept in CitContext. It's ugly and must die. - -Thu Jul 22 22:26:50 EDT 1999 Art Cancro - * Moved message deletion into new API function CtdlDeleteMessages() - * Added CtdlWriteObject() to store generic data in the msgbase - * Fixed really dumb error that prevented network msgs from posting - -Tue Jul 20 22:14:54 EDT 1999 Art Cancro - * Moved the actual work done in cmd_msgs() into a new API function - called CtdlForEachMessage() which is supplied a callback function. - -Mon Jul 19 23:24:18 EDT 1999 Art Cancro - * Keep the (unqualified) content-type in the SuppMsgInfo record. We'll - be using this shortly to search rooms for specific object types. - -Sun Jul 18 14:53:16 EDT 1999 Art Cancro - * Changes to dynloader et al to handle ICQ module being written - * serv_icq.c, serv_icq.mk: added (separate makefile is temporary) - -1999-07-17 Nathan Bryant - * chkpwd.c: DELETED CVS REVISION 1.3 (backed out Art's last change) - use 'cvs update -r 1.2 chkpwd.c; cvs update -A chkpwd.c' NOW to - avoid problems with working directories. - * Makefile.in: don't install chkpwd setuid if make install isn't - being run as root. - * citadel.spec: chmod u+s chkpwd during %install stage - -Fri Jul 16 18:39:04 EDT 1999 Art Cancro - * PEXP and GEXP no longer trip the idle time display - * Fixed bug which duplicated incoming private mail to Trashcan - * Improved auto-reconnect by NOT using SIGPIPE and longjmp(); also - implemented a 15 second delay to wait for a crashed server to restart - * Relaxed the security check in chkpwd.c a bit; it was just flat-out - preventing logins on my system otherwise - -Thu Jul 15 22:57:32 EDT 1999 Art Cancro - * eliminate redundant "name" parameter in [l]putuser(), now uses - usbuf->fullname to guarantee the correct name for the index - -1999-07-12 Nathan Bryant - * Makefile.in, configure.in: link netproc with gdbm - * netproc.c: only include gdbm.h if HAVE_GDBM_H - * user_ops.c: warning fix - -Mon Jul 12 19:51:30 EDT 1999 Art Cancro - * Mail is now saved in both sender and recipient mailboxes. This is - structured in a way that will allow a separate "outbox" room and/or - multiple recipients in the future. - -Sun Jul 11 18:46:48 EDT 1999 Art Cancro - * netproc.c: msgfind() no longer uses the timestamp as a message-ID - when no other message-ID is available (it screws up the loopzapper) - * room_ops.c: eliminate room name parameter in putroom() and its ilk; - get data from quickroom.QRname instead; prevents incorrect indexes - * Tentative implementation of "personal rooms" (user-private namespace) - * Added supplementary message info records for info that may change - at some time later than when the message is saved (i.e. ref counts) - * Implemented msg reference count increment/decrement; delete messages - whose reference count reaches zero - -Wed Jul 7 23:25:09 EDT 1999 Art Cancro - * control.c: create citadel.control if it doesn't exist (yikes!) - * serv_expire.c: purge mailbox rooms belonging to non-existent users - * user_ops.c: don't delete user's mailbox at user-delete time - -Mon Jul 5 17:01:29 EDT 1999 Art Cancro - * utilsmenu: removed menu items for defunct utilities - -Mon Jun 28 16:24:10 EDT 1999 Art Cancro - * Changed any remaining references to UUCP, to "Internet" instead. - -Thu Jun 24 11:13:23 EDT 1999 Art Cancro - * added server command line option "-f" to defrag databases on startup - * control.c: better performance and reliability in [get|put]_control() - * netproc.c: Finished the loopzapper - -Mon Jun 21 00:04:15 EDT 1999 Art Cancro - * netproc.c: started writing a vortex checker. Not finished. - -Wed Jun 9 23:34:25 EDT 1999 Art Cancro - * Replaced all code that generated temporary filenames with calls to - tmpnam(). Rewrote using tmpfile() where possible. - -Thu Jun 3 11:35:18 EDT 1999 Art Cancro - * base64.c: mapped fi and fo to stdin and stdout using - actual code rather than assignment at declaration time - (several users of Red Hat Linux 6.0 reported problems) - -Fri May 21 20:05:00 EDT 1999 Art Cancro - * Added function CtdlGetDynamicSymbol() for dynamic symbol allocation - * server.h: Changed discrete #define's to enum's where appropriate - * sysdep.c: Changed the startup message to give credit to the whole - development team :) Also made the message more GNU-ish. - -Thu May 20 20:01:30 EDT 1999 Art Cancro - * database.c: print log messages for file defragmentations - * citserver.c: implemented CtdlAllocUserData() and CtdlGetUserData() - for arbitrary per-session data storage (by modules etc.) without - having to add fields to struct CitContext - * msgbase.c: removed "desired_section" from struct CitContext and - implemented it using CtdlGetUserData() as a test. - -Wed May 19 19:30:28 EDT 1999 Art Cancro - * commands.c, commands.h, routines.c: began color scheme changes - -1999-05-15 Nathan Bryant - * configure.in: Added untested support for BSDI 4.x. - -1999-05-13 Nathan Bryant - * acconfig.h, configure.in, routines.c: fix for certain SYSV variants - which lack utmp.ut_host - * citadel.h, file_ops.c, msgbase.c, netproc.c, serv_chat.c: fix - namespace collision with on aforementioned SYSV - variant - * configure.in, getutline.c: check for paths.h - * configure.in, Makefile.in: check for -lsocket and -lnsl - -1999-05-11 Nathan Bryant - * chkpwd.c: fixed excessive paranoia; it used to refuse to run when - invoked by root and CTDLUID != 0 - * Makefile.in: ignore errors while installing /etc/pam.d/citadel - -1999-04-27 Art Cancro - * file_ops.c: fixed NDOP to not crash the server if it has trouble - with a download file - * netpoll.c: upped default packet size - -Mon Apr 26 22:06:57 EDT 1999 Art Cancro - * Repaired IGnorant security hole blunder re. citmail - -Sun Apr 25 12:44:08 EDT 1999 Art Cancro - * serv_chat.c: notify user of number of participants upon entering chat - * Built the 5.53 distribution - -Wed Apr 21 22:23:13 EDT 1999 Art Cancro - * aidepost.c: add -r flag to allow posting to rooms other than Aide> - * serv_expire.c: now posts transcripts of all auto-purged rooms/users - -Tue Apr 20 12:45:55 EDT 1999 Art Cancro - * messages.c: downloading more than MAX_MSGS messages now truncates - (off the beginning of the list) rather than crashing. - -Mon Apr 19 12:11:48 EDT 1999 Art Cancro - * whobbs.c: auto-detect when being called from a webserver, and act - as a CGI (print HTTP headers and HTML output) - -1999-04-18 Nathan Bryant - * serv_chat.c: fixed some potential buffer overruns (thanks dme) - -Wed Apr 14 21:32:28 EDT 1999 Art Cancro - * Makefile.in: chmod 4755 citmail to prevent citmail from aborting - when called from sendmail due to citadel.config security check - -1999-04-13 Nathan Bryant - * dynloader.c: OpenBSD places underscores in front of symbol names - * Makefile.in: fixed a few sillies - * aidepost.c, citmail.c, file_ops.c, logging.c, msgbase.c, netmailer.c, - netproc.c, rcit.c, routines.c, serv_upgrade.c: fixed time_t handling - (have to cast it to long for printf/scanf) - -Mon Apr 12 22:13:26 EDT 1999 Art Cancro - * aidepost.c: rewrote to unlink temp file before writing to it so that - it will automatically go away if interrupted. Also ran indent -kr -i8 - -1999-04-12 Nathan Bryant - * configure.in, Makefile.in: taught it how to generate OpenBSD shared - libraries - * config.c, sysdep.c: fix -h option not setting proper modules dir - * configure.in, citadel.spec: make --enable-chkpwd the default - * setup.c: don't chown chkpwd - -1999-04-11 Nathan Bryant - * configure.in: another OpenBSD fix, but we're still not quite there yet - * serv_chat.c: warning fix - -Thu Apr 8 22:51:28 EDT 1999 Art Cancro - * config.c: now requires a setup run for *any* rev level difference - * Updated docs & confs for 5.53b1 release - * setup.c: sets the 0600 permission bits on citadel.config that - is checked for in config.c - -1999-04-08 Nathan Bryant - * citserver.c: improved is_public_client(), also if a public_client - only supplies a numeric address, attempt to resolve it - * locate_host.c: verify that the forward DNS matches the reverse - * locate_host.c, locate_host.h: more general interface - * configure.in, acconfig.h: fixes for Digital UNIX - -Wed Apr 7 21:36:16 EDT 1999 Art Cancro - * Implemented "access level required to create rooms" (client & server) - -1999-04-07 Nathan Bryant - * configure.in: updated help messages, OpenBSD support - * setup.c: if /etc/inittab doesn't exist, don't ask to create an - entry in it - * server.h, sysdep.c: fix a potential deadlock/data corruption bug - * room_ops.c: fixed the 'gdbm error: Illegal data' message when - deleting a room which had never been posted to - * user_ops.c: include errno.h - * dynloader.c: fix for OpenBSD - -1999-04-06 Nathan Bryant - * Makefile.in, configure.in, getutline.c, sysdep.c: - fixes/bug workarounds for FreeBSD - -1999-04-03 Nathan Bryant - * Makefile.in, configure.in, chkpwd.c, acconfig.h: support for - `chkpwd', a setuid helper program for machines which use shadow - passwords (configure --enable-chkpwd) - * Makefile.in, configure.in, auth.c, citadel.pam, user_ops.c: support - for PAM or shadow passwords (configure --with-pam) - * Makefile.in: made some messages simpler - * citadel.spec: updated for 5.53; correct name of tarball; build with - --enable-chkpwd and --with-pam; add defattr tags so rpm's can be - built by non-root user - * commands.c: cosmetic cleanup - * config.c: (security/paranoia) check permissions on citadel.config - * configure.in: check for ncurses if we can't find curses - * dynloader.c: warning fix - * sysdep.c: don't complain if initgroups() fails - * citadel.c: fix systems with SYSV-style signal handling (e.g. libc5) - * Makefile.in: New! Improved! Cleaner! Shinier! - -Sun Mar 21 14:21:47 EST 1999 Art Cancro - * messages.c: cosmetic cleanups to message reading loop - -Sat Mar 13 21:33:19 EST 1999 Art Cancro - * commands.c: use bright colors by default in color mode - * citserver.c: initialize wholist fields with (not logged in) etc. - -1999-03-08 Nathan Bryant - * sysdep.c: call DLoader_Init() with an absolute path so that gdb can - find module symbols - * database.c: bail out if opening databases fails - -Sat Mar 6 01:55:55 EST 1999 Art Cancro - * serv_chat.c: use memfmout(), *not* cprintf() to transmit express - messages. Calling cprintf() on strings >256 bytes crashes the server - * msgbase.c: minor logging fix in save_message() - -1999-03-05 Nathan Bryant - * sysdep.c: add undocumented -r flag to citserver to prevent it from - dropping root permissions. - * sysdep.c: also drop supplementary groups - -1999-03-04 Nathan Bryant - * config.c: error checking in put_config() - * 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 - -Wed Mar 3 00:00:55 EST 1999 Art Cancro - * Prevent buffer overruns in lowercase_name in [get|put]user() - * client_chat.c: use citedit() for page composition - -Sat Feb 27 07:47:36 EST 1999 Art Cancro - * rooms.c: download_to_local_disk() prompts for a filename if a blank - filename was supplied to it (for attachments without names) - * mime_parser.c: strip leading whitespace in content_type & disposition - -1999-02-24 Nathan Bryant - * configure.in: improved check for pthreads - * configure.in, routines.c, acconfig.h: check for ut_type in struct utmp - * configure.in, Makefile.in: support for building server modules as - relocatable objects for BSDI (which still uses a.out *gag* *choke*) - * configure.in: compiler choice & flags for BSDI; check for libtermcap - * database.c: don't use a critical section in open_databases() - * housekeeping.c: use getfloor()/putfloor() instead of - lgetfloor()/lputfloor() in check_ref_counts() - * mime_parser.c: include - * msgbase.c: include - * sysdep.c: hacks for BSDI. use signals to fake thread cancellation; - don't call master_cleanup() directly from signal handler. - * routines.c: prototype getutline() if necessary - * getutline.c: stupid bugfix - * acconfig.h, configure.in, locate_host.c, server.h: work around - nonreentrant gethostbyaddr() on BSDI - -Mon Feb 15 22:59:00 EST 1999 Vaggelis Tsirkas - * citadel.c: increased hostname buffer size to handle very big names - -1999-02-15 Nathan Bryant - * sysdep.c(main): initialize alen before call to accept() - -1999-02-04 Nathan Bryant - * configure.in: improved check for cygwin - * configure.in, routines.c: access utmp directly instead of calling - `who' if getutline() is available. - * configure.in, Makefile.in, getutline.c: replace getutline() on - systems which don't have it - * routines.c: now always access utmp directly unless we can't find - utmp.h - -1999-02-02 Nathan Bryant - * Fixes for Cygwin: - - ifdef out file download methods that require named pipes (client) - - include pthread.h and gdbm.h only if they are present (fixes - auto dependency generation) - - include snprintf.h where needed - - handle .exe suffixes for "make install" - -Tue Feb 2 22:15:08 EST 1999 Art Cancro - * Overhauled the express messaging system (again) - -Mon Feb 1 19:48:04 EST 1999 Art Cancro - * messages.c: implemented client download of MIME attachments - -Sun Jan 31 18:29:18 EST 1999 Art Cancro - * Added qpdecode.c to the distribution (decodes quoted-printable) - * Finished the MIME parser - * Gave MSG0 a reasonable behaviour for MIME messages - * Added the OPNA command for downloading attachments - -Sat Jan 30 18:39:53 EST 1999 Art Cancro - * Look for citadel.rc in current directory if not found elsewhere - * More work on the MIME parser - * Added base64.c to the distribution - -1999-01-29 Nathan Bryant - * fixes for IRIX (thanks to wr and family for use of the Indy): - - use memset()/memcpy() instead of bzero()/bcopy() in all cases - - configure updates - - handle `long' pid's - - a few other little bits - -Mon Jan 25 21:23:07 EST 1999 Art Cancro - * Fixed bug in save_message() which crashed the server on mail to sysop - * Rewrote pop_march() to be smarter about oto heuristics - -Sat Jan 23 14:32:19 EST 1999 Art Cancro - * Changed internal storage of express messages from a linked list to - a single, resizable buffer. - * Added a "room order" key to the room record, to allow some control - over room listing order. - * Made the room list commands aware of the room order key. - * Overhauled oto heuristics to pay attention to floor & room order - -Wed Jan 20 19:21:51 EST 1999 Art Cancro - * 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 Citadel directory. - -Tue Jan 19 21:28:29 EST 1999 Art Cancro - * Fixed a bug in the user editing command (client side) - * Started a rewrite of the MIME parser - -Thu Jan 14 21:21:15 EST 1999 Art Cancro - * Brought over the mime_parser from WebCit and began preliminary work - on supporting MIME format messages. - -Tue Jan 12 22:30:00 EST 1999 Art Cancro - * Various changes to begin work on support for MIME messages - - Defined format type 4 for MIME - - msgbase.c: *temporary* hacks in output_message() for Type 4 - - citmail.c: added more robust header parsing, and support - for Type 4. Also eliminated the crappy built-in - SMTP server. - - Updated some of the technical documentation - -Sun Jan 10 13:34:36 EST 1999 Art Cancro - * Fixed access to page log room - -Fri Jan 8 12:35:09 EST 1999 Art Cancro - * control.c: include to fix PATH_MAX undefined - * serv_chat.c: made the following changes to cmd_sexp() -- - * Send zero-length message to check only, don't send - * Send "-" message on the command line to invoke - the SEND_LISTING transfer mode for a multi-line message - * Added facilities to log all pages to a room (site configurable) - -Tue Jan 5 23:24:52 EST 1999 Art Cancro - * Replaced all occurances of malloc(), realloc(), and free() in the - server and server-modules with mallok(), reallok(), and phree(). - Wrote macros and a set of leak-tracking functions. - -Sun Jan 3 20:38:45 EST 1999 Art Cancro - * Documentation changes - -Fri Jan 1 01:01:45 EST 1999 Art Cancro - * Fixed security problem relating to private rooms - -Wed Dec 30 20:10:52 EST 1998 Art Cancro - * sysdep.c: put a bigger string buffer into lprintf() to avoid overruns - -Sat Dec 26 16:56:46 EST 1998 Art Cancro - * internetmail.config: commented this file more clearly - -Wed Dec 23 20:42:49 EST 1998 Art Cancro - * citadel.c: added some experimental code to automatically reconnect - to the server if the connection is broken. For some reason, it only - works once. - -Wed Dec 23 18:47:12 EST 1998 Art Cancro - * sysdep.c: ignore SIGPIPE. This keeps broken connections from - crashing the whole server. - * Tagged everything for the official 5.50 release. - -Mon Dec 21 07:54:20 EST 1998 Art Cancro - * housekeeping.c: call kill_session() with session_to_kill, - not ccptr->cs_pid (was crashing the server) - -Sat Dec 19 13:57:48 EST 1998 Art Cancro - * Added "-i" flag to netproc to make it skip the export phase. - Updated other programs to call netproc in this way when appropriate. - * Updated network.txt to reflect the usage for netproc (which has - been wrong for several releases) - -Thu Dec 17 00:17:04 EST 1998 Art Cancro - * Started removing the word "beta" from the docs and code. - Preparing for an actual release. - * msgbase.c: generate an 'I' field when requested (i.e. on locally - originating messages. this was breaking parts of the network) - -1998-12-15 Art Cancro - * msgbase.c: remove extra call to alias() which was causing - Citadel-to-Citadel mail to fall into the bit bucket. - * msgbase.c: fixed tempfile naming problem that could cause a new - outgoing netmail message to overwrite another if netproc had not been - run in between - -1998-12-14 Art Cancro - * More session table stability nonsense - -Sun Dec 13 17:40:08 EST 1998 Art Cancro - * sysdep.c, citserver.c: (hopefully) fixed a session table concurrency - bug which was causing the server to occasionally crash. - * removed serv_test.so from the default build - -Fri Dec 11 18:50:00 EST 1998 Art Cancro - * setup.c: default value for maxsessions is now 0 (no limit) - * room_ops.c: don't allow users to create a room called "Mail" - * serv_expire.c: fixed "number of messages purged" display - * commands.c: when using color, default to low-intensity colors - -Tue Dec 8 07:58:16 EST 1998 Art Cancro - * Beta 2 - -Sat Dec 5 01:24:03 EST 1998 Art Cancro - * Added a new type of module hook for adding logging functions - * Removed whitespace to left and right of '@' in netmail recipients - * sysdep.c: read citadel.config _before_ initializing loadable modules - * stats.c: fixed segfault resulting from extracting log lines - * Ripped most of the "attachments" stuff out of both the client and - server. (Thought of a better way to handle it ... LATER.) - -1998-12-03 Nathan Bryant - * setup.c: create citadel.config with mode 0600 - * Makefile.in: don't chmod sendcommand - * serv_upgrade.c: don't create citadel.config if it doesn't already - exist (paranoia) - * setup.c: saner defaults for nodename and fqdn - -Wed Dec 2 20:37:05 EST 1998 Art Cancro - * msgbase.c: modified AddMessageToRoom() and all functions that call it - to use a more reliable/accurate method to set quickroom.QRhighest - * weekly.in: don't sort/purge filedir where filedir doesn't exist - -1998-12-02 Nathan Bryant - * weekly is now generated by configure - -Mon Nov 30 19:48:52 EST 1998 Art Cancro - * room_ops.c: added sort_msglist() to move and save operations - * sendcommand.c: added (also updated utils.txt, weekly, Makefile.in) - * BETA 1 - -Sun Nov 29 23:57:39 EST 1998 Art Cancro - * Fixed cmd_regi() to not display a second result code after xfer - * Makefile.in: Removed "chmod 4755 citmail netmailer" - -1998-11-23 Nathan Bryant - * citadel.spec: added - -1998-11-22 Nathan Bryant - * Makefile.in: split install target into install-exec, install-data, - and install-doc subtargets - -Sat Nov 21 16:53:30 EST 1998 Art Cancro - * Added a fourth color mode in the client: "user" which turns color - on or off according to a per-user flag stored on the server. Added - server-side support for this too, of course. - * import.c: removed - * serv_expire.c: finished the code to purge stale visits - * sysdep.c: strip trailing nonprintables in client_gets() - * routines2.c: fixed <.AS> command; all configs now work properly - * Moved num_parms() and all the extract() type functions into tools.c - and removed them from all other files. Linked in tools.[o|ro] there. - * netproc.c: handled incoming file transfers to correct room directory - * room_ops.c: fixed incorrect naming of files in info and images dirs - -Fri Nov 20 20:29:07 EST 1998 Art Cancro - * setup.c: removed all prompts that can be configured from within the - client in order to simplify the setup procedure - -Thu Nov 19 23:28:33 EST 1998 Art Cancro - * Fixed serv_upgrade.c and export5.c (found elsewhere) to use a new - export format which treats visits as a separate section - * serv_expire.c: began writing functions to purge rooms and visits - (neither work yet), and added a way to call defrag_databases() - -Wed Nov 18 23:51:17 EST 1998 Art Cancro - * Reimplemented 'visit' structs stored globally instead of as - lists-per-user - -Tue Nov 17 22:37:48 EST 1998 Art Cancro - * Started implementing global room numbers. - -Sun Nov 15 20:32:34 EST 1998 Art Cancro - * room_ops.c: mailbox rooms always appear on the main floor - * made QR_MAILBOX rooms non-editable - * cmd_setr() delete old room record when room name changes - (This causes a big mess that exposes a flaw in the whole design.) - * room_ops.c: users can delete messages from their mailboxes - -Thu Nov 12 23:59:13 EST 1998 Art Cancro - * Rewrote cmd_rchg() and also increased the size of the "fakename" - buffer. Overruns are probably what was causing the crashes. - * Changed the way cmd_ent3() handles mail messages; the previous code - rerouted all private mail to the trash. - -Wed Nov 11 17:57:39 EST 1998 Art Cancro - * citserver.c: slight changes to cmd_rchg() and cmd_hchg() [crashes] - * citserver.c, msgbase.c, user_ops.c: hide the owner-prefix of mail - rooms in a couple more places: set_wtmpsupp() and make_message() - * sysdep.c: added an fflush() to lprintf() for "tail -f"-able logs - * serv_expire.c: purge ops are now a command instead of a cleanup - function. This is probably temporary as well. - * citadel.c: fixed the way <.WL> parses the returned data from a - TIME command. - -1998-11-11 Nathan Bryant - * serv_upgrade.c: fix uninitialized variable - -Wed Nov 11 00:47:32 EST 1998 Art Cancro - * msgbase.c: fixed a bug that was misrouting incoming network msgs - * server.h, database.c: wrapped all GDBM calls in critical sections - to avoid making those calls re-entrantly (gdbm fatal: lseek error) - -1998-11-10 Nathan Bryant - * Makefile.in: link in snprintf.o where needed - -1998-11-09 Nathan Bryant - * client_chat.c: eliminate calls to sprintf() - * commands.h, routines.c, routines2.c: warning fix - * commands.c, control.c, cux2ascii.c, file_ops.c, import.c, - ipc_c_tcp.c: eliminate sprintf() calls - -Mon Nov 9 19:15:31 EST 1998 Art Cancro - * serv_upgrade.c: added all missing fields to export/import - * serv_expire.c: support per-user purge time when purging users - * user_ops.c: added per-user purge time to AGUP and ASUP commands - * routines.c: added more stuff to <.A>ide dit user - -Sun Nov 8 22:56:53 EST 1998 Art Cancro - * serv_expire.c: created; moved message expiry from serv_test.c, - moved user purge from userpurge.c - * userpurge.c: deleted - * routines2.c: finished <.AS> command - * room_ops.c: fixed Aide room access (for some reason, the Aide - room had the QR_MAILBOX flag set) - -1998-11-08 Nathan Bryant - * useradmin.c: really removed (cvs remove) - * aidepost.c, citadel.c: convert all sprintf() calls to snprintf() - * sysdep.c: fix overrun in lprintf() described by dme/Dead Monkey - * citmail.c, citserver.c: convert all sprintf() call to snprintf() - -Sun Nov 8 13:19:36 EST 1998 Art Cancro - * useradmin.c: removed - * utils.doc: removed references to useradmin and sysoputil - -Fri Nov 6 20:22:20 EST 1998 Art Cancro - * citadel.h (and related files): removed defunct parameters, - 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() - * routines2.c: started adding CONF questions to <.AS> command - * room_ops.c: began a fix for the mysterious disappearing Aide room - -1998-11-05 Nathan Bryant - * snprintf.c: warning fix propagated over from gcit - -1998-11-04 Nathan Bryant - * added RCS Id keyword strings to sources - * citmail.c: reverted to version 1.10 - -Wed Nov 4 10:53:13 EST 1998 Art Cancro - * messages.c: temporarily set screenwidth to a fixed value of 80 - during

rint operations. - -Mon Nov 2 12:59:03 EST 1998 Art Cancro - * setup.c: looks for 'citadel', 'bbs', or 'guest' in /etc/passwd to - 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 - -Sun Nov 1 18:47:42 EST 1998 Art Cancro - * serv_upgrade.c: cosmetic changes - * Implemented message expiry by date (this really needs to be moved - out of serv_test.c, but where does it belong?) - -1998-11-01 Nathan Bryant - * serv_upgrade.c: warning fixes - * acconfig.h: remove ANSI_COLOR - * Configure, Makefile.tmpl: removed - -Sat Oct 31 20:48:44 EST 1998 Art Cancro - * More stoopid ANSI colour additions here and there. - * ANSI colour selection is now in citadel.rc instead of an option in - the configure script. "on" "off" and "auto" are available. - * added "build.txt" to the techdoc directory, with LS's build notes - -1998-10-31 Nathan Bryant - * citadel.c, commands.c, commands.h: set background color to black - before clearing screen, so that we can actually see text on - black-on-white xterms. - -1998-10-29 Nathan Bryant - * rooms.c: fix color of Mail> - * citadel.c: send ANSI detect sequence after attach_to_server() so the - terminal doesn't send the answerback sequence to the shell if we - can't connect. - -Wed Oct 28 20:20:14 EST 1998 Art Cancro - * configure.in: added comments - * mkinstalldirs: new file to be used for `make install' - * aclocal.m4, missing: new files, also swiped from automake - * citadel.c: don't mung the terminal if we can't find citadel.rc - * Makefile.in: added `install' target, `clean' removes - *.mo, rebuild configure when configure.in changes. - * configure.in: check for install and autoconf - * configure.in, Makefile.in: only pass -fPIC to gcc - * policy.c: warning fix for OSF/1 (use memset() instead of bzero()) - -Tue Oct 27 22:25:42 EST 1998 Art Cancro - * Unified the "unpacked database" format for both upgrades and - sidegrades (also see export5.c elsewhere) - * citserver.c: clear out cmdbuf before reading a command; some server - commands were accidentally extracting parameters from previous cmds - * rooms.c: removed the warning about the ineffectiveness of kicking - users out of public rooms, because the new server can do lockouts - -1998-10-27 Nathan Bryant - * sysdep.c (client_gets), ipc_c_tcp.c (serv_gets): improved handling - of long lines. - * Makefile.in: partial support for VPATH builds, autodependency fix - -Tue Oct 27 00:08:16 EST 1998 Art Cancro - * minor documentation changes - -Sun Oct 25 14:57:40 EST 1998 Art Cancro - * messages.c: fixed an oversight that was allowing attachments even - when disabled in citadel.rc - -1998-10-25 Nathan Bryant - * routines2.c: warning fix - -Sat Oct 24 22:07:56 EDT 1998 Art Cancro - * Client: added message expiration policy questions to room edit - * Client: added <.A>ide ystem configuration command - -1998-10-24 Nathan Bryant - * Makefile.in: Auto dependency generation (may require GNU make, but - does at least function without this feature on OSF/1 make); - Makefile is regenerated when Makefile.in changes (ditto); - `realclean' is now known as `distclean'; - portability fixes for older Unix make utilities - * citadel.c, citadel.h, commands.c: make client suspendable - -Fri Oct 23 19:34:38 EDT 1998 Art Cancro - * setup.c: default node name is now obtained from uname() - * config.c: added put_config() - * policy.c: added, moved GetExpirePolicy() from room_ops.c - * policy.c: implemented cmd_gpex() and cmd_spex() - -Wed Oct 21 22:24:48 EDT 1998 Art Cancro - * Mail rooms now hide their owner-prefix from the client. - * proxy.c: added configurability and primitive message expiry - -1998-10-20 Nathan Bryant - * Makefile.tmpl: fix to build client with old Configure script - * configure.in: autologin defaults to enabled if crypt() is available - * room_ops.c: fix improper null-termination bug I introduced - -Mon Oct 19 20:52:55 EDT 1998 Art Cancro - * Client ability to force display of prompts in Mail rooms, even when - the user has prompting turned off (citadel.rc option) - -1998-10-16 Nathan Bryant - * sysdep.c (cprintf): generate a newline on truncated buffer - * room_ops.c: exploitable overrun fixes - -Thu Oct 15 19:27:32 EDT 1998 Art Cancro - * msgbase.c: reimplemented cmd_move() - room_ops.c: wrote AddMessageToRoom() which is used for both entering - and moving messages. - * setup.c: system-default message expire policy of "number of - messages, 150" is now a default configuration instead of a temp hack - * proxy.c: cache dir create now dies on any error except EEXIST - -Wed Oct 14 22:41:16 EDT 1998 Art Cancro - * Misc code cleanup - -1998-10-13 Nathan Bryant - * configure.in: don't check for -lcrypt unless autologin is enabled - * file_ops.c: fix another overrun - -Mon Oct 12 15:27:21 EDT 1998 Art Cancro - * Killed the "rooms" subdirectory (it isn't used anymore) - * dynloader.c: Made dynamically added server commands case-insensitive - * import.c is now serv_upgrade.c, a module - * Removed most of the "level 9" trace messages no longer needed - -1998-10-12 Nathan Bryant - * Makefile.in: simplified to use pattern rules; files compiled with - -D_REENTRANT go to *.ro to allow the same files to be used with both - client and server - * tools.c, tools.h: new files; misc routines used by both client and - server go here. contains safestrncpy() at the moment. - * rooms.c: fix several exploitable buffer overruns - * sysdep.c: fix infinite loop when long lines are received from the - client; fix exploitable buffer overrun in cprintf() - * ipc_c_tcp.c: fix infinite loop on long line from server - * serv_upgrade.sh: remove uncnsrd-dependent absolute path - * .cvsignore: add *.ro - -Sun Oct 11 23:17:48 EDT 1998 Art Cancro - * Built some more of the message expiry infrastructure - -1998-10-11 Nathan Bryant - * citserver.c: fix two more overruns, one of which was preventing - the "From Host" from showing up in the ho listing. - -Sun Oct 11 02:51:55 EDT 1998 Art Cancro - * Moved "struct visit" and its associated defs from citadel.h to - server.h where they belong - * Set up data structures for room policies (expiry, etc.) - -1998-10-10 Nathan Bryant - * citserver.c: fix overrun which caused segv's on servers with long - hostnames. - -Fri Oct 9 18:34:06 EDT 1998 Art Cancro - * user_ops.c: added PurgeStaleRelationships() to do processing at - session logout time to remove visits for rooms which no longer exist - * user_ops.c: implemented NewMailCount() - -1998-10-09 Nathan Bryant - * serv_chat.c: fix buffer overrun that was resulting in segv's - * serv_chat.c: fix another overrun that could cause sessions to hang, - and cleaned up some other strncpy()-related stuff. DON'T FORGET TO - NULL-TERMINATE DESTINATION BUFFERS AFTER STRNCPY CALLS. - -Fri Oct 9 13:22:37 EDT 1998 Art Cancro - * Implemented "lazy mode" traversal - pressing the space bar will do - ext messsage, oto next room, or read ew as appropriate. - * room_ops.c: modify CtdlRoomAccess() to allow access to mailbox rooms - only to their owners. - -Thu Oct 8 17:13:27 EDT 1998 Art Cancro - * messages.c, citadel.rc: added the ability to display message numbers - in the header when reading messages. I think this is butt ugly, but - some of the DaveCode afficionados seem to like it... - -Thu Oct 8 15:34:45 EDT 1998 Art Cancro - * room_ops.c: Added is_noneditable() function to replace all of the - duplicated code present in all functions which edit room parameters. - -1998-10-08 Nathan Bryant - * lots of warning fixes; builds with -std1 on dec unix - * aidepost.c, citadel.h, citmail.c, file_ops.c, msgbase.c, netmailer.c, - netproc.c, rcit.c, server.h, stats.c, userlist.c: use time_t where - needed - * control.c, room_ops.c, serv_chat.c, sysdep.c: use memset() instead of - bzero() - * dynloader.c, dynloader.h, messages.c, server.h, sysdep.c, - sysdep_decls.h: function pointer/prototyping fixes - * rooms.c: use mkfifo(3) instead of system("mkfifo") - -1998-10-07 Nathan Bryant - * snprintf.c, snprintf.h: new files - * Makefile.in, configure.in, dynloader.c, sysdep.c: support for the - above; citserver now builds and runs on Digital Unix 4.0d with the - GNU-style configure script. there is a bug with the hostname display - in the wholist. - * netproc.c: sillyness fix - * room_ops.h: prototype delete_room() - * client_chat.c, commands.c, serv_chat.c, sysdep.c: - use HAVE_SYS_SELECT_H macro - -Mon Oct 5 17:01:32 EDT 1998 Art Cancro - * Began fixing the stuff I broke - -Sun Oct 4 23:35:18 EDT 1998 Art Cancro - * Did the big migration to the new data structures. Lots of stuff is - now broken. Basic moving from room to room works, but Mail is - broken, and some of the administrative commands are unimplemented. - -1998-10-02 Nathan Bryant - * configure.in: autologin now defaults to disabled - -Fri Oct 2 00:04:31 EDT 1998 Art Cancro - * Finally removed all three usersupp.foo[MAXROOMS] elements, and - migrated all the code that used them to use "struct visit" instead. - -Thu Oct 1 23:02:20 EDT 1998 Art Cancro - * Rewrote [l][get|put]room() functions to use room names rather than - room index numbers. Temporarily prepended a "n" to these four - function names until they are put to use. - -Thu Oct 1 16:27:13 EDT 1998 Art Cancro - * Removed a few more references to usersupp.lastseen[] - -1998-10-01 Nathan Bryant - * .cvsignore: add so_locations (generated by osf1 ld with shared libs) - * Makefile.in: restructured variables for greater consistency, use - @echo to print out notices during the make process, add so_locations - to `cleaner' - * configure.in, Makefile.in: configure checks for -rdynamic - * ipc_c_tcp.c: fix DEC compiler warning wrt unsigned char - * stats.c: add semicolon to placate DREC compiler - * user_ops.c: define _POSIX_C_SOURCE, include - * configure.in: pass -pthread to DEC compiler, don't check for - libpthread[s] on DEC Unix - -1998-09-30 Nathan Bryant - * Makefile.in: new variable PTHREAD_DEFS for portability - * aidepost.c, citadel.c, citmail.c, mailinglist.c, msgform.c, - netmailer.c, netpoll.c, netproc.c, rcit.c, readlog.c, setup.c, - stats.c, userlist.c, whobbs.c: return type of main() is int - * citadel.c, commands.c, messages.c: use time_t properly - * citserver.c: include - * config.guess, config.sub, install-sh: new files - * configure.in: don't use gcc on Digital Unix - -Tue Sep 29 23:17:34 EDT 1998 Art Cancro - * room_ops.c: modified usergoto() to look at the new data structures - for counting new messages and such. - -1998-09-29 Nathan Bryant - * user_ops.c: fix compiler warning and potential memory leak, - include sysdep.h - * configure.in, Makefile.in: only build the server if we find pthreads - * Makefile.in: realclean removes config.{cache,log,status} - -Tue Sep 29 13:20:14 EDT 1998 Art Cancro - * Removed code from some of the utilities which was still attempting - to access the old non-gdbm data store. - * housekeeping.c: rewrote check_ref_counts() to do a ForEachRoom() - traversal instead of a MAXROOMS loop. - * sysdep.c: set up a dummy CitContext record to be used during server - startup, during which time there is no real context. - -Mon Sep 28 23:51:51 EDT 1998 Art Cancro - * Implemented the function ForEachRoom() to handle all-rooms traversal - (this will work with both the old and new paradigms, because both - use a GDBM database with one room per record). Migrated all room - list commands to use it. - -Mon Sep 28 22:05:35 EDT 1998 Art Cancro - * Implemented the function CtdlRoomAccess() to handle *all* of the - user-access-to-rooms functionality. Migrated all room list commands - to use it. Still need to migrate gotos. - -1998-09-28 Nathan Bryant - * configure.in, acconfig.h: new files; partially functional GNU - autoconf configure script. Run autoheader; autoconf; ./configure - --prefix=`pwd` to test. - * Makefile.tmpl: new file; this is what Makefile.in used to be. Used by - Configure. - * Makefile.in: modified to work with autoconf-style configure script - * Configure: modified to use Makefile.tmpl and generate autoconf-style - macros. Removed procfs detection. Pass -O2 to gcc, -O to other - compilers. Removed mknod/mkfifo detection; code should use mkfifo(3). - * citmail.c, msgform.c, netproc.c, routines.c, support.c, userlist.c, - whobbs.c: use HAVE_STRERROR macro rather than NO_STRERROR - * commands.c: use HAVE_TERMIOS_H macro rather than POSIX_TERMIO - * netproc.c: remove procfs stuff. simply attempt to kill the target - process with signal zero instead; this checks whether the process - exists. - * setup.c, useradmin.c: use HAVE_CURSES_H macro - -Sun Sep 27 23:41:29 EDT 1998 Art Cancro - * BOTH the old and new generation systems are being written to at - this point. Code that reads stuff is still using the old system. - -Sun Sep 27 16:10:49 EDT 1998 Art Cancro - * Changed all "generation" variables from char to long, in preparation - for removing MAXROOMS. Generations for new rooms are now timestamps. - * Defined "struct visit" to hold user/room relationships. - * Removed some #define's from citadel.h that are no longer used. - -Wed Sep 23 13:41:49 EDT 1998 Art Cancro - * More changes to support attachments. They mostly work, but only - in fixed-format messages. - -Mon Sep 21 21:19:17 EDT 1998 Art Cancro - * msgbase.c: began laying the groundwork to support attachments. - Purchased Rogaine(tm) in preparation for expected hair loss. - -1998-09-21 Nathan Bryant - * msgbase.c: include dynloader.h - * citadelapi.h: removed - * dynloader.h: prototype CtdlRegisterUserHook() - -Sun Sep 20 18:56:37 EDT 1998 Art Cancro - * Added a UserFunctionHook category to implement hooks which perform - operations on various users or usernames - -Fri Sep 18 21:14:41 EDT 1998 Art Cancro - * citserver.c: removed cmd_extn() and related code - -1998-09-18 Nathan Bryant - * user_ops.c: include dynloader.h - * roomstats.{c,mk}: removed - * Configure, Makefile.in: autodependency-related fixes - -Thu Sep 17 22:55:29 EDT 1998 Art Cancro - * Various changes to allow "new messages" to work correctly with Mail - -Thu Sep 17 22:21:45 EDT 1998 Art Cancro - * server.h, dynloader.c, citserver.c, user_ops.c: reduced the number - of hook types by inventing an EventType field to the Session hook. - * proxy.c: added pre-fetching - -1998-09-17 Nathan Bryant - * Makefile.in: add SERV_MODULES and PROXY_TARGETS to `cleaner' - * dynloader.[ch], serv_{chat,test}.[ch], sysdep.c: cleaned - up the dynamic loader interface as follows: - - all the symbol table stuff is gone. - - modules are loaded once at server startup and never unloaded. - - Added a new function CtdlRegisterProtoHook() to handle the stuff - that was being done with the symbol tables. - - Dynamic_Module_Init() now returns a pointer to a static struct - DLModule_Info; this structure itself has been modified to use char* - fields instead of fixed char arrays. - * roomstats.c: include not (is this file still - in use?) - * Configure, Makefile.in: added autodependency support - -Wed Sep 16 22:25:13 EDT 1998 Art Cancro - * Implemented separate structs, lists, and functions for each type - of server-side hook available. - -1998-09-16 Nathan Bryant - * ipc_c_tcp.c: Fixed up some #include/prototyping stuff, call memcpy() - instead of bcopy() - * hooks.h: removed - * sysdep.c, user_ops.c: removed reference to hooks.h - -Wed Sep 16 11:42:42 EDT 1998 Art Cancro - * ipc_c_tcp.c: Reversed any changes that have been made to this file, - because something was causing abominally slow response time. - * proxy.c: added. This will eventually become a caching, pre-fetching - multiuser proxy server for the Citadel protocol. - -1998-09-15 Nathan Bryant - * Makefile.in: remove support.o from serv_chat.so, add -fPIC to compile - flags for serv_chat.o - * dynloader.c: include "sysdep_decls.h", use RTLD_NOW not RTLD_LAZY - * dynloader.h: prototype CtdlRegisterHook() - * .cvsignore: added data - -Mon Sep 14 20:49:08 EDT 1998 Art Cancro - * Tried my hand at adding the ability for server extensions to - register various types of "hooks" in addition to just adding - server commands. This is probably not final. - -Tue Sep 8 12:11:56 EDT 1998 Brian Costello - * Added support for dynamic server modules. Reworked serv_chat.c - to be such a module. - -Tue Sep 1 23:09:50 EDT 1998 Art Cancro - * userpurge.c: rewrote using functions from the server core, rather - than the now-defunct external API. This'll be ready once the module - loading code is done. (I just had to commit _something_ tonight.) - -Mon Aug 31 22:47:58 EDT 1998 Art Cancro - * Yanked the citadelapi.c module. This wasn't working out well. - * techdocs/citadelapi.txt - began documenting the new API to be used - by modules which will be dynamic linked into the server - most of - this API is existing server functions. - * Added a ForEachUser() function with callback mechanism, and reworked - cmd_list() to use it. - -Sun Aug 30 21:52:43 EDT 1998 Art Cancro - * Moved all of the gdbm databases to a separate "data" directory. - -1998-08-26 Nathan Bryant - * Makefile.in: realclean removes Makefile, fixed `touch citadel.h' - problem - -1998-08-25 Nathan Bryant - * room_ops.c: include time.h - * userlist.c, whobbs.c, serv_chat.c, user_ops.c, sysdep.c, stats.c, - citadel_decls.h, commands.c, messages.h, routines.h, routines2.h: - remove duplicated declarations - -Mon Aug 24 23:45:01 EDT 1998 Art Cancro - * setup.c: Removed yesno_s() - * citadel.h, room_ops.c: added QRmtime field to struct quickroom, - modified whenever a room is modified or posted in. - * citadelapi.c: Added CtdlForEachRoom() function - -Mon Aug 24 20:04:04 EDT 1998 Nathan Bryant - * Makefile.in: new target `cleaner' does the same as `realclean' - without removing sysdep.h - * proto.h: is bad. eliminate. I've moved the prototypes into several - header files, one per .c file - -Mon Aug 24 00:45:55 EDT 1998 Art Cancro - * Added a CtdlGotoRoom() function to the CitadelAPI. - -Sun Aug 23 21:47:00 EDT 1998 Art Cancro - * sysoputil is finally dead! Removed it from the build. - * Added userpurge.c server extension (initial implementation) - -Tue Aug 18 00:42:33 EDT 1998 Nathan Bryant - * Makefile.in: `clean' target no longer rm's sysdep.h; new target - `realclean' removes everything clean does, plus sysdep.h, plus - target binaries. - * Configure: add -Wstrict-prototypes to CFLAGS for gcc systems - * *.[ch]: protoized. Added several new header files containing - prototypes and other external declarations; many duplicated - declarations still should be moved to header files. proto.h must die - as well, IMHO. - -Mon Aug 17 23:52:13 EDT 1998 Art Cancro - * Implemented a bunch of user account related functions in the - CitadelAPI library. - -Mon Aug 17 20:01:18 EDT 1998 Art Cancro - * Fixed the crash problem. It wasn't AGUP/ASUP, but rather a buffer - overrun in getuser() (thanks, Nathan). Implemented overrun checks - in getuser(), getroom(), and getfloor() to prevent future problems. - -Mon Aug 17 00:06:52 EDT 1998 Art Cancro - * Updated citmail.c with the latest stuff from the production system. - * Implemented AGUP and ASUP commands, but AGUP crashes the server - after its first successful use (user-not-found's don't affect it). - -Thu Aug 6 19:25:01 EDT 1998 Art Cancro - * Got the CitadelAPI library to the point where the server can start - up an extension, and the extension will connect to the server, do - some initialization, call a user-supplied CtdlMain(), and exit. Also - hacked together a _temporary_ form of the new EXTN server command. - -Wed Aug 5 23:02:22 EDT 1998 Art Cancro - * Second attempt at getting the server API started. Now it runs - outside of the server and builds a connection. - -Tue Aug 4 18:33:06 EDT 1998 Art Cancro - * Modified the appearance of Internet addresses when they arrive on - a Citadel system. - * Removed the field from the message format writeup in hack.txt. - * Fixed-up citmail.c so that it doesn't try to do database lookups. - -Mon Aug 3 23:01:37 EDT 1998 Art Cancro - * Started developing the server-side API. This is in its very - initial stages. See serverapi.c and techdoc/api.txt - -1998-08-02 Nathan Bryant - * Makefile.in: added config_decls.h to dependencies - -Sun Aug 2 21:09:09 EDT 1998 Nathan Bryant - * config_defs.h: renamed to config_decls.h - * config.c, sysoputil.c: updated to reflect the above - -Sun Aug 2 18:52:05 EDT 1998 Nathan Bryant - * config_defs.h: new file, contains external declarations from config.c - * config.c: moved defs to config_defs.h, use PATH_MAX from - for ctdl_home_directory - * mailinglist.c, support.c: include - * sysoputil.c: include , , "config_defs.h", remove - duplicated defs, replace gets() call with fgets() - * user_ops.c: define _XOPEN_SOURCE_EXTENDED - -Sat Aug 1 18:32:52 EDT 1998 Nathan Bryant - * ipc_c_tcp.c: fixed order of memcpy parameters after gethostbyname - -Sun Jul 19 17:26:12 EDT 1998 Nathan Bryant - * ChangeLog: reordered; the GNU standard is to add new entries to the - top. - * .cvsignore: added userlist - -Sun Jul 12 20:58:59 EDT 1998 Art Cancro - * Finished migrating everything to the new data store. - * Replaced the binary "calllog" with the ASCII "citadel.log" - * Began converting broken utilities that depend on the old data store - -Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant - * Makefile.in: removed msgstats - -Fri Jul 10 1998 Art Cancro - * Initial CVS import diff --git a/citadel/citadel.h b/citadel/citadel.h index 3d964a3f2..db82b67ea 100644 --- a/citadel/citadel.h +++ b/citadel/citadel.h @@ -33,7 +33,7 @@ extern "C" { /* * Text description of this software */ -#define CITADEL "Citadel 6.71" +#define CITADEL "Citadel 6.72" /* * REV_LEVEL is the current version number (multiplied by 100 to avoid having @@ -45,7 +45,7 @@ extern "C" { * usually more strict because you're not really supposed to dump/load and * upgrade at the same time. */ -#define REV_LEVEL 671 /* This version */ +#define REV_LEVEL 672 /* This version */ #define REV_MIN 591 /* Oldest compatible database */ #define EXPORT_REV_MIN 655 /* Oldest compatible export files */