$Log$
+ Revision 573.138 2001/06/17 19:42:23 nbryant
+ fix all the <time.h> vs. <sys/time.h> 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 $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. Crispin sucks.)
+
+ 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 <L>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