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;
}
===
Прилагаемый патч должен исправить ошибку.