$Log$
+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 <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.