+ 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
+ * Mark Crispin is a fscking idiot. 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 <S>ysconfig <G>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 sttybbs() to support HP/UX termios VMIN and VTIME
+
+ Revision 573.3 2000/09/24 22:01:45 ajc
+ * ipc_c_tcp.c: don't hardcode BBSDIR path for unix domain sockets
+
+ 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 <host> 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 bbsuid 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 <R>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 <G>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
+