Since I need to help a colleague get an Apache 2.2.x adaptor running on Red Hat, I read through all the prior email on the subject. In it there are references to source code from several different places. To avoid confusion, I pulled all the versions I could find and compared them. The bottom line is that the differences between them are all quite minor. Here is a summary of my findings; I hope it will be useful to others too. I apologize in advance for not offering diffs, or more analysis of how these differences are manifest, but I'm not familiar enough with the code:
"Wonder 3" Adaptors
Wonder 3 (Sourceforge) is only different from Wonder 3.0 (mdimension) in the implementation of this delta in the README:
27 Sept, 2006 - Updated to work on both 32 and 64-bit architectures. Most changes are to Adaptor/shmem.c.
both support Apache 2.2.x ------------------------------------------------------------------------------------
"Wonder 4" Adaptors
wonder-4.0.0.712 (mdimension) differs from "woadaptor-4.0.0.20080102" (Quinton's email of Apr11/08) in
Q's has in mod_WebObjects.c:
if (r->connection->aborted) { break; }
NOTE: this change is in a,so Apple's 5.4 version but not in Wonder's anywhere.
all Q's files are "Copyright (c) 2000-2007 Apple, Inc. All Rights Reserved." all Wonder's are "Copyright (c) 2000 Apple Computer, Inc. All Rights Reserved."
there are other minor differences related to logging and signed/unsigned ints ------------------------------------------------------------------------------------
"Wonder 5" Adaptors
wonder-5.0.0.7992 (mdimension) differs from Apple's WebObjects 5.4 in:
in "apache.conf"
(a) Apple's refers to some files at "System/Library/..." and
(b) note also in Apple's a different default location for the /tmp/logWebObjects adaptor logging
# Note: To enable logging, touch '/tmp/logWebObjects' as the administrator user (usually root). # # The following line is the default: # WebObjectsLog /Library/WebObjects/Logs/WebObjects.log Debug
Apple's transport.c has a chunk of code starting
/* Do not hold the lock while we make the connection -- it could block for 3 seconds (depends on config) and take the lock with it read out all the data we need from the instance while we still hold the lock */
Apple's WebObjects.c differs in this code, more elaborate than Wonder:
#ifndef PROFILE fputs(CRLF,stdout); #endif
#ifndef PROFILE /* resp->content_valid will be 0 for HEAD requests and empty responses */ if (resp->content_valid) { while (resp->content_read < resp->content_length) { fwrite(resp->content,sizeof(char),resp->content_valid,stdout); resp_getResponseContent(resp, 1); } fwrite(resp->content,sizeof(char),resp->content_valid,stdout); } fflush(stdout); #endif
... but NOTE that the two conditionally compiled sections could be one (true for Wonder too). Also the Wonder version does a "fflush(stdout)" in the first conditional which Apple does not.
and Wonder's are still "Copyright (c) 2000 Apple Computer, Inc. All Rights Reserved." ------------------------------------------------------------------------------------
|