$Log$
+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 <sys/types.h>; 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 <S>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 BBSUID
+ (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 <sys/types.h> when doing checks which require <utmp.h>
+ (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/UX 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 "<no text>" 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 "<C>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 <private room> 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
Fri Jul 10 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
* Initial CVS import
+