Home Homebrew Rilasciato ftpsrv v1.2.1: Un server FTP leggero e multipiattaforma per console Nintendo

Rilasciato ftpsrv v1.2.1: Un server FTP leggero e multipiattaforma per console Nintendo

76
0

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.

L’aggiornamento introduce la possibilità di utilizzare l’ora locale invece dell’ora GMT, configurabile tramite il file config.ini.template.

Per la console Nintendo Switch, sono state aggiunte funzionalità per impostare configurazioni specifiche per applicazioni o sistema, anch’esse gestibili attraverso il file config.ini.template.

Inoltre, è stata introdotta la possibilità di personalizzare le opzioni delle build per ogni file system virtuale (VFS), insieme a un miglioramento del flusso di lavoro specifico per Switch.

Infine, è stato corretto un potenziale bug di out-of-bounds durante il casting del file system virtuale (VFS).

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

  1. 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 comando LIST.
  2. 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

  • Aggiunta l’opzione per utilizzare l’ora locale invece dell’ora GMT, consultare config.ini.template per ulteriori dettagli.
  • [Nx] Aggiunta la possibilità di impostare configurazioni per app o sistema, consultare config.ini.template per ulteriori dettagli.
  • [Nx] Consentita la personalizzazione delle opzioni di build per ogni file system virtuale (VFS) e migliorato il flusso di lavoro per Switch. v1.2.1
  • [Nx] Corretto un potenziale bug di out-of-bounds durante il casting del VFS. v1.2.1

Download: ftpsrv v1.2.1 (3DS)

Download: ftpsrv v1.2.1 (NDS)

Download: ftpsrv v1.2.1 (Wii)

Download: ftpsrv v1.2.1 (Switch app) (Switch sysmodule)

Download: Source code ftpsrv v1.2.1

Fonte: gbatemp.net

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.