mirror of https://git.ffmpeg.org/ffmpeg.git
avformat/ftp: Support response code 125 for STOR and RETR commands
This fixes a problem where ffmpeg would hang if there is already an open data connection, and the server sends a 125 response code in reply to a STOR or RETR command. Signed-off-by: Raymond Hilseth <rhi@vizrt.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
e356487fda
commit
86db71b402
|
@ -401,10 +401,12 @@ static int ftp_file_size(FTPContext *s)
|
|||
static int ftp_retrieve(FTPContext *s)
|
||||
{
|
||||
char command[CONTROL_BUFFER_SIZE];
|
||||
static const int retr_codes[] = {150, 0};
|
||||
static const int retr_codes[] = {150, 125, 0};
|
||||
int resp_code;
|
||||
|
||||
snprintf(command, sizeof(command), "RETR %s\r\n", s->path);
|
||||
if (ftp_send_command(s, command, retr_codes, NULL) != 150)
|
||||
resp_code = ftp_send_command(s, command, retr_codes, NULL);
|
||||
if (resp_code != 125 && resp_code != 150)
|
||||
return AVERROR(EIO);
|
||||
|
||||
s->state = DOWNLOADING;
|
||||
|
@ -415,10 +417,12 @@ static int ftp_retrieve(FTPContext *s)
|
|||
static int ftp_store(FTPContext *s)
|
||||
{
|
||||
char command[CONTROL_BUFFER_SIZE];
|
||||
static const int stor_codes[] = {150, 0};
|
||||
static const int stor_codes[] = {150, 125, 0};
|
||||
int resp_code;
|
||||
|
||||
snprintf(command, sizeof(command), "STOR %s\r\n", s->path);
|
||||
if (ftp_send_command(s, command, stor_codes, NULL) != 150)
|
||||
resp_code = ftp_send_command(s, command, stor_codes, NULL);
|
||||
if (resp_code != 125 && resp_code != 150)
|
||||
return AVERROR(EIO);
|
||||
|
||||
s->state = UPLOADING;
|
||||
|
|
Loading…
Reference in New Issue