In <Pine.SOL2.3.96.SK.990404194057.22354B-100000@sun.med.ru> Oleg Broytmann (phd@sun.med.ru) wrote:
OB> On Sun, 4 Apr 1999, Khimenko Victor wrote:
>> Вот кусок из правок http_protocol.c:
>>
>> #ifdef RUSSIAN_APACHE
>> unsigned char *newbuf,*p;
>> int newlen=0;
>> if (ra_charset_active(r))
>> {
>> ra_data_server2client(r,(char*)mm+offset,n,&newbuf,&newlen);
>> p=newbuf;
>> while(newlen > 0)
>> {
>> w = ap_bwrite(r->connection->client, p, newlen);
>> if(w<=0) goto RECODE_DONE;
>> newlen-=w;
>> p+=w;
>> }
>> w=n;
>> }
>> else
>> w = ap_bwrite(r->connection->client, (char *) mm + offset, n);
>> RECODE_DONE:;
>> #else
>> w = ap_bwrite(r->connection->client, (char *) mm + offset, n);
>> #endif
>>
>> Понятно, что все это -- взамен одной строки ...
OB> Ух, крутота!
OB> Спасибо, пойду править исправления.
Обрати внимание: вызывающий код должен "быть готов" получить w меньше, чем n !
Оно, собственно, и для оригинального ap_bwrite так, но если авторы самонаденно
не сделали там цикла (или еще чего-нибудь), то нужен еще один цикл... Ибо в
Russian Apache w может сильно меньше, чем для обычного Apache...
To Alex: а может все-таки стоит сделать замену для ap_b* функций ? С добавлением
еще одного параметра r ? Всеж-таки облегчится переработка разных модулей ...
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.