Paspartout / ogo-ftpd

minimal ftp server for the odroid-go
MIT License
5 stars 0 forks source link

Can’t connect with iPhone FTP Clients #2

Open Cralex opened 5 years ago

Cralex commented 5 years ago

When trying to connect with iPhone apps such as Transmit or FTPManager, it either shows an empty sdcard directory or it will give me errors about changing the directory if I browse around too much. Using serial over USB gives me output like this:

opendir: No such file or directory
opendir: No such file or directory
opendir: No such file or directory
E (178236) sdmmc_cmd: sdmmc_read_sectors_dma: sdmmc_send_cmd returned 0x107
E (178236) diskio_sdmmc: sdmmc_read_blocks failed (263)
opendir: No such file or directory
E (197025) sdmmc_cmd: sdmmc_read_sectors_dma: sdmmc_send_cmd returned 0x107
E (197025) diskio_sdmmc: sdmmc_read_blocks failed (263)

Using desktop clients such as FileZilla work flawlessly.

Paspartout commented 5 years ago

Thank you for the report and for the console output. Sorry for the late reply. I didn't setup github notifications correctly. I will see if I can reproduce the bug when I get hands on an iOS device. It is either a limitation coming from my uftpd library which I mainly tested using FileZilla or maybe a race condition on display/sd card spi bus.

I made an hotfix that should exclude the latter cause. Maybe that will already fix it. Would be nice if you can test if it does.

I am thinking about switching from uftpd to this implementation from 3dshell which seems more complete.

Cralex commented 5 years ago

I tried the hotfix using Transmit and FTP Manager for iPhone. I was able to connect once with Transmit, but it was very slow to do so, and it seemed to hang when trying to change directories. I tried to connect again with Transmit while reading the console, but I was not able to reproduce the successful connection with directory listing. During my attempts, the console was much less verbose:

opendir: No such file or directory recv: Connection reset by peer

This was all I ever got when trying to connect with various clients. FTP Manager gave me this diagnostic data: E4BE8713-EBEE-4769-A982-13E7304011E8

I was not able to connect successfully with (Linux) FileZilla, my file manager on Linux, or FTP in the Linux command line. The typical error seemed to be timeout on the client side, and nothing on the console output.

I’ve used 3DS Shell before before. It seems to work with all the FTP clients I’ve tried so far.

Paspartout commented 5 years ago

Thanks for testing it out that quickly.

For me the FileZilla Connection still works properly with the hotfix build. But I can imagine connecting with the iOS Client messes it up and you'd have to restart the server to make it work again.

I don't have much time to troubleshoot my uftpd library atm but I will try to release a new version of ogo-ftpd using 3dshells ftp server in next few weeks. Not sure if its going to be compatible with the esp32 sdk though.