Commit 86db71b4 authored by Raymond Hilseth's avatar Raymond Hilseth Committed by Michael Niedermayer

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: 's avatarRaymond Hilseth <rhi@vizrt.com>
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent e356487f
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment