Distributed FTP Daemon, kortweg DrFTPd, is niet zomaar een FTP-daemon geschreven in Java. Gewone FTP-servers communiceren direct met de client en handelen alles zelf af. Dit programma verdeelt de taken over twee soorten servers: een masterserver als aanspreekpunt voor de clients en een slaveserver die de daadwerkelijke dataoverdracht voor zijn rekening neemt. Een client kan aanklopppen bij de masterserver en vragen om een bestand. De server vraagt vervolgens bij zijn slaveservers op wie het bestand heeft, en laat de slaaf die het minst druk bezet is het bestand naar de client sturen. Zo is het mogelijk om resources te delen over verschillende machines. De aanpak van DrFTPd is compatible met alle bestaande FTP-clients, zolang passive mode niet wordt gebruikt. De documentatie van dit programma is hier te vinden. De developers lieten het volgende changelog achter:
- Added IDNT support with accompanying LoginTest JUnit tetscase.
- Removed use.ident support, ident protocol is used if it is significant in users hostmasks.
- Refactored ArchiveType(s) to accept multiple destination slaves
- There are four ArchiveType(s) now available, MoveReleaseToMostFreeSlaves MoveReleaseToSpecificSlaves, FinishReleaseOnSlaves, and StripeFilesOffSpecificSlave
- Settings in archive.conf have changed
- Began adding MAX_PATH checking so that PATH_MAX which is 256 on win32 isn't exceeded.
- Made SITE SLAVES plain available to non-siteops, SITE SLAVES now takes 2 arguments: SITE SLAVES [rmi] [plain]
- Found and fixed a slave synchronization error when an upload failed.
- Fixed error checking on mkdirs().
- Added userrejectsecure, userrejectinsecure, denydiruncrypted and denydatauncrypted that behave the same was as in glftpd to perms.conf. Initial patch by mutiger.
- Fixed trial log appender in log4j-default.conf.
- Fixed SlaveTransfer so that the destination slave would get added to the file's slave list when not using CRC checking
- Added Section support for ArchiveType's
- Implemented reason dir in nuked directory after a lot whining. Creates a directory in the filelist, should problably be changed to ListUtils at some point.
- Fixed getPlugin() so that it uses instanceof, was giving problems TrialSitebot and SiteBotSSL Thanks to mutiger for the report.
- When parsing files.mlst, non-existing slaves are now ignored.
- Fixed racejoin SiteBot announcement.
- Automatically add missing trailing / to configureable section paths.
- Fixed SiteBotSSL.
- Changed [ 100% complete ] folders to not use / and cleaned up it's code.
- Improved transfer logging in DataConnectionHandler.
- DatedSection.getPath() now calls .getFile() which creates dated directories.
- Fixed byte[] buffer so that it will always be at least 65535. Thanks to hgr_ for the report.
- Updated OnConnect.
- Changed default send/receive-buffersize behaviour, if buffersize is 0, no setXxxBufferSize() call is made and the O/S can do it's own automatic tuning.
- Added IDNT support as well as bouncer_ip setting in drftpd.conf, untested as of yet.
- MKD now resurrects queued for deletion folders if a folder already exists but is queued for deletion.
- Made SafeFileWriter use UTF-8 charset instead of default charset, this should solve åäö being replaced with ??? in files.mlst etc.
- PRE now gives error if destination section has empty name (default section)
- Fixed HALFWAY/COMPLETE average speed and elapsed time messages.
- Created CHANGELOG.txt
- Improved default logging configuration, now logging to slave.log, filelist.log, sysop.log.
- Changed build.xml classpath to *.jar instead of *.