Browse Source

lavf/ftp: explicitly enable UTF-8

Most FTP servers enable UTF-8 by default, but it is not required by the standard.
Enabling it manually makes ffmpeg implementation more consistent when server
doesn't enable it by default.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
tags/n2.3
Lukasz Marek 11 years ago
parent
commit
a0358db323
1 changed files with 17 additions and 0 deletions
  1. +17
    -0
      libavformat/ftp.c

+ 17
- 0
libavformat/ftp.c View File

@@ -434,6 +434,21 @@ static int ftp_restart(FTPContext *s, int64_t pos)
return 0; return 0;
} }


static int ftp_features(FTPContext *s)
{
static const char *feat_command = "FEAT\r\n";
static const char *enable_utf8_command = "OPTS UTF8 ON\r\n";
static const int feat_codes[] = {211, 500, 502, 0}; /* 500, 502 are incorrect codes */
static const int opts_codes[] = {200, 451, 500, 502}; /* 500, 451, 502 are incorrect codes */
char *feat;

if (ftp_send_command(s, feat_command, feat_codes, &feat) == 211) {
if (av_stristr(feat, "UTF8"))
ftp_send_command(s, enable_utf8_command, opts_codes, NULL);
}
return 0;
}

static int ftp_connect_control_connection(URLContext *h) static int ftp_connect_control_connection(URLContext *h)
{ {
char buf[CONTROL_BUFFER_SIZE], opts_format[20], *response = NULL; char buf[CONTROL_BUFFER_SIZE], opts_format[20], *response = NULL;
@@ -477,6 +492,8 @@ static int ftp_connect_control_connection(URLContext *h)
av_log(h, AV_LOG_ERROR, "Set content type failed\n"); av_log(h, AV_LOG_ERROR, "Set content type failed\n");
return err; return err;
} }

ftp_features(s);
} }
return 0; return 0;
} }


Loading…
Cancel
Save