$Log$
+ 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. <TAG foo=bar> instead of just <TAG> )
+ * 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 <C> field
+ priority over the <R> 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 <sys/prctl.h>
+ * 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<Y> 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/UX 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 <stdlib.h> 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 Mark DIE DIE DIE Crispin'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<Y> next rewrite.
+
+ Revision 614.59 2004/03/01 17:33:30 error
+ * Rewrite m<Y> 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
Fri Jul 10 1998 Art Cancro <ajc@uncensored.citadel.org>
* Initial CVS import
-