On Wed, Aug 31, 2011 at 9:51 PM, William A. Rowe Jr.
<wr...@rowe-clan.net> wrote:
> On 8/31/2011 4:16 PM, William A. Rowe Jr. wrote:
>> I've attempted to simply substitute the 2.2.19 filter code into the
>> 2.0.64 http_protocol.c sources, and am unsure how far off these patches
>> are from what they need to be; there's been a significant amount of drift
>> and refactoring in the interim.
>
> Still looking for feedback, but the attached applies and corresponds to
> 2.2.20 with the exception of atoi rather than strtoi semantics, and without
> the no DefaultType exception..

Here's some more feedback :)  The commented-out line below in the
middle of your patch is borked, as the variable range has been moved
through the string being parsed by ap_getword().  cur is what we're
parsing this time through the loop, reflected in my minor
modification (the next line).

+        if (dash == range) {
+            /* In the form "-5" */
+            start = clength - apr_atoi64(dash + 1);
+            end = clength - 1;
+        }
+        else {
+            *dash++ = '\0';
+            /* wrowe: start = apr_atoi64(range); */
+            start = apr_atoi64(cur);
+            if (*dash) {
+                end = apr_atoi64(dash);
+            }
+            else {                  /* "5-" */
+                end = clength - 1;
+            }
+        }
+

Without this fix, I get this for the byterange tests against 2.0.x HEAD + patch:

t/apache/byterange.t      (Wstat: 0 Tests: 165 Failed: 121)
  Failed tests:  2-11, 13, 19-29, 31-32, 37-38, 40-41, 46-48
                50-53, 55, 57-60, 62-74, 76-80, 82-83, 85-88
                92, 94-95, 98-104, 107-110, 112-114, 116-118
                120-122, 125-135, 137-150, 153-155, 157
                159, 161, 163-165
t/apache/byterange4.t     (Wstat: 0 Tests: 153 Failed: 136)
  Failed tests:  18-153
t/apache/byterange5.t     (Wstat: 0 Tests: 5 Failed: 4)
  Failed tests:  1, 3-5
t/apache/byterange7.t     (Wstat: 0 Tests: 13 Failed: 5)
  Failed tests:  2-5, 12

With this fix, I get no testcase failures and this skippage:

t/apache/byterange.t ........ ok
t/apache/byterange2.t ....... ok
t/apache/byterange3.t ....... skipped: (no reason given)
t/apache/byterange4.t ....... ok
t/apache/byterange5.t ....... ok
t/apache/byterange6.t ....... skipped: apache version 2.3.15 or higher
is required, this is version 2.0.65
t/apache/byterange7.t ....... ok

Thanks for putting this together so that there was something to try out!!!!

Reply via email to