Art Cancro [Thu, 26 May 2005 04:28:27 +0000 (04:28 +0000)]
* Applied GroupDAV patches sent in by Johannes Schneider which improve the
protocol accuracy of xmlns and etag responses.
* Fixed a MIME Content-Type bug which I had inadvertently introduced while
removing a temporary hack that was put in during KDE 3.4 beta
Art Cancro [Thu, 26 May 2005 04:25:29 +0000 (04:25 +0000)]
* Applied xmlns and etag patches sent in by Johannes Schneider that improve
GroupDAV support.
* Located and fixed a MIME Content-type bug that I accidentally created
while removing a temporary hack that was in place during the last KDE beta.
Art Cancro [Mon, 23 May 2005 19:33:57 +0000 (19:33 +0000)]
* database_sleepycat.c: cdb_truncate() no longer encapsulated in a
transaction. Truncating a database in Citadel is always synchronous,
and with big tables (such as when the full text indexer is switched off
or reinitialized) it was running out of memory.
Art Cancro [Mon, 23 May 2005 19:26:04 +0000 (19:26 +0000)]
* Move the location of the "enable full text index" configuration item to
a new location. Reusing an old location was a stupid idea because old
clients can inadvertently switch it on.
Art Cancro [Fri, 20 May 2005 20:02:51 +0000 (20:02 +0000)]
* The IGnet map is now rewritten to disk only when it changes.
* When processing inbound network spool, ignore "." and ".." instead of
failing on them.
Art Cancro [Fri, 20 May 2005 16:14:44 +0000 (16:14 +0000)]
* Dramatically improved the time it takes to goto (or select) a room which
contains a very long and complex seen/unseen list. Our test folder,
containing 359 new of 3162 messages, formerly took 22 seconds to select;
now it takes 1 to 2 seconds.
Art Cancro [Fri, 20 May 2005 01:20:25 +0000 (01:20 +0000)]
* Cull logs immediately after a successful db checkpoint instead of only
once every 24 hours. During big db write operations (such as building
the full text index) they were just piling up too much.
Art Cancro [Thu, 19 May 2005 21:10:04 +0000 (21:10 +0000)]
* Altered the full text indexer to output messages as text before running
through the wordbreaker. This prevents the inclusion of encoded base64
strings in the index, and also allows legitimate text encoded inside
base64 to be decoded and then indexed.
Art Cancro [Wed, 18 May 2005 22:09:01 +0000 (22:09 +0000)]
* Finished the indexer *and* deindexer! The search API is now working
flawlessly too. Now all we have to do is glue it to IMAP and other
user-facing functionality. (The SRCH command is for testing only.)
Art Cancro [Wed, 18 May 2005 04:02:54 +0000 (04:02 +0000)]
* Completed the "search for all of these words" functionality. All we need
to do now is genericize its calling syntax so it can be called from the
IMAP service.
Art Cancro [Mon, 16 May 2005 18:48:45 +0000 (18:48 +0000)]
* Don't prompt the user for screen dimensions anymore. Nobody is using
dialup terminals with arbitrary screen sizes anymore; nearly everyone (or
more likely, *absolutely* everyone) is now using networked displays which
can be automatically queried for their screen dimensions. For now, we'll
keep the screen size properties in the database and in the protocol, but
the prompts have been commented out.
Art Cancro [Mon, 16 May 2005 16:59:39 +0000 (16:59 +0000)]
* Default expire policy is now 'manual' (no automatic expiry of messages
under any circumstances). Implemented as per David Given's suggestion
that we should operate using the element of least surprise.
Art Cancro [Wed, 11 May 2005 03:00:03 +0000 (03:00 +0000)]
* webcit.c: fixed a string bug that caused the whole system to not work
* messages.c: fullname only and brief date in summary view, so that it
doesn't wrap onto two lines quite as often
Art Cancro [Mon, 9 May 2005 22:17:30 +0000 (22:17 +0000)]
* Interactive room deletions are now deferred. The server reconfigures the
room to be a mailbox owned by a nonexistent user and immediately returns
control back to the client. Later, THE DREADED AUTO-PURGER will see the
dangling room and erase its contents.
Art Cancro [Mon, 2 May 2005 20:52:42 +0000 (20:52 +0000)]
* More IMAP optimizations, including the application of our latest "don't
fetch the message body" trick to ENVELOPE and INTERNALDATE fetches, to
make MS-Outbreak spread email viruses faster.
Art Cancro [Mon, 2 May 2005 16:09:52 +0000 (16:09 +0000)]
* serv_imap.c: implemented the RFC 3501 suggestion that the initial
greeting, and the response to the LOGIN command, include an output
of the server's CAPABILITY string. I find this to be gratuitous but
the UW IMAP server does it, so we are also doing it in order to better
interoperate with clients which make assumptions...
Art Cancro [Fri, 29 Apr 2005 20:47:46 +0000 (20:47 +0000)]
* More complex cache handling for IMAP fetch operations -- now we can
fetch/cache "just the headers" and remember whether we did so, so we can
burn the cache if the client then comes around and requests something
that requires the body. Still needs some testing and tuning.
Art Cancro [Sat, 23 Apr 2005 04:38:26 +0000 (04:38 +0000)]
* Substantially improved the appearance of mailing list digests.
Superfluous RFC822 headers no longer appear, and all messages are
converted to plain text using the preferred_formats framework.
* CtdlOutputPreLoadedMsg() -- fixed bug that caused Citadel protocol
headers to appear for MIME prefix, suffix, etc. even when do_proto is 0.
Art Cancro [Fri, 22 Apr 2005 04:26:35 +0000 (04:26 +0000)]
* is_msg_is_mset() has been renamed to is_msg_in_sequence_set() because
"sequence set" is now the official terminology as of RFC3501.
* imap_set_seen_flags() no longer calls is_msg_in_sequence_set() for each
message and for each flag. It's just too expensive. We now parse each
flag's sequence set manually, marking the relevant messages as we go.
Art Cancro [Thu, 21 Apr 2005 17:28:51 +0000 (17:28 +0000)]
* msgbase.c: when committing a new message to the store, save its RFC822
length to the metadata record immediately. This will eliminate the need
to calculate it later during a fetch operation.
Art Cancro [Thu, 14 Apr 2005 15:53:56 +0000 (15:53 +0000)]
* Variable names, comments, documentation, etc... removed the acronym 'BBS'
in places where functionality is not specific to the use of Citadel as
a BBS platform.
Art Cancro [Wed, 13 Apr 2005 20:42:45 +0000 (20:42 +0000)]
* citmail.c: changes to citmail to make it usable as a /usr/sbin/sendmail
replacement; i.e. /bin/mail calls /usr/sbin/sendmail which sends mail
through Citadel.
Art Cancro [Wed, 13 Apr 2005 17:03:07 +0000 (17:03 +0000)]
* Reverted database changes because the cull_logs function wasn't working
with the separate log directory.
* citmail.c: started some fixes to make it able to work from
Art Cancro [Mon, 11 Apr 2005 16:31:57 +0000 (16:31 +0000)]
* Database logs are now kept in the "data_logs" directory instead of in
the "data" directory. If no "data_logs" directory is found, a symlink
to "data" will be created, in order to preserve access to any existing
log files -- a savvy sysadmin (or a storage management wizard script)
will know what to do if a different location is desirable.
Art Cancro [Wed, 30 Mar 2005 21:44:47 +0000 (21:44 +0000)]
* Changed the color of the side button bar
* Removed session ID's from wholist display, because they are only
interesting to computers, not to people.
* Also changed the session ID variable (we still need it internally) from
a char to an int, because session numbers are big now.
Art Cancro [Thu, 24 Mar 2005 22:13:58 +0000 (22:13 +0000)]
* extract_token() now expects to be supplied with the size of the
destination string buffer. This, along with the elimination of other
unbounded functions like strcpy(), will allow the removal of the
"all string buffers are of size SIZ" assumption (a process which I have
already begun), which will hopefully reduce stack consumption.
Art Cancro [Wed, 23 Mar 2005 20:43:51 +0000 (20:43 +0000)]
* Began an effort to eliminate SIZ wherever possible, and use string
variables of smaller, appropriate lengths. This of course requires the
use of bounds-checked string functions, which I am also making an effort
to switch to wherever possible.
Art Cancro [Sat, 12 Mar 2005 05:42:36 +0000 (05:42 +0000)]
* Trying to fix a memory bug somewhere.
* While working on the above, noticed that the way we did the per-session
dynamic symbols loses badly in terms of performance. Began moving to
a less modular but better performing way of doing the same.
Art Cancro [Thu, 10 Mar 2005 03:36:25 +0000 (03:36 +0000)]
* Silenced a compiler warning
* Our graceful cleanup handler no longer gracefully cleans up after
receiving SIGSEGV or its friends. Unfortunately we need the core dump.