- default is 30 seconds
- Server greeting 90 seconds (DNS lookups for RBLs might be slow
- Server sending the response to the EOM sequence; here we might have background processing like virus or spam scanning that wants to finish before finaly accepting the message.
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.
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.
Don't send identity header if we want to do gzip compression
Propfind replies send 'Content-encoding: identity' right now, which is superseeded by the frameworks 'Content-encoding: gzip' in case of the client indicates this.
sending that headers twice has uncertain results depending on the client; while the RFC demands to evaluate the later, some fail to read our reply then.
* 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.
* do typedef the visit struct, remove all those 'struct' statements from all over the source
(cherry picked from commit 63262a64633e72e4096aaeedda6950c02fb4d990)
* substracting independend pointers with no conjunction gives mad numbers. thanks samjam for pointing that out.
(cherry picked from commit 7be3fa3266788de371f7ba1c1bc0d701b0080a26)
Art Cancro [Mon, 26 Jul 2010 20:28:52 +0000 (20:28 +0000)]
* Backport the important part of r8717 to stable. I forgot I did this on Friday. When running EVT_TIMER hooks from the housekeeping loop, do citthread_setspecific(MyConKey, NULL); before running *each* hook. Some of the hooks are setting MyConKey and then leaving it set. This is bad and causes crasheriferous behavior. This change should fix it.
Art Cancro [Sun, 11 Jul 2010 03:11:26 +0000 (03:11 +0000)]
* Eliminated the C code to shorten long subject lines and add an ellipsis. It doesn't cut off in the right place anyway. Matt put something in the style sheet to let the browser render the ellipsis. It works in Opera and IE, and it'll work in Mozilla soon, degrading to a simple clipping otherwise.
Art Cancro [Sun, 11 Jul 2010 02:34:53 +0000 (02:34 +0000)]
* Replaced normalizeHeaderTable() which I had taken out. Even though the column widths are honoring fixed percentage widths, the header table and the message table display slightly offset due to the presence of the scroll bar. normalizeHeaderTable() fixes that.
Art Cancro [Sun, 11 Jul 2010 02:23:02 +0000 (02:23 +0000)]
* Eliminated the <tbody> from the message summary view. JS now replaces the entire table including the <table></table> tags. FINALLY got the browser to honor fixed column widths with no overflow, keeping the column proportions at 50/30/20 regardless of the width of the browser window.
* I also eliminated the fix_scrollbar_bug div in this view because it is apparently not needed anymore (it was intended to fix a rendering bug in IE5 and IE6). There is no need to wage an aggressive war on this div, but I will remove it from various places when the opportunity arises.
* switch to enum, enums are nice.
* compare_preference() best guess compare two preference sets
* set_preference_backend() ignore config write force, if the new preference value equals the previous.
Art Cancro [Mon, 28 Jun 2010 20:47:38 +0000 (20:47 +0000)]
* Removed z-index manipulation from datepicker. The old behavior was causing the datepicker to pop-under in IE, which is of course not the desired effect.