Perl модуль и докачка

Igor Sysoev is at rambler-co.ru
Thu Dec 28 22:32:30 MSK 2006


On Thu, 28 Dec 2006, Igor Sysoev wrote:

> On Thu, 28 Dec 2006, Igor Sysoev wrote:
>
>> On Thu, 28 Dec 2006, Konstantin Petrenko wrote:
>> 
>>> Наткнулся на очень не приятный глюк. Файло отдается модулем на перле:
>>> ===
>>> ...
>>>      if( -e $fn){
>>>        $r->variable("sid",$sid);
>>>        $r->allow_ranges;
>>>        $r->header_out("Content-Length", -s $fn);
>>>        $r->send_http_header;
>>>        $r->sendfile($fn);
>>>        return OK;
>>>      }
>>>      else{
>>>        return HTTP_NOT_FOUND;
>>>      }
>>> ...
>>> ===
>>> Но, если прервать закачку и потом возобновить - то файлы как-бы
>>> докачивается но на самом деле отдается заного. В итоге содердимое
>>> файла превращается в кашу. Идет кусок сначала, потом где была прервана
>>> закачка, фаил начинается опять сначала.
>>> 
>>> nginx/0.5.4, ОС FreeBSD 6.2-PRE
>>> в конфиге написано так:
>>> ===
>>>        location /downloads {
>>>            set $sid 1;
>>>            perl getfile::handler;
>>>        }
>>> ===
>> 
>> Прилагаемый патч должен исправить ошибку.
>
> Это неверный патч.

Впрочем, нет - верный.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list