mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
Tests: fix TYPE and RETR command handling.
- FTPServer.pm's handling of TYPE command would ignore binary mode transfer request. - The FTP server would run into dead loop sending the same content forever. Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
This commit is contained in:
parent
dfa1f4e064
commit
701e407af5
@ -1,3 +1,8 @@
|
||||
2014-02-13 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
|
||||
* FTPServer.pm: Fix the handling of TYPE command and avoid endless
|
||||
loop when doing binary mode RETR.
|
||||
|
||||
2014-01-23 Lars Wendler <polynomial-c@gentoo.org> (tiny change)
|
||||
|
||||
* Test--post-file.px: Do not fail when wget has no debug support.
|
||||
|
@ -298,12 +298,13 @@ sub _RETR_command
|
||||
# What mode are we sending this file in?
|
||||
unless ($conn->{type} eq 'A') # Binary type.
|
||||
{
|
||||
my ($r, $buffer, $n, $w);
|
||||
|
||||
my ($r, $buffer, $n, $w, $sent);
|
||||
|
||||
# Copy data.
|
||||
while ($buffer = substr($content, 0, 65536))
|
||||
$sent = 0;
|
||||
while ($sent < length($content))
|
||||
{
|
||||
$buffer = substr($content, $sent, 65536);
|
||||
$r = length $buffer;
|
||||
|
||||
# Restart alarm clock timer.
|
||||
@ -330,6 +331,7 @@ sub _RETR_command
|
||||
print {$conn->{socket}} "426 Transfer aborted. Data connection closed.\r\n";
|
||||
return;
|
||||
}
|
||||
$sent += $r;
|
||||
}
|
||||
|
||||
# Cleanup and exit if there was an error.
|
||||
@ -410,9 +412,9 @@ sub _TYPE_command
|
||||
|
||||
# See RFC 959 section 5.3.2.
|
||||
if ($type =~ /^([AI])$/i) {
|
||||
$conn->{type} = 'A';
|
||||
$conn->{type} = $1;
|
||||
} elsif ($type =~ /^([AI])\sN$/i) {
|
||||
$conn->{type} = 'A';
|
||||
$conn->{type} = $1;
|
||||
} elsif ($type =~ /^L\s8$/i) {
|
||||
$conn->{type} = 'L8';
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user