… | |
… | |
212 | sub prune_caches { |
212 | sub prune_caches { |
213 | prune_cache \%conn; |
213 | prune_cache \%conn; |
214 | prune_cache \%uri; |
214 | prune_cache \%uri; |
215 | |
215 | |
216 | for (keys %blocked) { |
216 | for (keys %blocked) { |
217 | delete $blocked{$_} if $blocked{$_}[0] > $::NOW; |
217 | delete $blocked{$_} unless $blocked{$_}[0] > $::NOW; |
218 | } |
218 | } |
219 | } |
219 | } |
220 | |
220 | |
221 | Event->timer(interval => 60, cb => \&prune_caches); |
221 | Event->timer(interval => 60, cb => \&prune_caches); |
222 | |
222 | |
… | |
… | |
540 | |
540 | |
541 | sub handle_file { |
541 | sub handle_file { |
542 | my ($self, $queue, $tbf) = @_; |
542 | my ($self, $queue, $tbf) = @_; |
543 | my $length = $self->{stat}[7]; |
543 | my $length = $self->{stat}[7]; |
544 | my $hdr = { |
544 | my $hdr = { |
545 | "Last-Modified" => time2str ((stat _)[9]), |
545 | "Last-Modified" => time2str ((stat _)[9]), |
|
|
546 | "Accept-Ranges" => "bytes", |
546 | }; |
547 | }; |
547 | |
548 | |
548 | my @code = (200, "ok"); |
549 | my @code = (200, "ok"); |
549 | my ($l, $h); |
550 | my ($l, $h); |
550 | |
551 | |