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.
Art Cancro [Thu, 10 Mar 2005 03:11:07 +0000 (03:11 +0000)]
* Altered the algorithm by which the doubly-linked session list is
amended and culled. Decided that performance is better than cute
session numbers (which we don't display to the users anymore anyway)
and we now assign a session number (CC->cs_pid) starting with 1 when the
server starts and incrementing indefinitely. Need to test this more.
Art Cancro [Wed, 9 Mar 2005 04:08:30 +0000 (04:08 +0000)]
* Delete room is now confirmed through a JavaScript popup instead of
a transition page
* New icon for "Tasks." In order to keep it consistent with the rest of
the icons, it is ugly.
* Modified page popup style slightly.
Art Cancro [Tue, 8 Mar 2005 04:59:34 +0000 (04:59 +0000)]
* More attractive display of vCards (hide unknown fields)
* Added "title" and "organization" to vCard display/edit
* Replaced semicolon with comma-space in vCard name display
Art Cancro [Mon, 7 Mar 2005 04:03:29 +0000 (04:03 +0000)]
* auth.c: shrink the margins on the login screen so the user sees something
resembling a window.
* Allow editing of address book entries wherever possible.
* Anything that was a (link) is now a [link]
Art Cancro [Fri, 4 Mar 2005 20:04:01 +0000 (20:04 +0000)]
* IMAP FETCH RFC822.SIZE now honors the cached rfc822 size in each
message's metadata, using it if present and storing it for next time
otherwise.
* Fixed bug in POP3 server that was causing it to fail to store the
correct RFC822 size in metadata. Fortunately it was failing in a way
that merely affected performance rather than corrupting the data on
existing installations.
Art Cancro [Fri, 4 Mar 2005 02:24:31 +0000 (02:24 +0000)]
* SMTP: only offer TLS on the MSA port (587), not on the MTA port (25).
There seem to be some other MTA's out there that make things go haywire
when TLS is offered.