- move defines from imap_tools.h into serv_imap.h
- switch includes in sequence
- we now have IMAP->Reply, which we write into, until IUnbuffer sends it to the client
- IReply & IReplyPrintf do now send 'Params[0].Key BAD xxxxxx\r\n' to the client; this makes the code more compact.
- IA* append stuff to the outbuffer that we want to send.
- replace rumpelstilskin handler lookup by hashlist and central register calls.
- replace if's in the sequence separating the handlers by their required pre-conditions by flags on the register call.
this should
- (hopefully) fix some troubles with evolutions imap, which wouldn't like to read enough chunks until the line ends
- speed up stuff like header fetching in huge lists, since we reduce the number of context switches here.
have flexible timouts while reading lines in our client mode connections
since some mailserver take a little longer to finish reading mails we need to wait after we send our '.\r\n'; its 90 seconds now, all other parts will wait 5s, quit will wait 1 second.
we changed the SMTP outbound connections to be nonblocking so we could abort on not reacting SMTP-Servers.
thus we need to select before writing, else the connection will fail.
don't fetch a RSS before the network frequency is elapsed
currently the RSS-Thread is run over and over; we shouldn't stress our partrers to much, so we let the network poll frequency elaps before we try to poll the rss feed again.
move old tokenizer over to the managesieve server; its only used there.
- remove old_imap_tokenizer from imap_tools.h
- move old_imap_tokenizer to modules/managesieve/serv_managesieve.c
- move imap_tools.h to modules/imap; since its not needed globaly anymore.
* need to set & check errno that tells us whether our tempfile was fresh created or already there
* remove tmpfile on error
* don't use fopen() because we can't specify the flags we need for that
* ftruncate() the tempfile at the right place
Prevent writing empty network configs Part II
* writenfree_spoolcontrol_file ()
- serialise into a StrBuf
- write that to a tempfile in the netconfig directory
- if we fail, abort & log error
- if we succed use rename () to replace the original config file.
* cmd_snet: make shure the target FS has enough space for the new config
- Create our own filename insteaf of using mk*tmp*; CC->cs_pid should be uniq.; we use O_CREAT|O_EXCL so we're shure its ours or fails.
- Create that filename in the same directory as the filal config filename; by that we can be shure its in the same filesystem, and if thats full, we will fail
- Stat the original file for sise (if not there assume 80) and write twice as much into that file so we're next to shure the content from the client will fit in
- the citadel protocol is a little st00pit here, we don't know the size in advance, and we can't return an error _after_ accepting the file
- instead of moving the content of the tempfile into the final file, we use rename() which is supposed to be atomic.
* sock_getln (): CtdlSockGetLine() gives us lines without \r\n, no need to look for them again
* sock_getln_err (): add integer pointer returning the actual return state in case of error
* ml_sock_gets (): use sock_getln_err () so we can abort on impropper replies
* smtp_try (): make socket nonblocking, so we can abort on error
-> we will wait 5 seconds for the remote site to send us the SMTP-State else we will abort the connection on failure.
Art Cancro [Tue, 26 Oct 2010 04:17:37 +0000 (00:17 -0400)]
Numerous style changes to the 'edit message' dialog. The save,
cancel, and address book buttons now occupy the navbar instead of
a bunch of controls that shouldn't have been there anyway. I
also fixed a javascript bug that was making the addressbook popup
silently fail in the background if we were in a room that didn't
require message recipients.
The attachment dialog now sits above the message body pane, but
this will soon get migrated into the navbar as well (maybe another
popup).
Finally, the background of the message entry div now more or less
occupies the entire space available to it; this still needs more
tuning in order to make the editor occupy the correct amount of
space in the pane.
* add a way to pass the workbuffers into the RFC-822 decoder, so we don't need to realloc it over and over
* add two temporary buffers to the WC Struct for that purpose
* add session logic to free them, and alloc them on need
* add the blanks etc. as launchpad corrected it
* fix some strings marked as fuzzy because of the original was edited by applying these edits here too
* don't remove the fuzzy strings as launchpad sugests
* if we're shutting down instantly close our server file descriptions
* if we had problems shutting down because of client threads still blocked, close all sessions fd's so they come to an end.