At 04:05 PM 4/17/2002, Greg Stein wrote: >Why is this change required? Sorry... pulled in 30 directions at once. Here's the short answer.
This bugfix is required. If you study the entire code path of CGI creation for Win32... you will discover that -most- exec's are by explicit full path names (APR_PROGRAM). But we discovered that the logic precluded our invoking "perl "c:\full\path\to\script.pl" since perl wasn't decoded to c:\perl\bin\perl.exe. The same change is appropriate for interpretersource Registry execution as well. The difference is in the -source- of the command. The script requested by the client is untrusted. The program or path given by a shebang line or registry entry is trusted. So it's entirely appropriate to invoke the shebang-specified interpreter, or the interpretersource registry command, as APR_PROGRAM_PATH. But it's never appropriate to do so for the user-provided script. So we had to add the apr_progtype_e * so that it could be updated to reflect the new choice of interpreter. In the meantime, folks are renaming APR functions, and other goodness progresses. Please refer back to ap_mmn.h from Apache 1.3 - we rarely went two versions before we bumped the mmn. Later, since 1.3.14, the code has really stabilized. But we can't expect that tens of thousands of testers won't uncover deficiencies in the API, and the right answer is to fix them. Sure, the 2.1 tree might not bump as often, after we've gotten the API near-perfect in 2.0 :-) Finally, was this bump necessary? You could argue that the registered function I modified was principally internal. But because this function is now passed a pointer that is dereferenced, I felt the consequences of missing that API change outweighed the value of "Binary Compatibility" and changing the mmn bumping rules as we go. I won't argue if you want to keep the change but revert the mmn since it's 'internal'. In fact, it's really meant for MPM or platform-port authors only, I never anticipate that registered fn to be used by typical module authors. Bill >On Tue, Apr 16, 2002 at 02:46:25AM -0700, Greg Stein wrote: > > Woah... this just blew away all modules built for 2.0.35. This is an API > > change, which thus means a very careful review of WHY this change was > > required. Specifically, is there any way to avoid the change? > > > > For example, we could introduce a new function, and call that one instead > > from our code, leaving the old API untouched for third party modules. > > > > IOW, please justify the necessity of bumping the MMN. > > > > Cheers, > > -g > > > > On Sat, Apr 13, 2002 at 07:58:04PM -0000, [EMAIL PROTECTED] wrote: > > > wrowe 02/04/13 12:58:04 > > > > > > Modified: . CHANGES > > > include ap_mmn.h > > > Log: > > > The fix requires a bump > > > > > > Revision Changes Path > > > 1.704 +5 -0 httpd-2.0/CHANGES > > > > > > Index: CHANGES > > > =================================================================== > > > RCS file: /home/cvs/httpd-2.0/CHANGES,v > > > retrieving revision 1.703 > > > retrieving revision 1.704 > > > diff -u -r1.703 -r1.704 > > > --- CHANGES 12 Apr 2002 19:58:51 -0000 1.703 > > > +++ CHANGES 13 Apr 2002 19:58:04 -0000 1.704 > > > @@ -1,5 +1,10 @@ > > > Changes with Apache 2.0.36 > > > > > > + *) Allow Win32 shebang scripts to follow the path (or omit the .exe > > > + suffix from the shebang command), and allow > ScriptInterpreterSource > > > + Registry or RegistryStrict to override shebang lines, as 1.3 did. > > > + [William Rowe] > > > + > > > *) worker MPM: Fix a situation where a child exited without > releasing > > > the accept mutex. Depending on the OS and mutex mechanism this > > > could result in a hang. [Jeff Trawick] > > > > > > > > > > > > 1.42 +2 -1 httpd-2.0/include/ap_mmn.h > > > > > > Index: ap_mmn.h > > > =================================================================== > > > RCS file: /home/cvs/httpd-2.0/include/ap_mmn.h,v > > > retrieving revision 1.41 > > > retrieving revision 1.42 > > > diff -u -r1.41 -r1.42 > > > --- ap_mmn.h 29 Mar 2002 08:17:19 -0000 1.41 > > > +++ ap_mmn.h 13 Apr 2002 19:58:04 -0000 1.42 > > > @@ -103,12 +103,13 @@ > > > * 20020319 (2.0.34-dev) M_INVALID changed, plus new M_* methods > for RFC 3253 > > > * 20020327 (2.0.35-dev) Add parameter to quick_handler hook > > > * 20020329 (2.0.35-dev) bump for addition of freelists to bucket API > > > + * 20020413 (2.0.36-dev) bump for new arg to opt fn > ap_cgi_build_command > > > */ > > > > > > #define MODULE_MAGIC_COOKIE 0x41503230UL /* "AP20" */ > > > > > > #ifndef MODULE_MAGIC_NUMBER_MAJOR > > > -#define MODULE_MAGIC_NUMBER_MAJOR 20020329 > > > +#define MODULE_MAGIC_NUMBER_MAJOR 20020413 > > > #endif > > > #define MODULE_MAGIC_NUMBER_MINOR 0 /* 0...n */ > > > #define MODULE_MAGIC_NUMBER MODULE_MAGIC_NUMBER_MAJOR /* > backward compat */ > > > > > > > > > > > > > -- > > Greg Stein, http://www.lyra.org/ > >-- >Greg Stein, http://www.lyra.org/