From: Lukasz Marek Date: Wed, 17 Jul 2013 00:37:15 +0000 (+0200) Subject: ftp: warning about pure-ftp server used as and output X-Git-Tag: android-x86-4.4-r1~2301^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=816c579cf3cbd079c1b14aaa063b61eed4c555ad;p=android-x86%2Fexternal-ffmpeg.git ftp: warning about pure-ftp server used as and output --- diff --git a/libavformat/ftp.c b/libavformat/ftp.c index 5241b13b83..1a4708109b 100644 --- a/libavformat/ftp.c +++ b/libavformat/ftp.c @@ -382,7 +382,7 @@ static int ftp_restart(FTPContext *s, int64_t pos) static int ftp_connect_control_connection(URLContext *h) { - char buf[CONTROL_BUFFER_SIZE], opts_format[20]; + char buf[CONTROL_BUFFER_SIZE], opts_format[20], *response = NULL; int err; AVDictionary *opts = NULL; FTPContext *s = h->priv_data; @@ -404,11 +404,16 @@ static int ftp_connect_control_connection(URLContext *h) } /* check if server is ready */ - if (ftp_status(s, NULL, connect_codes) != 220) { + if (ftp_status(s, ((h->flags & AVIO_FLAG_WRITE) ? &response : NULL), connect_codes) != 220) { av_log(h, AV_LOG_ERROR, "FTP server not ready for new users\n"); return AVERROR(EACCES); } + if ((h->flags & AVIO_FLAG_WRITE) && av_stristr(response, "pure-ftpd")) { + av_log(h, AV_LOG_WARNING, "Pure-FTPd server is used as an output protocol. It is known issue this implementation may produce incorrect content and it cannot be fixed at this moment."); + } + av_free(response); + if ((err = ftp_auth(s)) < 0) { av_log(h, AV_LOG_ERROR, "FTP authentication failed\n"); return err;