Nathan Bryant [Tue, 6 Mar 2001 03:31:58 +0000 (03:31 +0000)]
database-related cleanups and paranoia tests;
fixed a transaction-leak/deadlock problem in cdb_delete;
solved the SIGPIPE mystery (GDB stops on SIGPIPE is all it was)
Stu Mark [Thu, 22 Feb 2001 18:22:39 +0000 (18:22 +0000)]
Mostly made changes to allow client_gets to handle reading a buffer
larger than SIZ. This required changes all over the place.
Most of the changes in source were just putting an i in front of the
cmdbuf variable name for the purpose of having the compiler point out
to me everything that I had to fix. Sorry if this is bothersome, but
I know I fixed every last one of them.
I tried to follow functionality to see where the bigger buffer might
cause a problem dealing with a smaller buffer. In most cases this was
in the extract function and lprintf.
extract is now limited to one token being of max size SIZ. Lprintf now
does a pre-printf to size the buffer it's going to need to print. If
this is a performance problem then we'll have to rewrite lprintf.
Also added getmem, freemem, reallocmem to the debugging version of
the mallok/phree reallok functions. They basically just check for
memory overruns upon freeing the memory. I figured it couldn't hurt
and I thought you might find it useful.
added 2 vars to the citsession to hold the dynamic buffer for input
per session. gets freed on session close, so their should be no
memory leak.
there's a couple of places where I left source in with that are
commented out. This is just for reference so you can see what I did.
remove them if you find them annoying (ex: oldclient_gets())
fiddled with the control file reader to use the new buffer thing too
had to change to make it read right.
for example, clients_gets used to read into the buffer, now
it gets string copies out.
hmmm.. there may be overruns there, let me check that.
One thing I'd like to say is that I couldnt' test everything because
I don't know how to get everything to run, but I changed everything
in the same manner and I tested some of it, so I think the other
changes should be fine. Let me know if you see a problem.
Brian [Thu, 22 Feb 2001 17:05:19 +0000 (17:05 +0000)]
* Updated CxMsList() API to allow users to select only NEW messages, or only
the LAST x messages (<-skel). THIS WILL REQUIRE CLIENT-SIDE CHANGES IN ORDER
FOR YOUR CLIENT TO WORK!
Art Cancro [Sat, 17 Feb 2001 05:53:35 +0000 (05:53 +0000)]
* Repaired the creation of page log rooms in the wrong namespace when the
recipient does not yet have his/her log room created.
* Rewrite "EXPI messages" to run in two passes: one to gather messages to
purge and the next to delete them. Works better in transactionland.
Art Cancro [Thu, 8 Feb 2001 04:46:00 +0000 (04:46 +0000)]
* Fixed namespace problems resulting from the automatic namespece prefixing
added to create_room(). Also added the ability to specify "create a mailbox
but I've already supplied the namespace prefix" for situations where the
namespace isn't that of the logged in user.
* Made the POP3 server response messages slightly less humorous
Art Cancro [Tue, 6 Feb 2001 02:09:41 +0000 (02:09 +0000)]
* citadel.rc: changed the default for local_screen_dimensions to 1, since
Internet users now outnumber dialup users 100 to 0.
* room_ops.c: added a really_create option to create_room(). Also moved the
generation of personal namespace into that function. MODULE OWNERS PLEASE
CHECK YOUR CALLS TO AVOID MULTIPLE NAMESPACING!!
* room_ops.c: fixed a bug in cgetfloor() that left bad pointers around
* serv_imap.c: finished the CREATE command (finally)
Art Cancro [Tue, 16 Jan 2001 00:46:40 +0000 (00:46 +0000)]
* Changed the MIME parser API *again* because we now need the ability to
supply callback functions to be executed before and/or after parsing a
multipart. (Need this for IMAP BODYSTRUCTURE output. Crispin sucks.)
Art Cancro [Mon, 15 Jan 2001 20:34:04 +0000 (20:34 +0000)]
* "Path:" removed for now because it confuses brain-dead Microsoft shitware
into thinking that mail messages are newsgroup messages instead. When we
add NNTP support back into Citadel we'll have to add code to only output
this field when appropriate.
Art Cancro [Wed, 27 Dec 2000 20:19:52 +0000 (20:19 +0000)]
* The size constant "256" which shows up everywhere as a buffer size has now
been changed to SIZ. And, SIZ has been defined now as 1024, not 256, because
we need 1024 byte buffers for most Internet protocols.
Art Cancro [Mon, 25 Dec 2000 22:50:43 +0000 (22:50 +0000)]
* Added an API function to extract and unfold specific RFC822 fields.
* imap-->fetch-->envelope-->in-reply-to now works
* More robust checking and reporting of temp file errors in the client
Art Cancro [Mon, 11 Dec 2000 06:08:41 +0000 (06:08 +0000)]
* Removed the housekeeper thread, moved terminate_idle_sessions() out to a
timer event, and check_sched_shutdown() to the end of the worker thread
loop. Seems to have improved reliability (but why?)
Art Cancro [Thu, 7 Dec 2000 04:50:33 +0000 (04:50 +0000)]
* Wrap housekeeper and timer events in transaction open/close functions
* Checkpoint the DB as an EVT_TIMER event instead of after each session
(runs each minute, but actually limited by the parameters of the function)