Pubblicato un nuovo aggiornamento per ftpsrv, il server FTP leggero, veloce e single-threaded scritto in linguaggio C dal developer ITotalJustice, compatibile con diverse console, tra cui Nintendo Wii, 3DS, DS e Switch.
Questo progetto è stato sviluppato per imparare il protocollo FTP e implementa un server con basso utilizzo di memoria, nessuna allocazione dinamica e overhead ridotto grazie all’uso di funzioni come poll()
o, in assenza di questa, select()
.
Il server FTP è configurabile, con un file di configurazione situato in /config/ftpsrv/config.ini
. Ogni release include un template per evitare di sovrascrivere le configurazioni esistenti durante gli aggiornamenti.
Sulla Nintendo Switch, per motivi di sicurezza, è obbligatorio impostare un nome utente e una password, a meno che non venga abilitata l’opzione anonima (anon=1
).
Questo è particolarmente importante se usato con ldn-mitm, che potrebbe altrimenti permettere modifiche non autorizzate alla scheda SD.
Tra i miglioramenti principali introdotti in questa nuova versione, è stata corretta la gestione del comando MDTM, fondamentale per impostare correttamente data e ora di un file remoto, e risolto un errore ortografico nella funzione localtime.
Inoltre, sono stati risolti problemi legati alla copia degli asset specifici della Wii e alla compilazione del server per questa console utilizzando la libreria libogc2, garantendo una maggiore compatibilità e stabilità.
Piattaforme supportate
Il server è stato portato sulle seguenti piattaforme:
- Nintendo Switch: Sia come applicazione che come sys-module.
- Nintendo Wii.
- Nintendo 3DS: Necessita di ottimizzazioni, poiché utilizza attualmente I/O POSIX con overhead.
- Nintendo DS: La build risolve un problema con dswifi e il supporto WPS, che non è attualmente supportato ufficialmente da devkitPro.
Pianificato anche un porting per console PlayStation 4, ma richiede ulteriori competenze nella creazione di servizi in background (daemon).
Problematiche note e workaround
- Bug con Dolphin (KDE): Un problema specifico con il comando
LIST
e file.jpg/.png
in directory. Il workaround consiste nel non inviare il pathname nella risposta del comandoLIST
. - Compatibilità con ffmpeg/mpv: I client come ffmpeg utilizzano il comando
ABOR
durante i trasferimenti, causando blocchi. La soluzione implementata separa i comandi e gli argomenti utilizzando il delimitatore\r\n
.
Comandi supportati senza autenticazione
Sono supportati comandi FTP standard come USER
, PASS
, QUIT
, ABOR
e HELP
. Tuttavia, il comando PWD
, secondo l’RFC959, dovrebbe essere disponibile senza autenticazione, ma in questa implementazione richiede l’autenticazione e restituisce un errore 530
se non soddisfatta.
Funzionalità future
Tra le funzionalità in programma vi sono il supporto per TLS, l’aggiunta di comandi FTP avanzati come ACCT
, STOU
e SITE
, oltre alla validazione della sequenza di comandi come RNTO
dopo RNFR
.
Changelog
- Risolto un problema nella gestione del comando MDTM, utilizzato per impostare la data e l’ora di un file remoto.
- Corretto un errore ortografico nella funzione localtime.
- Sistemati i problemi relativi alla copia degli asset specifici per la console Nintendo Wii.
- Risolto un bug nella compilazione del server sulla console Wii utilizzando la libreria libogc2.
Download: ftpsrv v1.2.2 (3DS)
Download: ftpsrv v1.2.2 (NDS)
Download: ftpsrv v1.2.2 (Wii)
Download: ftpsrv v1.2.2 (Switch app) (Switch sysmodule)
Download: Source code ftpsrv v1.2.2
Fonte: gbatemp.net