Folks,
Please review the attached patch that eliminates the rather nasty allocations
that can occur in two situations. One is in apr_sendv() when we have more than
50 items, now simply allocate the vectors on the stack [very portable across
win32, from vc5 onwards.] The other simply allocates a static buffer for
the apr_sendfile headers and trailers vector concatination, and when we
exceed it, we simply sendv out the header or trailer as appropriate.
If I hear no objections I'll commit in a day or two.
Final question. We 'devolve' to 64kb per sendfile. There is a comment in there
about exceeding the timeout. What on earth does unix do so special that it isn't
a problem over on that side? A cluestick across my knuckles would be appreciated
before I even think about attacking that code.
Bill
|