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.
Art Cancro [Wed, 23 Jun 2010 16:31:05 +0000 (16:31 +0000)]
* Adjustment to font sizes to make it not suck so much in Internet Exploder
* Close an anchor tag so it doesn't misbehave -- you guessed it -- in Internet Exploder
* bust the other places still accessing token values directly:
* ConditionalPreference()
* ConditionalServCfg()
* ConditionalBstr()
* tmplput_url_part()
+ IS_NUMBER(): check whether a token parameter is a native number in first place for autodetecting how to compare them to other data.
Art Cancro [Mon, 14 Jun 2010 18:03:19 +0000 (18:03 +0000)]
* Some fixes to make the banner work in IE7. Still need to optimize things a bit, and I dread testing this with IE8 to find out how badly it fucks it up.
Art Cancro [Thu, 10 Jun 2010 21:35:27 +0000 (21:35 +0000)]
* Fixed the scrolling problem in IE, and eliminated a lot of old cruft from the style sheet. However, this did create new problems displaying the banner in IE. Will fix soon.
Art Cancro [Wed, 9 Jun 2010 21:19:51 +0000 (21:19 +0000)]
* Removed a bunch of IE-isms no longer required now that we support IE 6.
* Determined that the non-scrolling banner was implemented using a method that only works in Firefox. Removed it. Now it's equally broken in all browsers. I'll implement a fix and commit that next.
* check for syscall.h
* use SYS_gettid to retrieve our LWPID when running in linux; this way we can find out whats loading top
* don't use masterCC's logbuffer
* vCtdlLogPrintf(): add the userID when reporting from a system thread
* use StrBuf if available
* CtdlFillSystemContext(); we need to fill context->curr_user too, else we will loose the user during for example room processing.
Art Cancro [Thu, 3 Jun 2010 04:51:44 +0000 (04:51 +0000)]
* Removed the extra debug messages. I am about to give up on this problem. Look for today's date [2010jun03] in serv_func.c to see the point in the code where the connection to Citadel is lost. I don't know why.
* add StrBufSanitizeEmailRecipientVector(); it will qp encode plain names with utf-8 chars etc.
* add CheckEncode() which scans for umlauts, whether qp encoding is neccesary
* add tests
Art Cancro [Tue, 25 May 2010 18:08:48 +0000 (18:08 +0000)]
* Now attempting to fix the final few rendering problems in Internet Explorer. Testing with IE 7. I will also test with IE 8, Firefox, and WebKit (Chrome, Safari etc). IE 6 will not be tested; in fact, I am *removing* all markup which indicates that it is only present to work around IE 6 bugs.
Art Cancro [Mon, 24 May 2010 17:31:47 +0000 (17:31 +0000)]
* WebCit thread pool is no longer tied to the number of server sessions. MIN_WORKER_THREADS is also gone. We now start with one worker thread. The only condition which causes new worker threads to be spawned is when all threads are executing and none are blocking on accept(). Initially this happens rather quickly, until the ideal thread pool size is found.
Art Cancro [Fri, 21 May 2010 14:53:58 +0000 (14:53 +0000)]
* Change to main server loop. All threads block on accept() instead of using a mutex. Hopefully this will solve the deadlock issue that has been plaguing us.
Art Cancro [Thu, 20 May 2010 17:54:51 +0000 (17:54 +0000)]
* In a rare eureka-moment, discovered that my XML string escape function was only sanitizing characters higher than 0x7F, but the problem character in my data set was 0x01. Fixed.
Art Cancro [Wed, 19 May 2010 15:52:06 +0000 (15:52 +0000)]
* Finally eliminated the dreaded 'spooling - try again in a few minutes' error, since the generation of spool files is no longer in the same locking domain as their transfer.
* INLINE doesn't work across several objects as of C99; we just survive it the way its now because of gcc is sluggish here.
(see http://clang.llvm.org/docs/UsersManual.html#c_modes for details)
Move the INLINE function into the header, make it static INLINE as sugested by jyasskin and sabre
* split cutuserkey() out of makeuserkey(); its name doesn't show that theres a modification of the buffer inside.
* modify several functions so their callers have to call cutuserkey()
* harmonize the user length to USERNAME_SIZE; apply cutting after cleanup of invalid characters
Art Cancro [Tue, 18 May 2010 19:16:52 +0000 (19:16 +0000)]
* When a network node is uploading a spool file, receive it in ./network/spooltmp and then move it to ./network/spoolin only when the upload is closed. (This is the first of perhaps five changes which need to be made.)
Art Cancro [Tue, 18 May 2010 18:51:49 +0000 (18:51 +0000)]
* Documented all of the 'TODO: document me.' commands in file_ops.c
* Set up a new directory ./network/spooltmp, this will be part of the solution to allow the processing of network spool files to occur independently of the transfer of network spool files.
Art Cancro [Fri, 14 May 2010 15:24:26 +0000 (15:24 +0000)]
* Properly escape XML output using new xmlesc() function for XMPP sessions. This function should eventually get moved into libcitadel, but the bigger problem is that it doesn't handle UTF-8. Right now we're just using it to keep Pidgin from barfing on illegal characters.
Art Cancro [Mon, 10 May 2010 21:22:05 +0000 (21:22 +0000)]
* I think this cleans up the remaining XMPP bugs. We now see the correct number of sessions for each user (and it turns out I didn't have to modify the xmpp_is_visible() API after all, but it's still a nice enhancement to have and doesn't cost extra).
Art Cancro [Mon, 10 May 2010 21:06:42 +0000 (21:06 +0000)]
* Ok, it's not an async bug. When I changed everything over to xmpp_is_visible() I screwed up the logic of xmpp_presence_notify(). Changed the xmpp_is_visible() API to allow it to check the visibility of ANY session to ANY other session. Still need to clean up xmpp_presence_notify() and nail down the bug.
Art Cancro [Mon, 10 May 2010 20:36:54 +0000 (20:36 +0000)]
* Changed the logic of how we inform the client about dead buddies. Instead of pushing a dead buddy update at login, we push it immediately following any roster query requested by the client. I discovered that some clients don't bother to query the roster if an unsolicited update is recived. This is working more reliably now. However, I'm not getting any asynchronous updates; must check this...