Hi Marc!
I managed to delete your email I wanted to reply to but I'll try to copy the relevant parts from the c-l.net archive... :)
Heh?? Reporting and fixing problems is not really what I would call making oneself a fool in public. ;-)
Well, I wasn't so sure. I missed spectaclularly with my last one... :)
I think: Good catch! I looked at your patches, they look ok for me so I commited them to the mod_lisp repository and switched my servers to mod_lisp 2.35.
OK, cool. Why, by the way, is it 2.35 and not 2.34? According to the mod_lisp website the latest release was 2.33 (which is also the one from Debian).
Please get the latest one (2.35) on the mod_lisp repository: http://www.fractalconcept.com:8000/public/open-source/
I get no reply when I try to connect... :(
Cheers, Edi.
Hi!
The recent 2.35 patch unfortunately introduces the possibility for another bug: If you've configured multiple mod_lisp instances in one Apache then a socket which has served one Lisp image may be re-used for a different Lisp image. This shouldn't happen, of course.
The attached patch tries to fix that. It stores the server ip address and port together with the socket and only re-uses the socket if the former values haven't changed.
Cheers, Edi.
On Mon, 02 Aug 2004 11:05:23 +0200, Edi Weitz edi@agharta.de wrote:
@@ -431,11 +442,13 @@ #ifndef WIN32 if (LispSocket) {
if (UnsafeLispSocket)
if (UnsafeLispSocket || strcmp(cfg->LispServerIP, LispServerIP) || cfg->LispServerPort != LispServerPort) { ap_pclosesocket(SocketPool, LispSocket); LispSocket = 0; UnsafeLispSocket = 0;
LispServerIP[0] = 0;
LispServerPort = 0; } else return LispSocket;
As a micro-optimization one might want to replace the line above with
+ if (UnsafeLispSocket || cfg->LispServerPort != LispServerPort || strcmp(cfg->LispServerIP, LispServerIP))
Comparing two longs should generally be faster than calling strcmp and it's not unlikely that that the different Lisp images will be on the same machine but use different ports.
Cheers, Edi.