return 0;
}
-static int ftp_has_feature(FTPContext *s, const char *feature_name);
-
static int ftp_list(FTPContext *s)
{
int ret;
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, 0};
- static const int opts_codes[] = {200, 451, 0};
+ static const int opts_codes[] = {200, 202, 451, 0};
av_freep(&s->features);
if (ftp_send_command(s, feat_command, feat_codes, &s->features) != 211) {
}
if (ftp_has_feature(s, "UTF8")) {
- if (ftp_send_command(s, enable_utf8_command, opts_codes, NULL) == 200)
+ int ret = ftp_send_command(s, enable_utf8_command, opts_codes, NULL);
+ if (ret == 200 || ret == 202)
s->utf8 = 1;
}
if (s->state == DISCONNECTED) {
/* optimization */
if (s->position >= s->filesize)
- return 0;
+ return AVERROR_EOF;
if ((err = ftp_connect_data_connection(h)) < 0)
return err;
}
if (s->state == READY) {
if (s->position >= s->filesize)
- return 0;
+ return AVERROR_EOF;
if ((err = ftp_retrieve(s)) < 0)
return err;
}