├── src ├── core │ ├── master │ │ └── src │ │ │ ├── main │ │ │ ├── resources │ │ │ │ ├── master │ │ │ │ │ ├── logs │ │ │ │ │ │ └── .keep │ │ │ │ │ └── config │ │ │ │ │ │ ├── themes │ │ │ │ │ │ ├── text │ │ │ │ │ │ │ ├── aldn_footer.txt.dist │ │ │ │ │ │ │ ├── alup_footer.txt.dist │ │ │ │ │ │ │ ├── daydn_footer.txt.dist │ │ │ │ │ │ │ ├── dayup_footer.txt.dist │ │ │ │ │ │ │ ├── galdn_footer.txt.dist │ │ │ │ │ │ │ ├── galup_footer.txt.dist │ │ │ │ │ │ │ ├── gdaydn_footer.txt.dist │ │ │ │ │ │ │ ├── gdayup_footer.txt.dist │ │ │ │ │ │ │ ├── gwkdn_footer.txt.dist │ │ │ │ │ │ │ ├── gwkup_footer.txt.dist │ │ │ │ │ │ │ ├── wkdn_footer.txt.dist │ │ │ │ │ │ │ ├── wkup_footer.txt.dist │ │ │ │ │ │ │ ├── gmonthdn_footer.txt.dist │ │ │ │ │ │ │ ├── gmonthup_footer.txt.dist │ │ │ │ │ │ │ ├── monthdn_footer.txt.dist │ │ │ │ │ │ │ ├── monthup_footer.txt.dist │ │ │ │ │ │ │ ├── traffic_footer.txt.dist │ │ │ │ │ │ │ ├── affils.txt.dist │ │ │ │ │ │ │ ├── bnc.txt.dist │ │ │ │ │ │ │ ├── rules.txt.dist │ │ │ │ │ │ │ ├── gdayup_header.txt.dist │ │ │ │ │ │ │ ├── dayup_header.txt.dist │ │ │ │ │ │ │ ├── welcome.txt.dist │ │ │ │ │ │ │ ├── gwkup_header.txt.dist │ │ │ │ │ │ │ ├── wkup_header.txt.dist │ │ │ │ │ │ │ ├── gdaydn_header.txt.dist │ │ │ │ │ │ │ ├── gmonthup_header.txt.dist │ │ │ │ │ │ │ ├── traffic_header.txt.dist │ │ │ │ │ │ │ ├── daydn_header.txt.dist │ │ │ │ │ │ │ ├── monthup_header.txt.dist │ │ │ │ │ │ │ ├── gwkdn_header.txt.dist │ │ │ │ │ │ │ ├── galup_header.txt.dist │ │ │ │ │ │ │ ├── wkdn_header.txt.dist │ │ │ │ │ │ │ ├── alup_header.txt.dist │ │ │ │ │ │ │ ├── gmonthdn_header.txt.dist │ │ │ │ │ │ │ ├── monthdn_header.txt.dist │ │ │ │ │ │ │ ├── galdn_header.txt.dist │ │ │ │ │ │ │ └── aldn_header.txt.dist │ │ │ │ │ │ ├── ftp │ │ │ │ │ │ │ ├── sections.theme.default │ │ │ │ │ │ │ ├── notes.post.hook.theme.default │ │ │ │ │ │ │ ├── expired.user.post.hook.theme.default │ │ │ │ │ │ │ ├── misc.theme.default │ │ │ │ │ │ │ ├── nuke.list.theme.default │ │ │ │ │ │ │ ├── login.theme.default │ │ │ │ │ │ │ ├── core.theme.default │ │ │ │ │ │ │ ├── dataconnection.theme.default │ │ │ │ │ │ │ ├── list.theme.default │ │ │ │ │ │ │ ├── approve.theme.default │ │ │ │ │ │ │ ├── new.theme.default │ │ │ │ │ │ │ ├── nuke.theme.default │ │ │ │ │ │ │ └── serverstatus.theme.default │ │ │ │ │ │ └── irc │ │ │ │ │ │ │ ├── sections.theme.default │ │ │ │ │ │ │ ├── notes.post.hook.theme.default │ │ │ │ │ │ │ ├── expired.user.post.hook.theme.default │ │ │ │ │ │ │ ├── misc.theme.default │ │ │ │ │ │ │ ├── new.theme.default │ │ │ │ │ │ │ ├── autofreespace.theme.default │ │ │ │ │ │ │ ├── nuke.theme.default │ │ │ │ │ │ │ ├── approve.theme.default │ │ │ │ │ │ │ └── core.theme.default │ │ │ │ │ │ ├── defaultgroup.conf.dist │ │ │ │ │ │ ├── slaveselection-old.conf.dist │ │ │ │ │ │ ├── fairness.conf.dist │ │ │ │ │ │ ├── slaveselection-jobdown.conf.dist │ │ │ │ │ │ ├── sections.conf.dist │ │ │ │ │ │ ├── defaultuser.conf.dist │ │ │ │ │ │ ├── encryptedbeanuser.conf.dist │ │ │ │ │ │ ├── slaveselection-jobup.conf.dist │ │ │ │ │ │ └── expireduser.conf.dist │ │ │ │ └── log4j2.xml │ │ │ └── java │ │ │ │ └── org │ │ │ │ └── drftpd │ │ │ │ └── master │ │ │ │ ├── event │ │ │ │ ├── ReloadEvent.java │ │ │ │ ├── UserEvent.java │ │ │ │ ├── GroupEvent.java │ │ │ │ ├── FtpListener.java │ │ │ │ ├── MasterEvent.java │ │ │ │ └── MessageEvent.java │ │ │ │ ├── permissions │ │ │ │ ├── ExtendedPermissions.java │ │ │ │ └── PathPermission.java │ │ │ │ ├── usermanager │ │ │ │ ├── Entity.java │ │ │ │ ├── UserResetPostHookInterface.java │ │ │ │ ├── UserResetPreHookInterface.java │ │ │ │ └── GroupExistsException.java │ │ │ │ ├── sections │ │ │ │ └── conf │ │ │ │ │ └── ConfigurableSectionInterface.java │ │ │ │ ├── network │ │ │ │ └── Checksum.java │ │ │ │ ├── commands │ │ │ │ ├── list │ │ │ │ │ └── AddListElementsInterface.java │ │ │ │ ├── nuke │ │ │ │ │ └── NukeException.java │ │ │ │ └── usermanagement │ │ │ │ │ └── expireduser │ │ │ │ │ └── metadata │ │ │ │ │ └── ExpiredUserData.java │ │ │ │ ├── vfs │ │ │ │ ├── LinkHandleInterface.java │ │ │ │ ├── FileHandleInterface.java │ │ │ │ ├── event │ │ │ │ │ ├── VirtualFileSystemInodeCreatedEvent.java │ │ │ │ │ ├── VirtualFileSystemInodeDeletedEvent.java │ │ │ │ │ └── VirtualFileSystemInodeRefreshEvent.java │ │ │ │ └── ListUtils.java │ │ │ │ ├── exceptions │ │ │ │ ├── NoAvailableSlaveException.java │ │ │ │ ├── ObjectExistsException.java │ │ │ │ └── IllegalFileNameException.java │ │ │ │ ├── indexation │ │ │ │ └── analysis │ │ │ │ │ └── AlphanumericalAnalyzer.java │ │ │ │ └── slavemanagement │ │ │ │ └── DummyRemoteSlave.java │ │ │ └── test │ │ │ ├── resources │ │ │ └── log4j2.xml │ │ │ └── java │ │ │ └── org │ │ │ └── drftpd │ │ │ └── master │ │ │ └── tests │ │ │ ├── DummyMaster.java │ │ │ └── DummyEncryptedBeanUserManager.java │ ├── slave │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ ├── slave │ │ │ │ └── logs │ │ │ │ │ └── .keep │ │ │ └── log4j2.xml │ │ │ └── java │ │ │ └── org │ │ │ └── drftpd │ │ │ └── slave │ │ │ ├── diskselection │ │ │ └── DiskSelectionInterface.java │ │ │ ├── exceptions │ │ │ └── FileExistsException.java │ │ │ └── network │ │ │ ├── AsyncResponseChecksum.java │ │ │ ├── AsyncResponseSiteBotMessage.java │ │ │ └── AsyncResponseTransfer.java │ ├── common │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── org │ │ │ └── drftpd │ │ │ └── common │ │ │ ├── exceptions │ │ │ ├── SSLServiceException.java │ │ │ └── RemoteIOException.java │ │ │ ├── extensibility │ │ │ ├── HookType.java │ │ │ ├── PluginInterface.java │ │ │ ├── PluginDependencies.java │ │ │ └── CommandHook.java │ │ │ ├── protocol │ │ │ └── AbstractIssuer.java │ │ │ ├── vfs │ │ │ └── CaseInsensitiveTreeMap.java │ │ │ ├── io │ │ │ └── PermissionDeniedException.java │ │ │ ├── network │ │ │ └── AsyncCommand.java │ │ │ └── dynamicdata │ │ │ └── KeyNotFoundException.java │ └── pom.xml └── plugins │ ├── find │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── master │ │ │ └── config │ │ │ └── themes │ │ │ ├── ftp │ │ │ ├── find.theme.default │ │ │ └── search.theme.default │ │ │ └── irc │ │ │ ├── find.theme.default │ │ │ └── search.theme.default │ └── pom.xml │ ├── zipscript │ ├── zipscript-master │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ └── master │ │ │ │ └── config │ │ │ │ ├── themes │ │ │ │ ├── ftp │ │ │ │ │ ├── zipscript.flac.statusbar.theme.default │ │ │ │ │ ├── zipscript.mp3.statusbar.theme.default │ │ │ │ │ ├── zipscript.post.hook.theme.default │ │ │ │ │ ├── zipscript.mp3.post.hook.theme.default │ │ │ │ │ ├── zipscript.diz.theme.default │ │ │ │ │ └── zipscript.list.theme.default │ │ │ │ └── irc │ │ │ │ │ ├── flac.announcer.theme.default │ │ │ │ │ └── mp3.announcer.theme.default │ │ │ │ └── commands │ │ │ │ ├── ftp │ │ │ │ └── zipscript.conf │ │ │ │ └── irc │ │ │ │ └── zipscript.conf │ │ │ └── java │ │ │ └── org │ │ │ └── drftpd │ │ │ └── zipscript │ │ │ └── master │ │ │ ├── sfv │ │ │ └── list │ │ │ │ ├── NoEntryAvailableException.java │ │ │ │ └── ZipscriptListStatusBarInterface.java │ │ │ └── zip │ │ │ └── RescanPostProcessDirInterface.java │ ├── pom.xml │ ├── zipscript-common │ │ └── pom.xml │ └── zipscript-slave │ │ └── pom.xml │ ├── dupecheck │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ └── master │ │ │ │ └── config │ │ │ │ └── commands │ │ │ │ ├── ftp │ │ │ │ └── dupecheck.conf │ │ │ │ └── irc │ │ │ │ └── dupecheck.conf │ │ │ └── java │ │ │ └── org │ │ │ └── drftpd │ │ │ └── dupecheck │ │ │ └── master │ │ │ └── metadata │ │ │ └── DupeCheckFileData.java │ └── pom.xml │ ├── mirror │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── master │ │ │ └── config │ │ │ └── commands │ │ │ ├── ftp │ │ │ └── mirror.conf │ │ │ └── irc │ │ │ └── mirror.conf │ └── pom.xml │ ├── links │ └── src │ │ └── main │ │ └── resources │ │ └── master │ │ └── config │ │ └── plugins │ │ └── latestdir.conf.dist │ ├── speedtest │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── master │ │ │ └── config │ │ │ ├── themes │ │ │ └── irc │ │ │ │ └── speedtest.announcer.theme.default │ │ │ └── plugins │ │ │ └── speedtest.conf.dist │ └── pom.xml │ ├── imdb │ ├── imdb-master │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ └── master │ │ │ └── config │ │ │ ├── themes │ │ │ ├── ftp │ │ │ │ └── imdb.list.theme.default │ │ │ └── irc │ │ │ │ └── imdb.announcer.theme.default │ │ │ ├── commands │ │ │ ├── ftp │ │ │ │ └── imdb.conf │ │ │ └── irc │ │ │ │ └── imdb.conf │ │ │ └── plugins │ │ │ └── imdb.conf.dist │ ├── pom.xml │ ├── imdb-common │ │ └── pom.xml │ └── imdb-slave │ │ └── pom.xml │ ├── sitebot │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ └── master │ │ │ │ └── config │ │ │ │ ├── themes │ │ │ │ └── irc │ │ │ │ │ ├── pre.announcer.theme.default │ │ │ │ │ ├── store.announcer.theme.default │ │ │ │ │ ├── sysop.announcer.theme.default │ │ │ │ │ └── nuke.announcer.theme.default │ │ │ │ └── plugins │ │ │ │ ├── sysop.conf.dist │ │ │ │ └── dailystats.conf.dist │ │ │ └── java │ │ │ └── org │ │ │ └── drftpd │ │ │ └── master │ │ │ └── sitebot │ │ │ ├── NullOutputWriter.java │ │ │ ├── ListenerInterface.java │ │ │ ├── IrcException.java │ │ │ └── NickAlreadyInUseException.java │ └── pom.xml │ ├── speedtest-net │ ├── speedtest-net-master │ │ ├── src │ │ │ └── main │ │ │ │ └── resources │ │ │ │ └── master │ │ │ │ └── config │ │ │ │ ├── plugins │ │ │ │ └── speedtest.net.conf.dist │ │ │ │ ├── commands │ │ │ │ ├── ftp │ │ │ │ │ └── speedtest.net.conf │ │ │ │ └── irc │ │ │ │ │ └── speedtest.net.conf │ │ │ │ └── themes │ │ │ │ ├── ftp │ │ │ │ └── speedtest.theme.default │ │ │ │ └── irc │ │ │ │ └── speedtest.theme.default │ │ └── pom.xml │ ├── pom.xml │ ├── speedtest-net-common │ │ └── pom.xml │ └── speedtest-net-slave │ │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ └── slave │ │ │ │ └── config │ │ │ │ └── plugins │ │ │ │ └── speedtest.net.slave.conf.dist │ │ │ └── java │ │ │ └── org │ │ │ └── drftpd │ │ │ └── speedtestnet │ │ │ └── slave │ │ │ └── SpeedTestAnswer.java │ │ └── pom.xml │ ├── raceleader │ └── src │ │ └── main │ │ └── resources │ │ └── master │ │ └── config │ │ └── themes │ │ └── irc │ │ └── new.raceleader.announcer.theme.default │ ├── jobs │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ └── master │ │ │ │ └── config │ │ │ │ ├── themes │ │ │ │ ├── ftp │ │ │ │ │ └── jobs.theme.default │ │ │ │ └── irc │ │ │ │ │ └── jobs.theme.default │ │ │ │ └── plugins │ │ │ │ └── jobs.conf.dist │ │ │ └── java │ │ │ └── org │ │ │ └── drftpd │ │ │ └── jobs │ │ │ └── master │ │ │ ├── SlaveException.java │ │ │ ├── JobIndexComparator.java │ │ │ └── SourceSlaveException.java │ └── pom.xml │ ├── traffic │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── master │ │ │ └── config │ │ │ └── themes │ │ │ └── irc │ │ │ ├── traffic.default.announcer.theme.default │ │ │ ├── traffic.ban.announcer.theme.default │ │ │ └── traffic.kick.announcer.theme.default │ └── pom.xml │ ├── tvmaze │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── master │ │ │ └── config │ │ │ ├── themes │ │ │ ├── ftp │ │ │ │ └── tvmaze.list.theme.default │ │ │ └── irc │ │ │ │ └── tvmaze.announcer.theme.default │ │ │ ├── commands │ │ │ ├── ftp │ │ │ │ └── tvmaze.conf │ │ │ └── irc │ │ │ │ └── tvmaze.conf │ │ │ └── plugins │ │ │ └── tvmaze.conf.dist │ └── pom.xml │ ├── archive │ ├── src │ │ ├── test │ │ │ └── resources │ │ │ │ └── log4j2.xml │ │ └── main │ │ │ └── resources │ │ │ └── master │ │ │ └── config │ │ │ ├── themes │ │ │ └── ftp │ │ │ │ └── archive.theme.default │ │ │ └── commands │ │ │ ├── ftp │ │ │ └── archive.conf │ │ │ └── irc │ │ │ └── archive.conf │ └── pom.xml │ ├── mediainfo │ ├── mediainfo-master │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ └── master │ │ │ │ └── config │ │ │ │ ├── plugins │ │ │ │ └── mediainfo.conf.dist │ │ │ │ └── themes │ │ │ │ └── ftp │ │ │ │ └── mediainfo.list.theme.default │ │ │ └── java │ │ │ └── org │ │ │ └── drftpd │ │ │ └── mediainfo │ │ │ └── master │ │ │ └── NoMediaInfoAvailableException.java │ ├── pom.xml │ ├── mediainfo-common │ │ └── pom.xml │ └── mediainfo-slave │ │ └── pom.xml │ ├── autonuke │ └── src │ │ └── main │ │ └── resources │ │ └── master │ │ └── config │ │ ├── commands │ │ ├── ftp │ │ │ └── autonuke.conf │ │ └── irc │ │ │ └── autonuke.conf │ │ └── themes │ │ ├── ftp │ │ └── autonuke.theme.default │ │ └── irc │ │ └── autonuke.theme.default │ ├── trial │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── master │ │ │ └── config │ │ │ └── themes │ │ │ └── irc │ │ │ ├── toptrial.announcer.theme.default │ │ │ └── grouptop.announcer.theme.default │ └── pom.xml │ ├── request │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── master │ │ │ └── config │ │ │ ├── plugins │ │ │ └── request.conf.dist │ │ │ ├── themes │ │ │ ├── ftp │ │ │ │ └── request.theme.default │ │ │ └── irc │ │ │ │ └── request.announcer.theme.default │ │ │ └── commands │ │ │ ├── ftp │ │ │ └── request.conf │ │ │ └── irc │ │ │ └── request.conf │ └── pom.xml │ ├── statistics │ ├── pom.xml │ └── src │ │ └── main │ │ ├── resources │ │ └── master │ │ │ └── config │ │ │ └── themes │ │ │ └── irc │ │ │ └── statistics.theme.default │ │ └── java │ │ └── org │ │ └── drftpd │ │ └── statistics │ │ └── master │ │ └── metadata │ │ └── StatsUserData.java │ ├── prebw │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── master │ │ │ └── config │ │ │ └── themes │ │ │ └── irc │ │ │ └── pre.bw.announcer.theme.default │ └── pom.xml │ ├── nukefilter │ └── pom.xml │ └── autofreespace │ ├── pom.xml │ └── src │ └── main │ └── resources │ └── master │ └── config │ └── plugins │ └── autofreespace.conf.dist ├── tools └── upgrade │ ├── compile.bat │ ├── compile.sh │ ├── run.bat │ ├── run.sh │ └── README.md ├── dist └── json-io-4.14.0.jar ├── genkey.bat ├── genkey.sh ├── .circleci └── config.yml ├── SECURITY.md ├── code_style.xml ├── .github ├── dependabot.yml └── ISSUE_TEMPLATE │ └── bug_report.md ├── .gitignore ├── UPGRADING.txt └── docs └── log4j2-levels.txt /src/core/master/src/main/resources/master/logs/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/core/slave/src/main/resources/slave/logs/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tools/upgrade/compile.bat: -------------------------------------------------------------------------------- 1 | javac -cp "lib/*;build/*" contrib/Upgrade.java -------------------------------------------------------------------------------- /tools/upgrade/compile.sh: -------------------------------------------------------------------------------- 1 | javac -cp "lib/*:build/*" contrib/Upgrade.java -------------------------------------------------------------------------------- /tools/upgrade/run.bat: -------------------------------------------------------------------------------- 1 | java -classpath "lib/*;build/*;." contrib.Upgrade -------------------------------------------------------------------------------- /tools/upgrade/run.sh: -------------------------------------------------------------------------------- 1 | java -classpath "lib/*:build/*:." contrib.Upgrade -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/aldn_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/alup_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/daydn_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/dayup_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/galdn_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/galup_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/gdaydn_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/gdayup_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/gwkdn_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/gwkup_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/wkdn_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/wkup_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /dist/json-io-4.14.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drftpd-ng/drftpd/HEAD/dist/json-io-4.14.0.jar -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/gmonthdn_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/gmonthup_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/monthdn_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/monthup_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/traffic_footer.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/affils.txt.dist: -------------------------------------------------------------------------------- 1 | Do whatever you want! 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/bnc.txt.dist: -------------------------------------------------------------------------------- 1 | Do whatever you want! 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/rules.txt.dist: -------------------------------------------------------------------------------- 1 | Do whatever you want! 2 | 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/sections.theme.default: -------------------------------------------------------------------------------- 1 | section=${section,-15}${path} -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/irc/sections.theme.default: -------------------------------------------------------------------------------- 1 | section=${section,-15}${path} -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/notes.post.hook.theme.default: -------------------------------------------------------------------------------- 1 | note=Note #${number} - ${note}. -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/irc/notes.post.hook.theme.default: -------------------------------------------------------------------------------- 1 | note=Note #${number} - ${note}. -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/irc/expired.user.post.hook.theme.default: -------------------------------------------------------------------------------- 1 | expireduser=Expires: ${expiredate}. -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/expired.user.post.hook.theme.default: -------------------------------------------------------------------------------- 1 | expireduser=Expires: ${expiredate}. 2 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/misc.theme.default: -------------------------------------------------------------------------------- 1 | help.footer=------------------- 2 | help.header=-----SITE HELP----- 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/irc/misc.theme.default: -------------------------------------------------------------------------------- 1 | help.footer=------------------- 2 | help.header=-----SITE HELP----- 3 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/nuke.list.theme.default: -------------------------------------------------------------------------------- 1 | # Specify the format of the Nuke REASON bar. 2 | nuke.reason=REASON-${reason} -------------------------------------------------------------------------------- /src/plugins/find/src/main/resources/master/config/themes/ftp/find.theme.default: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | find.header=Found ${results} entries in index (limit ${limit}): 3 | find.empty=No results found! -------------------------------------------------------------------------------- /src/plugins/find/src/main/resources/master/config/themes/irc/find.theme.default: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | find.header=Found ${results} entries in index (limit ${limit}): 3 | find.empty=No results found! -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/resources/master/config/themes/ftp/zipscript.flac.statusbar.theme.default: -------------------------------------------------------------------------------- 1 | #Tags: artist, album, genre, year 2 | statusbar.vorbistag=${genre} ${year} -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/resources/master/config/themes/ftp/zipscript.mp3.statusbar.theme.default: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | #Tags: artist, album, genre, year 3 | statusbar.id3tag=${genre} ${year} -------------------------------------------------------------------------------- /genkey.bat: -------------------------------------------------------------------------------- 1 | set ROOT=%~dp0 2 | keytool -genkeypair -keyalg EC -groupname secp384r1 -alias drftpd -dname CN=drftpd -keypass drftpd -keystore "drftpd.key" -storetype pkcs12 -storepass drftpd -validity 365 3 | -------------------------------------------------------------------------------- /src/plugins/find/src/main/resources/master/config/themes/ftp/search.theme.default: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | search.header=Found ${results} entries in index (limit ${limit}): 3 | search.empty=No results found! 4 | search.item=${path} -------------------------------------------------------------------------------- /src/plugins/find/src/main/resources/master/config/themes/irc/search.theme.default: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | search.header=Found ${results} entries in index (limit ${limit}): 3 | search.empty=No results found! 4 | search.item=${path} 5 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/login.theme.default: -------------------------------------------------------------------------------- 1 | user.success=Password required for ${user}. 2 | pass.success=${user} logged in successfully. 3 | pass.fail=Incorrect password for ${user}. 4 | quit.success=Goodbye! 5 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/core.theme.default: -------------------------------------------------------------------------------- 1 | statusline=[Ul: ${uploaded}] [Dl: ${downloaded}] [Average speed: ${averagespeed}]\n[Credits: ${credits}] [Ratio: 1:${org.drftpd.master.commands.usermanagement.UserManagement@ratio}]. 2 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/dataconnection.theme.default: -------------------------------------------------------------------------------- 1 | transfer.complete=Transfer complete, ${bytes} in ${seconds} seconds (${speed}). 2 | transfer.err.maxsim=Your have reached your maximum of ${maxsim} simultaneous ${direction}. Transfer denied. 3 | -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/resources/master/config/themes/ftp/zipscript.post.hook.theme.default: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drftpd-ng/drftpd/HEAD/src/plugins/zipscript/zipscript-master/src/main/resources/master/config/themes/ftp/zipscript.post.hook.theme.default -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/resources/master/config/themes/ftp/zipscript.mp3.post.hook.theme.default: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drftpd-ng/drftpd/HEAD/src/plugins/zipscript/zipscript-master/src/main/resources/master/config/themes/ftp/zipscript.mp3.post.hook.theme.default -------------------------------------------------------------------------------- /src/plugins/dupecheck/src/main/resources/master/config/commands/ftp/dupecheck.conf: -------------------------------------------------------------------------------- 1 | SITE UNDUPE { 2 | plugin org.drftpd.dupecheck.master 3 | class DupeCheckCommands 4 | method doSITE_UNDUPE 5 | perms =siteop 6 | help UnDupe a File/Directory. 7 | help.specific ${command} 8 | } 9 | -------------------------------------------------------------------------------- /src/plugins/mirror/src/main/resources/master/config/commands/ftp/mirror.conf: -------------------------------------------------------------------------------- 1 | SITE UNMIRROR { 2 | plugin org.drftpd.mirror.master 3 | class Mirror 4 | method doSITE_UNMIRROR 5 | perms =siteop 6 | help Unmirror path so files are kept on one slave only. 7 | help.specific ${command} 8 | } 9 | -------------------------------------------------------------------------------- /src/plugins/links/src/main/resources/master/config/plugins/latestdir.conf.dist: -------------------------------------------------------------------------------- 1 | ######################### 2 | ## Latest Dir Settings ## 3 | #################################################################################################### 4 | 5 | # How much links shall be produced. 6 | #maxcount=10 7 | 8 | -------------------------------------------------------------------------------- /src/plugins/speedtest/src/main/resources/master/config/themes/irc/speedtest.announcer.theme.default: -------------------------------------------------------------------------------- 1 | speedtest=${color}15${bold}SPEEDTEST${bold}${coloroff}: -> ${bold}${transferfile}${bold} (${size}) sent by ${bold}${user}${bold}${color}14${bold}/${bold}${coloroff}${group} @ ${bold}${speed}${bold} to ${slave}. -------------------------------------------------------------------------------- /src/plugins/imdb/imdb-master/src/main/resources/master/config/themes/ftp/imdb.list.theme.default: -------------------------------------------------------------------------------- 1 | # Specify the format of the imdb bar 2 | 3 | # Tags: title year language country genres director plot rating votes url screens limited 4 | imdb.dir=[IMDB] ${genres} - ${rating}/10 - ${votes} Votes - ${runtime} min [IMDB] -------------------------------------------------------------------------------- /src/plugins/dupecheck/src/main/resources/master/config/commands/irc/dupecheck.conf: -------------------------------------------------------------------------------- 1 | undupe { 2 | plugin org.drftpd.dupecheck.master 3 | class DupeCheckCommands 4 | method doSITE_UNDUPE 5 | perms =siteop 6 | help UnDupe a File/Directory. 7 | help.specific ${command} 8 | input all 9 | output source 10 | } 11 | -------------------------------------------------------------------------------- /src/plugins/mirror/src/main/resources/master/config/commands/irc/mirror.conf: -------------------------------------------------------------------------------- 1 | unmirror { 2 | plugin org.drftpd.mirror.master 3 | class Mirror 4 | method doSITE_UNMIRROR 5 | perms =siteop 6 | help Unmirror path so files are kept on one slave only. 7 | help.specific ${command} 8 | input all 9 | output source 10 | } 11 | -------------------------------------------------------------------------------- /src/plugins/sitebot/src/main/resources/master/config/themes/irc/pre.announcer.theme.default: -------------------------------------------------------------------------------- 1 | # @version $Id$ 2 | pre=${color}15${bold}PRE${bold}${coloroff} in ${color}${sectioncolor}${bold}${section}${bold}${coloroff}: -> ${bold}${grpname}${bold} gives us ${bold}${name}${bold} (${bold}${files} files${bold} - ${bold}${bytes}${bold}). 3 | -------------------------------------------------------------------------------- /genkey.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Absolute path to this script 3 | SCRIPT=$(readlink -f "$0") 4 | # Absolute path this script is in 5 | SCRIPTPATH=$(dirname "$SCRIPT") 6 | keytool -genkeypair -keyalg EC -groupname secp384r1 -alias drftpd -dname CN=drftpd -keypass drftpd -keystore "drftpd.key" -storetype pkcs12 -storepass drftpd -validity 365 "$@" 7 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/gdayup_header.txt.dist: -------------------------------------------------------------------------------- 1 | ____ _____ ____ ______ 2 | / __ \/ \ \/ / / / / __ \ 3 | / / / / /| |\ / / / / /_/ / 4 | / /_/ / ___ |/ / /_/ / ____/ 5 | /_____/_/ |_/_/\____/_/ 6 | 7 | ## Group Files Megs 8 | 9 | -------------------------------------------------------------------------------- /src/plugins/sitebot/src/main/resources/master/config/themes/irc/store.announcer.theme.default: -------------------------------------------------------------------------------- 1 | store=${color}15${bold}${extUpperCase}${bold}${coloroff} in ${color}${sectioncolor}${bold}${section}${bold}${coloroff}: -> ${path}/${bold}${file}${bold} sent by ${bold}${user}${bold}${color}14${bold}/${bold}${coloroff}${group} @ ${bold}${speed}${bold}. 2 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.1 2 | 3 | jobs: 4 | build: 5 | docker: 6 | - image: maven:3.8.5-openjdk-17 7 | steps: 8 | - checkout 9 | - run: 10 | name: Maven build 11 | command: 'mvn package' 12 | 13 | workflows: 14 | version: 2 15 | build_and_test: 16 | jobs: 17 | - build 18 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/irc/new.theme.default: -------------------------------------------------------------------------------- 1 | footer= 2 | header= 3 | new=${color}15${bold}NEW${bold}${coloroff}: [${pos,2}] ${age,7} ${diruser,-12} ${bold}${files,3}F ${size,7} ${name,-40}${bold}. 4 | new.empty=${color}15${bold}ERROR${bold}${coloroff}: No directories found in current section directory for any section! 5 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/list.theme.default: -------------------------------------------------------------------------------- 1 | files.offline.filename=${ofilename}-OFFLINE 2 | daemon.stat=FTP server status\:\n Logged in as ${user}\n Connected from ${user.ip}\n Session timeout in seconds is ${user.timeout}\n Is this a secure connection? ${ssl.enabled}\n Client count is\: ${conns}\n ${version} - The Distributed FTPD. -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/dayup_header.txt.dist: -------------------------------------------------------------------------------- 1 | ____ _____ ____ ______ 2 | / __ \/ \ \/ / / / / __ \ 3 | / / / / /| |\ / / / / /_/ / 4 | / /_/ / ___ |/ / /_/ / ____/ 5 | /_____/_/ |_/_/\____/_/ 6 | 7 | ## User Tagline Files Amount Speed 8 | 9 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/welcome.txt.dist: -------------------------------------------------------------------------------- 1 | 2 | Welcome to the future of FXP:ing 3 | ___ _____________ ___ 4 | / _ \____/ __/_ __/ _ \/ _ \ 5 | / // / __/ _/ / / / ___/ // / 6 | /____/_/ /_/ /_/ /_/ /____/ 7 | DistRibuted FTP Daemon 8 | https://github.com/drftpd-ng/drftpd 9 | 10 | -------------------------------------------------------------------------------- /src/plugins/speedtest-net/speedtest-net-master/src/main/resources/master/config/plugins/speedtest.net.conf.dist: -------------------------------------------------------------------------------- 1 | ############################ 2 | ## SpeedTest.net Settings ## 3 | #################################################################################################### 4 | 5 | # Valid options: K(km), N(nautical mile), M(mile). 6 | # Default: [K] 7 | distance.unit=K 8 | 9 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/defaultgroup.conf.dist: -------------------------------------------------------------------------------- 1 | ########################################################### 2 | ## Default Group Settings, used when creating new groups ## 3 | ########################################################### 4 | 5 | # min/max ratio that gadmins can set on their group members: 6 | # Default: [3.0][3.0] 7 | min_ratio=3.0 8 | max_ratio=3.0 9 | -------------------------------------------------------------------------------- /src/plugins/raceleader/src/main/resources/master/config/themes/irc/new.raceleader.announcer.theme.default: -------------------------------------------------------------------------------- 1 | store.newraceleader=${color}15${bold}NEW RACE LEADER${bold}${coloroff} in ${color}15${bold}${section}${bold}${coloroff}: -> ${bold}${dir} : ${prevuser}${bold} has been surpassed by ${bold}${leaduser}${bold} [${size}/${files}F/${percent}%/${speed}/s] with ${bold}${filesleft}${bold} files left. -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/gwkup_header.txt.dist: -------------------------------------------------------------------------------- 1 | _ ________________ ____ ______ 2 | | | / / ____/ ____/ //_/ / / / __ \ 3 | | | /| / / __/ / __/ / ,< / / / / /_/ / 4 | | |/ |/ / /___/ /___/ /| / /_/ / ____/ 5 | |__/|__/_____/_____/_/ |_\____/_/ 6 | 7 | ## Group Files Megs 8 | 9 | -------------------------------------------------------------------------------- /src/plugins/sitebot/src/main/resources/master/config/themes/irc/sysop.announcer.theme.default: -------------------------------------------------------------------------------- 1 | # $Id: SysopAnnouncer.irc.properties 2 | sysop.login.success=${bold}${user}${bold}: ${message} ( ${response} ) 3 | sysop.login.failed=${bold}${user}${bold}: ${message} ( ${response} ) 4 | 5 | sysop.success=${bold}${user}${bold}: ${message} ( ${response} ) 6 | sysop.failed=${bold}${user}${bold}: ${message} ( ${response} ) -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/wkup_header.txt.dist: -------------------------------------------------------------------------------- 1 | _ ________________ ____ ______ 2 | | | / / ____/ ____/ //_/ / / / __ \ 3 | | | /| / / __/ / __/ / ,< / / / / /_/ / 4 | | |/ |/ / /___/ /___/ /| / /_/ / ____/ 5 | |__/|__/_____/_____/_/ |_\____/_/ 6 | 7 | ## User Tagline Files Amount Speed 8 | 9 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | * The latest *stable* release of the 4.x branch 5 | 6 | See [DrFTPD releases](https://github.com/drftpd-ng/drftpd/releases) for information on older versions. 7 | 8 | ## Reporting a Vulnerability 9 | 10 | Please report issues on the [bug tracker](https://github.com/drftpd-ng/drftpd/issues) or in a public IRC channel such as #drftpd / #drftpd-devel. 11 | -------------------------------------------------------------------------------- /src/plugins/jobs/src/main/resources/master/config/themes/ftp/jobs.theme.default: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | addjob.success=Job ${job} was added to the list 3 | listjobwaiting=${count,7}. ${job} 4 | listjobrunning=${count,7}. ${job} speed=${speed} progress=${progress}/${total} ${srcslave} --> ${destslave} 5 | sizeofjobs=Total # of jobs is ${total} 6 | removejob.fail=Unable to remove a job with filename ${filename} 7 | removejob.success=Removed job ${job} -------------------------------------------------------------------------------- /src/plugins/jobs/src/main/resources/master/config/themes/irc/jobs.theme.default: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | addjob.success=Job ${job} was added to the list 3 | listjobwaiting=${count,7}. ${job} 4 | listjobrunning=${count,7}. ${job} speed=${speed} progress=${progress}/${total} ${srcslave} --> ${destslave} 5 | sizeofjobs=Total # of jobs is ${total} 6 | removejob.fail=Unable to remove a job with filename ${filename} 7 | removejob.success=Removed job ${job} -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/gdaydn_header.txt.dist: -------------------------------------------------------------------------------- 1 | ____ _____ ______ ____ _ ___ __ 2 | / __ \/ \ \/ / __ \/ __ \ | / / | / / 3 | / / / / /| |\ / / / / / / / | /| / / |/ / 4 | / /_/ / ___ |/ / /_/ / /_/ /| |/ |/ / /| / 5 | /_____/_/ |_/_/_____/\____/ |__/|__/_/ |_/ 6 | 7 | ## Group Files Megs 8 | 9 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/gmonthup_header.txt.dist: -------------------------------------------------------------------------------- 1 | __ _______ _ __________ ____ ______ 2 | / |/ / __ \/ | / /_ __/ / / / / / / __ \ 3 | / /|_/ / / / / |/ / / / / /_/ / / / / /_/ / 4 | / / / / /_/ / /| / / / / __ / /_/ / ____/ 5 | /_/ /_/\____/_/ |_/ /_/ /_/ /_/\____/_/ 6 | 7 | ## Group Files Megs 8 | 9 | -------------------------------------------------------------------------------- /code_style.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/traffic_header.txt.dist: -------------------------------------------------------------------------------- 1 | ______ ____ ___ ______ ______ ____ ______ 2 | /_ __// __ \ / | / ____// ____// _// ____/ 3 | / / / /_/ // /| | / /_ / /_ / / / / 4 | / / / _, _// ___ | / __/ / __/ _/ / / /___ 5 | /_/ /_/ |_|/_/ |_|/_/ /_/ /___/ \____/ 6 | 7 | Stats Average Megs Files 8 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/daydn_header.txt.dist: -------------------------------------------------------------------------------- 1 | ____ _____ ______ ____ _ ___ __ 2 | / __ \/ \ \/ / __ \/ __ \ | / / | / / 3 | / / / / /| |\ / / / / / / / | /| / / |/ / 4 | / /_/ / ___ |/ / /_/ / /_/ /| |/ |/ / /| / 5 | /_____/_/ |_/_/_____/\____/ |__/|__/_/ |_/ 6 | 7 | ## User Tagline Files Amount Speed 8 | 9 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/monthup_header.txt.dist: -------------------------------------------------------------------------------- 1 | __ _______ _ __________ ____ ______ 2 | / |/ / __ \/ | / /_ __/ / / / / / / __ \ 3 | / /|_/ / / / / |/ / / / / /_/ / / / / /_/ / 4 | / / / / /_/ / /| / / / / __ / /_/ / ____/ 5 | /_/ /_/\____/_/ |_/ /_/ /_/ /_/\____/_/ 6 | 7 | ## User Tagline Files Amount Speed 8 | 9 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/irc/autofreespace.theme.default: -------------------------------------------------------------------------------- 1 | # Tags: slave, slavesize 2 | afs.announce=${color}04${bold}AutoFreeSpace:${coloroff} Low disk space on ${bold}${slave}${bold}, ${bold}${slavesize}${bold} free. 3 | 4 | # Tags: path, dir, size, date, slave, slavesize 5 | afs.delete=${color}04${bold}AutoFreeSpace:${coloroff} ${bold}${path}${bold} deleted(${size} - ${date}) to free up space on ${bold}${slave}${bold}, ${bold}${slavesize}${bold} free. 6 | -------------------------------------------------------------------------------- /src/plugins/traffic/src/main/resources/master/config/themes/irc/traffic.default.announcer.theme.default: -------------------------------------------------------------------------------- 1 | traffic.default.up=${color}15${bold}SLOWKICK:${bold}${coloroff} 'UP : ${color}15${nickname}${coloroff}' - '${color}15${path}/${file}${coloroff}' - '${color}15${speed} < ${minspeed}${coloroff}' 2 | traffic.default.dn=${color}15${bold}SLOWKICK:${bold}${coloroff} 'DN : ${color}15${nickname}${coloroff}' - '${color}15${path}/${file}${coloroff}' - '${color}15${speed} < ${minspeed}${coloroff}' -------------------------------------------------------------------------------- /src/plugins/traffic/src/main/resources/master/config/themes/irc/traffic.ban.announcer.theme.default: -------------------------------------------------------------------------------- 1 | traffic.ban.up=${color}15${bold}SLOWKICK:${bold}${coloroff} 'UP : ${color}15${nickname}${coloroff}' - '${color}15${path}/${file}${coloroff}' - '${color}15${speed} < ${minspeed}${coloroff}' (Banned) 2 | traffic.ban.dn=${color}15${bold}SLOWKICK:${bold}${coloroff} 'DN : ${color}15${nickname}${coloroff}' - '${color}15${path}/${file}${coloroff}' - '${color}15${speed} < ${minspeed}${coloroff}' (Banned) -------------------------------------------------------------------------------- /src/plugins/traffic/src/main/resources/master/config/themes/irc/traffic.kick.announcer.theme.default: -------------------------------------------------------------------------------- 1 | traffic.kick.up=${color}15${bold}SLOWKICK:${bold}${coloroff} 'UP : ${color}15${nickname}${coloroff}' - '${color}15${path}/${file}${coloroff}' - '${color}15${speed} < ${minspeed}${coloroff}' (Kicked) 2 | traffic.kick.dn=${color}15${bold}SLOWKICK:${bold}${coloroff} 'DN : ${color}15${nickname}${coloroff}' - '${color}15${path}/${file}${coloroff}' - '${color}15${speed} < ${minspeed}${coloroff}' (Kicked) -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/gwkdn_header.txt.dist: -------------------------------------------------------------------------------- 1 | _ ________________ __ ____ ____ _ ___ __ 2 | | | / / ____/ ____/ //_// __ \/ __ \ | / / | / / 3 | | | /| / / __/ / __/ / ,< / / / / / / / | /| / / |/ / 4 | | |/ |/ / /___/ /___/ /| |/ /_/ / /_/ /| |/ |/ / /| / 5 | |__/|__/_____/_____/_/ |_/_____/\____/ |__/|__/_/ |_/ 6 | 7 | ## Group Files Megs 8 | 9 | -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/resources/master/config/themes/ftp/zipscript.diz.theme.default: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | 3 | #Tags: complete.number, complete.total, complete.percent, complete.totalbytes 4 | diz.statusbar.complete=${complete.number} of ${complete.total} zip files = ${complete.percent}% complete at ${complete.totalbytes} 5 | 6 | #Tags: offline.number, offline.percent, online.number, online.percent 7 | diz.statusbar.offline=${offline.number} zip files offline = ${online.percent}% online 8 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/galup_header.txt.dist: -------------------------------------------------------------------------------- 1 | __ ______ __ ____ ___ ____ __________ _____ 2 | / / / / __ \/ / / __ \/ | / __ \/ ____/ __ \/ ___/ 3 | / / / / /_/ / / / / / / /| | / / / / __/ / /_/ /\__ \ 4 | / /_/ / ____/ /___/ /_/ / ___ |/ /_/ / /___/ _, _/___/ / 5 | \____/_/ /_____/\____/_/ |_/_____/_____/_/ |_|/____/ 6 | 7 | ## Group Files Megs 8 | 9 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/wkdn_header.txt.dist: -------------------------------------------------------------------------------- 1 | _ ________________ __ ____ ____ _ ___ __ 2 | | | / / ____/ ____/ //_// __ \/ __ \ | / / | / / 3 | | | /| / / __/ / __/ / ,< / / / / / / / | /| / / |/ / 4 | | |/ |/ / /___/ /___/ /| |/ /_/ / /_/ /| |/ |/ / /| / 5 | |__/|__/_____/_____/_/ |_/_____/\____/ |__/|__/_/ |_/ 6 | 7 | ## User Tagline Files Amount Speed 8 | 9 | -------------------------------------------------------------------------------- /src/core/master/src/test/resources/log4j2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %p %d{ISO8601} [%t] %c %x - %m%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/plugins/tvmaze/src/main/resources/master/config/themes/ftp/tvmaze.list.theme.default: -------------------------------------------------------------------------------- 1 | #specify the format of the tvmaze bar 2 | 3 | #info tags : id, url, name, type, language, genres, status, runtime, premiered, 4 | # network, country, summary 5 | 6 | #ep tags : epid, epurl, epname, epseason, epnumber, epairdate, 7 | # : epairtime, epruntime, epsummary, epage 8 | 9 | tvmaze.dir=[TvMaze]-${tvname}_${epseason}x${epnumber}_${epairdate}_${country}_${network}_${type}_${epruntime}m-[TvMaze] -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/alup_header.txt.dist: -------------------------------------------------------------------------------- 1 | __ ______ __ ____ ___ ____ __________ _____ 2 | / / / / __ \/ / / __ \/ | / __ \/ ____/ __ \/ ___/ 3 | / / / / /_/ / / / / / / /| | / / / / __/ / /_/ /\__ \ 4 | / /_/ / ____/ /___/ /_/ / ___ |/ /_/ / /___/ _, _/___/ / 5 | \____/_/ /_____/\____/_/ |_/_____/_____/_/ |_|/____/ 6 | 7 | ## User Tagline Files Amount Speed 8 | 9 | -------------------------------------------------------------------------------- /src/plugins/archive/src/test/resources/log4j2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %p %d{ISO8601} [%t] %c %x - %m%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/log4j2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %p %d{ISO8601} [%t] %c %x - %m%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/core/slave/src/main/resources/log4j2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %p %d{ISO8601} [%t] %c %x - %m%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/resources/master/config/themes/irc/flac.announcer.theme.default: -------------------------------------------------------------------------------- 1 | ## Modify this area to change appearance of iRC site channel announcements for Vorbis info on first flac upload 2 | ## Available tags are artist, genre, year, album, title, track, samplerate, channels, runtime 3 | vorbistag=${color}15${bold}FLAC${bold}${coloroff} for ${bold}${path}${bold} [${bold}${genre}${bold} from ${bold}${year}${bold} at sample rate ${bold}${samplerate} Hz${bold}, channels ${bold}${channels}${bold}] -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/approve.theme.default: -------------------------------------------------------------------------------- 1 | approve.approved=${path} has already been approved. 2 | approve.error.path=Specified path does not exist, ${path}. 3 | approve.remove=${path} un-approved by ${user}. 4 | approve.search.empty=No directory found for: ${searchstr}. 5 | approve.search.end=End of search. Use 'approve' on full path. 6 | approve.search.item=${num} -> ${path}. 7 | approve.search.start=Multiple directories found for: ${searchstr}. 8 | approve.success=${path} approved by ${user}. 9 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/gmonthdn_header.txt.dist: -------------------------------------------------------------------------------- 1 | __ _______ _ __________ ______ ____ _ ___ __ 2 | / |/ / __ \/ | / /_ __/ / / / __ \/ __ \ | / / | / / 3 | / /|_/ / / / / |/ / / / / /_/ / / / / / / / | /| / / |/ / 4 | / / / / /_/ / /| / / / / __ / /_/ / /_/ /| |/ |/ / /| / 5 | /_/ /_/\____/_/ |_/ /_/ /_/ /_/_____/\____/ |__/|__/_/ |_/ 6 | 7 | ## Group Files Megs 8 | 9 | -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/resources/master/config/themes/irc/mp3.announcer.theme.default: -------------------------------------------------------------------------------- 1 | ## Modify this area to change appearance of iRC site channel announcements for iD3 info on first MP3 upload 2 | ## Available tags are artist, genre, year, album, title, track, bitrate, samplerate, stereomode, runtime 3 | id3tag=${color}15${bold}iD3${bold}${coloroff} in ${color}${sectioncolor}${bold}${section}${bold}${coloroff}: -> ${bold}${path}${bold} [${bold}${genre}${bold} from ${bold}${year}${bold} at ${bold}${bitrate} ${stereomode}${bold}] -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/monthdn_header.txt.dist: -------------------------------------------------------------------------------- 1 | __ _______ _ __________ ______ ____ _ ___ __ 2 | / |/ / __ \/ | / /_ __/ / / / __ \/ __ \ | / / | / / 3 | / /|_/ / / / / |/ / / / / /_/ / / / / / / / | /| / / |/ / 4 | / / / / /_/ / /| / / / / __ / /_/ / /_/ /| |/ |/ / /| / 5 | /_/ /_/\____/_/ |_/ /_/ /_/ /_/_____/\____/ |__/|__/_/ |_/ 6 | 7 | ## User Tagline Files Amount Speed 8 | 9 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/new.theme.default: -------------------------------------------------------------------------------- 1 | footer=------------------------------------------------------------------------------- 2 | header=----+-------+-----------+-------------+----------------------------------------\n\ 3 | \ ## | Age | Owner | Files Size | Directory Name\n\ 4 | ----+-------+-----------+-------------+---------------------------------------- 5 | new=[${pos,2}] ${age,7} ${diruser,-12} ${files,3}F ${size,7} ${name,-40} 6 | new.empty=No directories found in current section directory for any section! 7 | -------------------------------------------------------------------------------- /src/core/common/src/main/java/org/drftpd/common/exceptions/SSLServiceException.java: -------------------------------------------------------------------------------- 1 | package org.drftpd.common.exceptions; 2 | 3 | public class SSLServiceException extends Exception { 4 | 5 | public SSLServiceException() { super(); } 6 | 7 | public SSLServiceException(String message) { 8 | super(message); 9 | } 10 | 11 | public SSLServiceException(String message, Throwable cause) { 12 | super(message, cause); 13 | } 14 | 15 | public SSLServiceException(Throwable cause) { 16 | super(cause); 17 | } 18 | } 19 | 20 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/galdn_header.txt.dist: -------------------------------------------------------------------------------- 1 | ____ ____ _ ___ ____ ____ ___ ____ __________ _____ 2 | / __ \/ __ \ | / / | / / / / __ \/ | / __ \/ ____/ __ \/ ___/ 3 | / / / / / / / | /| / / |/ / / / / / / /| | / / / / __/ / /_/ /\__ \ 4 | / /_/ / /_/ /| |/ |/ / /| / /___/ /_/ / ___ |/ /_/ / /___/ _, _/___/ / 5 | /_____/\____/ |__/|__/_/ |_/_____/\____/_/ |_/_____/_____/_/ |_|/____/ 6 | 7 | ## Group Files Megs 8 | 9 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/slaveselection-old.conf.dist: -------------------------------------------------------------------------------- 1 | ################################ 2 | ## SlaveSelection Up Settings ## 3 | #################################################################################################### 4 | 5 | # Used by org.drftpd.master.slaveselection.def.SlaveSelection. 6 | 7 | # Minimum amount of available diskspace in bytes to have on a slave when 8 | # sending to it. If all available slaves have less than this amount the 9 | # slave with most available disk space will get all transfers. 10 | # Default: [100MB] 11 | minfreespace=100MB 12 | 13 | -------------------------------------------------------------------------------- /src/plugins/jobs/src/main/resources/master/config/plugins/jobs.conf.dist: -------------------------------------------------------------------------------- 1 | ################### 2 | ## Jobs Settings ## 3 | #################################################################################################### 4 | 5 | # This module is only used by the Archive plugin. 6 | 7 | # Use CRC checks after transfers to make sure files arrived correctly. 8 | # Default: [true] 9 | useCRC=true 10 | 11 | # Sleep for this amount of seconds between searching for new transfers. 12 | # Default: [10] 13 | sleepSeconds=10 14 | 15 | # Use SSL transfer. 16 | # Default [true] 17 | useSSLTransfers=true 18 | 19 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/text/aldn_header.txt.dist: -------------------------------------------------------------------------------- 1 | ____ ____ _ ___ ____ ____ ___ ____ __________ _____ 2 | / __ \/ __ \ | / / | / / / / __ \/ | / __ \/ ____/ __ \/ ___/ 3 | / / / / / / / | /| / / |/ / / / / / / /| | / / / / __/ / /_/ /\__ \ 4 | / /_/ / /_/ /| |/ |/ / /| / /___/ /_/ / ___ |/ /_/ / /___/ _, _/___/ / 5 | /_____/\____/ |__/|__/_/ |_/_____/\____/_/ |_/_____/_____/_/ |_|/____/ 6 | 7 | ## User Tagline Files Amount Speed 8 | 9 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | # Enable version updates for Maven 4 | - package-ecosystem: "maven" 5 | directory: "/" 6 | schedule: 7 | interval: "weekly" 8 | 9 | # Enable version updates for Docker 10 | - package-ecosystem: "docker" 11 | directory: "/" 12 | schedule: 13 | interval: "weekly" 14 | ignore: 15 | - dependency-name: "amazon-corretto" 16 | # todo: pin Java 17 17 | 18 | # Enable version updates for GitHub Actions 19 | - package-ecosystem: "github-actions" 20 | directory: "/" 21 | schedule: 22 | interval: "weekly" 23 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/irc/nuke.theme.default: -------------------------------------------------------------------------------- 1 | nuke.search.empty=No directory found with that name. 2 | nuke.search.end=End of matching directories. Use !nuke on full path to nuke. 3 | nuke.search.item=${path}. 4 | 5 | nukes=[NUKE] - Path: ${path} - Multiplier: ${multiplier} - UsersNuked: ${usersnuked} - Size: ${size} - Reason: ${reason}. 6 | nukes.empty=Nukelog empty. 7 | nukes.empty.section=Nukelog empty for section ${section}. 8 | 9 | unnuke.search.empty=No directory found with that name. 10 | unnuke.search.end=End of matching directories. Use !unnuke on full path to nuke. 11 | unnuke.search.item=${path}. 12 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/fairness.conf.dist: -------------------------------------------------------------------------------- 1 | ####################### 2 | ## Fairness Settings ## 3 | ####################### 4 | # 5 | # This configuration file configures the ratio's that the "site fairness" command adheres too. 6 | # 7 | # Fairness is calculated by dividing the uploaded bytes by the downloaded bytes by a user. 8 | # 9 | 10 | # What would we consider a ok fairness ratio. 11 | # Default: [0.5] 12 | #fairness.ok=0.5 13 | 14 | # What would we consider a good fairness ratio. 15 | # Default: [1.0] 16 | #fairness.good=1.0 17 | 18 | # What would we consider a awesome fairness ratio. 19 | # Default: [2.0] 20 | #fairness.awesome=2.0 21 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/slaveselection-jobdown.conf.dist: -------------------------------------------------------------------------------- 1 | ###################################### 2 | ## SlaveSelection Job Down Settings ## 3 | #################################################################################################### 4 | 5 | 1.filter=maxtransfers 6 | 1.maxtransfers=2 7 | 8 | 2.filter=maxbandwidth 9 | 2.maxbandwidth=1000kb 10 | 11 | 3.filter=bandwidth 12 | 3.multiplier=1 13 | 14 | 4.filter=cycle 15 | 16 | # MaxtransfersPerslave (This will allow 10 transfers on slave1 and 5 on slave2). 17 | #.filter=MaxtransfersPerslave 18 | #.assign=slave1+10 slave2+5 19 | #.match=^/section/.*$ 20 | #.negate.expression=false 21 | 22 | -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/resources/master/config/themes/ftp/zipscript.list.theme.default: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | #specify the format of the status bar 3 | zip.statusbar.format=[${statusbar}] 4 | zip.statusbar.separator=| 5 | 6 | #Tags: complete.number, complete.total, complete.percent, complete.totalbytes 7 | zip.statusbar.complete=${complete.number} of ${complete.total} files = ${complete.percent}% complete at ${complete.totalbytes} 8 | 9 | #Tags: offline.number, offline.percent, online.number, online.percent 10 | zip.statusbar.offline=${offline.number} files offline = ${online.percent}% online 11 | 12 | #Tags: mfilename 13 | zip.files.missing.filename=${mfilename}-MISSING -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/sections.conf.dist: -------------------------------------------------------------------------------- 1 | ####################### 2 | ## Sections Settings ## 3 | ################################################################################################### 4 | 5 | # These settings are only used if you are using this SectionManager 6 | # [org.drftpd.master.sections.conf.SectionManager] 7 | # If this directive's value is true DrFTPD will automatically 8 | # create the section dirs, if needed of course. 9 | # Default: [true] 10 | make.section.dirs=true 11 | 12 | 1.path=/APPS 13 | 1.name=APPS 14 | 1.color=15 15 | 16 | 2.type=dated 17 | 2.path=/MP3 18 | 2.name=MP3 19 | 2.dated=MMdd 20 | 2.now=-today 21 | 2.color=10 22 | 23 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/irc/approve.theme.default: -------------------------------------------------------------------------------- 1 | approve.approved=${color}03${path}${coloroff} has already been approved. 2 | approve.error.path=Specified path does not exist, ${color}03${path}${coloroff}. 3 | approve.remove=${color}03${path}${coloroff} un-approved by ${color}03${user}${coloroff}. 4 | approve.search.empty=No directory found for: ${color}03${searchstr}${coloroff}. 5 | approve.search.end=End of search. Use 'approve' on full path. 6 | approve.search.item=${num} -> ${path}. 7 | approve.search.start=Multiple directories found for: ${color}03${searchstr}${coloroff}. 8 | approve.success=${color}03${path}${coloroff} approved by ${color}03${user}${coloroff}. 9 | -------------------------------------------------------------------------------- /src/plugins/archive/src/main/resources/master/config/themes/ftp/archive.theme.default: -------------------------------------------------------------------------------- 1 | archivequeuedetail=${uuid} - ${archivetypename} has ${jobs} jobs 2 | archivequeuestats=Total Archive Actions in the Queue ${totaljobs}. ${activejobs} executing 3 | badarchivetype=ArchiveType ${archivetypename} was unable to be initialized - ${exception} 4 | baddir=Directory ${baddir} was unable to be found 5 | badslave=Unable to add ${slavename} to the slaveList 6 | fail=${exception} 7 | incompatible=ArchiveType ${archivetypename} is incompatible with this version of DrFTPD 8 | loadarchive=The Archive plugin must be loaded, use SITE LOADPLUGIN Archive 9 | success=Started ArchiveHandler for ${archivetypename} on ${dirname} 10 | -------------------------------------------------------------------------------- /src/plugins/tvmaze/src/main/resources/master/config/themes/irc/tvmaze.announcer.theme.default: -------------------------------------------------------------------------------- 1 | #info tags : id, url, name, type, language, genres, status, runtime, premiered, 2 | # network, country, summary 3 | 4 | #ep tags : epid, epurl, epname, epseason, epnumber, epairdate, 5 | # : epairtime, epruntime, epsummary, epage 6 | 7 | tvmaze.announce=${color}${sectioncolor}${bold}${section}${bold}${coloroff} ${color}14-TvMaze-${coloroff} ${color}07${tvname}${coloroff} (${epname} - ${epairdate}) :: ${color}07${country}${coloroff} :: ${color}07${network}${coloroff} :: ${color}07${status}${coloroff} :: ${color}07${type}${coloroff} :: ${color}07${genres}${coloroff} :: ${underline}${tvurl}${underline} 8 | -------------------------------------------------------------------------------- /src/plugins/mediainfo/mediainfo-master/src/main/resources/master/config/plugins/mediainfo.conf.dist: -------------------------------------------------------------------------------- 1 | ######################## 2 | ## MediaInfo Settings ## 3 | ######################## 4 | 5 | # Sections to exclude this plugin from, separate with space. 6 | sections.exclude=PRE 7 | 8 | # Media bar as directory(true) or file(false)? 9 | # Default [true] 10 | mediabar.directory=true 11 | 12 | # Enable media bar? 13 | # Default: [false] 14 | mediabar.enabled=false 15 | 16 | # Extensions to listen for on STOR, separate with space. 17 | # 18 | # By default this requires an external binary present, as such we do not enable this. 19 | # Uncomment below line and remove the empty line 20 | # extensions=avi mkv mp4 21 | extensions= 22 | 23 | -------------------------------------------------------------------------------- /src/plugins/autonuke/src/main/resources/master/config/commands/ftp/autonuke.conf: -------------------------------------------------------------------------------- 1 | SITE AUTONUKES { 2 | plugin org.drftpd.autonuke.master 3 | class AutoNukeCommands 4 | method doSITE_AUTONUKES 5 | perms =siteop 6 | help Show AutoNuke queue. 7 | help.specific ${command} [section] 8 | } 9 | 10 | SITE AUTONUKESCAN { 11 | plugin org.drftpd.autonuke.master 12 | class AutoNukeCommands 13 | method doSITE_AUTONUKESCAN 14 | perms =siteop 15 | help Manual AutoNuke scan. 16 | help.specific ${command} [path] 17 | } 18 | 19 | SITE DELQUEUE { 20 | plugin org.drftpd.autonuke.master 21 | class AutoNukeCommands 22 | method doSITE_DELQUEUE 23 | perms =siteop 24 | help Delete one/all item(s) from AutoNuke queue. 25 | help.specific ${command} [path] 26 | } 27 | -------------------------------------------------------------------------------- /src/plugins/sitebot/src/main/resources/master/config/plugins/sysop.conf.dist: -------------------------------------------------------------------------------- 1 | #################### 2 | ## SysOp Settings ## 3 | #################################################################################################### 4 | 5 | # 0/1/2/3 6 | # 0 = show both successful and failed. 7 | # 1 = don't show anything. 8 | # 2 = show only successful. 9 | # 3 = show only failed. 10 | 11 | # Login hooks # 12 | # Default: [0] 13 | PASS=0 14 | IDNT=0 15 | USER=0 16 | 17 | # Site hooks # 18 | # Default: [0] 19 | ADDIP=0 20 | ADDUSER=0 21 | BAN=0 22 | CHANGE=0 23 | CHGRP=0 24 | CHPASS=0 25 | DELIP=0 26 | DELUSER=0 27 | GADDUSER=0 28 | GIVE=0 29 | GRPREN=0 30 | KICK=0 31 | PASSWD=0 32 | PURGE=0 33 | READD=0 34 | RENUSER=0 35 | TAGLINE=0 36 | TAKE=0 37 | UNBAN=0 38 | 39 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Java template 3 | # Compiled class file 4 | *.class 5 | *.iml 6 | .idea 7 | .dev 8 | target 9 | build 10 | drftpd.key 11 | /config/ 12 | 13 | site 14 | runtime 15 | userdata 16 | index.bkp 17 | 18 | # More java 19 | .classpath 20 | .factorypath 21 | .project 22 | .settings 23 | .metadata 24 | 25 | # Log file 26 | *.log 27 | 28 | # BlueJ files 29 | *.ctxt 30 | 31 | # Mobile Tools for Java (J2ME) 32 | .mtj.tmp/ 33 | 34 | # Package Files # 35 | *.war 36 | *.nar 37 | *.ear 38 | *.zip 39 | *.tar.gz 40 | *.rar 41 | 42 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 43 | hs_err_pid* 44 | 45 | /dependencies/ 46 | /lib/ 47 | /core/master/userdata/vfs/.dirProperties 48 | -------------------------------------------------------------------------------- /src/plugins/imdb/imdb-master/src/main/resources/master/config/themes/irc/imdb.announcer.theme.default: -------------------------------------------------------------------------------- 1 | # Announced on NFO upload. 2 | # Define imdb output. 3 | imdb.announce=${color}${sectioncolor}${bold}${section}${bold}${coloroff} ${color}14-IMDB-${coloroff} ${color}07${title}${coloroff} (${year})\n${color}${sectioncolor}${bold}${section}${bold}${coloroff} ${color}14-IMDB-${coloroff} Genres: ${color}07${genres}${coloroff} :: Language: ${color}07${language}${coloroff} :: Country: ${color}07${country}${coloroff} :: Director: ${color}07${director}${coloroff} :: Scored: ${color}07${rating}/10${coloroff} with ${color}07${votes}${coloroff} votes :: Runtime: ${color}07${runtime}${coloroff} min.\n${color}${sectioncolor}${bold}${section}${bold}${coloroff} ${color}14-IMDB-${coloroff} Plot: ${plot}\n${underline}${url}${underline} -------------------------------------------------------------------------------- /src/plugins/imdb/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-imdb 15 | pom 16 | 17 | imdb-common 18 | imdb-slave 19 | imdb-master 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/plugins/autonuke/src/main/resources/master/config/commands/irc/autonuke.conf: -------------------------------------------------------------------------------- 1 | autonukes { 2 | plugin org.drftpd.autonuke.master 3 | class AutoNukeCommands 4 | method doSITE_AUTONUKES 5 | perms =siteop 6 | help Show AutoNuke queue. 7 | help.specific ${command} [section] 8 | input all 9 | output source 10 | } 11 | 12 | autonukescan { 13 | plugin org.drftpd.autonuke.master 14 | class AutoNukeCommands 15 | method doSITE_AUTONUKESCAN 16 | perms =siteop 17 | help Manual AutoNuke scan. 18 | help.specific ${command} [path] 19 | input all 20 | output source 21 | } 22 | 23 | delqueue { 24 | plugin org.drftpd.autonuke.master 25 | class AutoNukeCommands 26 | method doSITE_DELQUEUE 27 | perms =siteop 28 | help Delete one/all item(s) from AutoNuke queue. 29 | help.specific ${command} [path] 30 | input all 31 | output source 32 | } 33 | -------------------------------------------------------------------------------- /src/plugins/mediainfo/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-mediainfo 15 | pom 16 | 17 | mediainfo-common 18 | mediainfo-slave 19 | mediainfo-master 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/plugins/zipscript/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-zipscript 15 | pom 16 | 17 | zipscript-common 18 | zipscript-slave 19 | zipscript-master 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/plugins/trial/src/main/resources/master/config/themes/irc/toptrial.announcer.theme.default: -------------------------------------------------------------------------------- 1 | toptrial.header=${color}04${bold}Trial ${underline}${name}${underline} Is Now Over 2 | toptrial.passed=-${color}03${bold}[${bold}PASSED${color}03${bold}] - ${color}03[${bold}${coloroff}${num}${color}03${bold}] - ${color}03[${bold}${coloroff}${name}${color}03${bold}] - ${color}03[${bold}${coloroff}${files} Files${color}03${bold}] - ${color}03[${bold}${coloroff}${bytes}${color}03${bold}]${coloroff} 3 | toptrial.failed=-${color}04${bold}[${bold}FAILED${color}04${bold}] - ${color}04[${bold}${coloroff}${num}${color}04${bold}] - ${color}04[${bold}${coloroff}${name}${color}04${bold}] - ${color}04[${bold}${coloroff}${files} Files${color}04${bold}] - ${color}04[${bold}${coloroff}${bytes}${color}04${bold}]${coloroff} 4 | toptrial.empty=${color}03Nobody Was On This Trial Period 5 | -------------------------------------------------------------------------------- /src/plugins/speedtest-net/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-speedtest-net 15 | pom 16 | 17 | speedtest-net-common 18 | speedtest-net-slave 19 | speedtest-net-master 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/plugins/trial/src/main/resources/master/config/themes/irc/grouptop.announcer.theme.default: -------------------------------------------------------------------------------- 1 | grouptop.header=${color}04${bold}Group Trial ${underline}${name}${underline} Is Now Over 2 | grouptop.passed=-${color}03${bold}[${bold}PASSED${color}03${bold}] - ${color}03[${bold}${coloroff}${num}${color}03${bold}] - ${color}03[${bold}${coloroff}${name}${color}03${bold}] - ${color}03[${bold}${coloroff}${files} Files${color}03${bold}] - ${color}03[${bold}${coloroff}${bytes}${color}03${bold}]${coloroff} 3 | grouptop.failed=-${color}04${bold}[${bold}FAILED${color}04${bold}] - ${color}04[${bold}${coloroff}${num}${color}04${bold}] - ${color}04[${bold}${coloroff}${name}${color}04${bold}] - ${color}04[${bold}${coloroff}${files} Files${color}04${bold}] - ${color}04[${bold}${coloroff}${bytes}${color}04${bold}]${coloroff} 4 | grouptop.empty=${color}03No Group Was On This Trial Period 5 | -------------------------------------------------------------------------------- /src/plugins/speedtest/src/main/resources/master/config/plugins/speedtest.conf.dist: -------------------------------------------------------------------------------- 1 | ######################## 2 | ## SpeedTest Settings ## 3 | ################################################################################################### 4 | # # 5 | # Each file must be uploaded to the path to be announced as a speedtest on irc and # 6 | # then deleted automatically, otherwise the files will be kept. # 7 | # # 8 | ################################################################################################### 9 | 10 | # Specify paths for speedtest, all subdirs of this path is considered a SPEEDTEST dir. 11 | #path.1=/SPEEDTEST 12 | 13 | -------------------------------------------------------------------------------- /src/core/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 4.0.0 6 | 7 | 8 | org.drftpd 9 | drftpd 10 | 4.0.12-SNAPSHOT 11 | ../../ 12 | 13 | 14 | drftpd-core 15 | pom 16 | 17 | 18 | UTF-8 19 | 20 | 21 | 22 | common 23 | master 24 | slave 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/defaultuser.conf.dist: -------------------------------------------------------------------------------- 1 | ########################################################## 2 | ## Default User Settings, used when creating a new user ## 3 | ########################################################## 4 | 5 | # Ratio 6 | # Default: 3.0 7 | # ratio=3.0 8 | 9 | # Maximum logins 10 | # Default: 2 11 | # max_logins=2 12 | 13 | # Maximum logins per IP 14 | # Default: 2 15 | # max_logins_ip=2 16 | 17 | # Maximum uploads 18 | # Default: 2 19 | # max_uploads=2 20 | 21 | # Maximum downloads 22 | # Default: 2 23 | # max_downloads=2 24 | 25 | # Idle time 26 | # Default: 300 27 | # idle_time=300 28 | 29 | # Weekly allotment (0 = disabled) 30 | # Default: 0 31 | # wkly_allotment=0 32 | 33 | # Credits 34 | # Default: 0b 35 | # credits=0b 36 | 37 | # Tag line 38 | # Default: No tagline set. 39 | tagline=No tagline set. 40 | 41 | # Group 42 | # Default: NoGroup 43 | # group=NoGroup 44 | -------------------------------------------------------------------------------- /src/plugins/request/src/main/resources/master/config/plugins/request.conf.dist: -------------------------------------------------------------------------------- 1 | ###################### 2 | ## Request Settings ## 3 | ###################### 4 | 5 | # Request path. 6 | request.dirpath=/REQUESTS 7 | 8 | # Creates 'request.dirpath' if it does not exist. 9 | # Default: [true] 10 | request.createpath=true 11 | 12 | # Max allowed requests/week (0=unlimited). 13 | # Default: [2] 14 | request.weekmax=2 15 | # Users exempt from the weekmax rule. 16 | request.weekexempt= 17 | # Decrease the usage of the weekly allotment when reqdel. 18 | # Default: [false] 19 | request.weekdecrease=false 20 | 21 | # Regex pattern to deny unwanted chars in request name. 22 | # Deny if any non ASCII character in request name. 23 | request.deny.1=[^\\p{ASCII}] 24 | 25 | # Customize the directories prefix. 26 | reqfilled.prefix=FILLED-for. 27 | request.prefix=REQUEST-by. 28 | 29 | # Define date format. 30 | request.dateformat=yyyy-MM-dd @ HH:mm 31 | -------------------------------------------------------------------------------- /src/plugins/speedtest-net/speedtest-net-master/src/main/resources/master/config/commands/ftp/speedtest.net.conf: -------------------------------------------------------------------------------- 1 | SITE REFRESHSPEEDTEST { 2 | plugin org.drftpd.speedtestnet.master 3 | class SpeedTest 4 | method doSITE_REFRESHSPEEDTEST 5 | perms =siteop 6 | help Force an update of speedtest.net server list. 7 | help.specific ${command} 8 | } 9 | 10 | SITE SPEEDTEST { 11 | plugin org.drftpd.speedtestnet.master 12 | class SpeedTest 13 | method doSITE_SPEEDTEST 14 | perms =siteop 15 | help Run a speedtest on slave against speedtest.net test servers, * for all slaves. 16 | help.specific ${command} [ [-list | -update | ]] 17 | help.specific -list option in conjunction with slave name lists closests servers to slave location based on its IP 18 | help.specific -update option in conjunction with slave name to force location update 19 | help.specific An optional test server id can be specified to force test server. 20 | } 21 | -------------------------------------------------------------------------------- /src/plugins/imdb/imdb-master/src/main/resources/master/config/commands/ftp/imdb.conf: -------------------------------------------------------------------------------- 1 | SITE CREATEIMDB { 2 | plugin org.drftpd.imdb.master 3 | class IMDB 4 | method doSITE_CREATEIMDB 5 | perms =siteop 6 | help Create IMDB metadata for all movies below current dir. 7 | help.specific ${command} [path] 8 | } 9 | 10 | SITE IMDB { 11 | plugin org.drftpd.imdb.master 12 | class IMDB 13 | method doSITE_IMDB 14 | perms * 15 | help Search for a movie. 16 | help.specific ${command} 17 | } 18 | 19 | SITE IMDBQUEUE { 20 | plugin org.drftpd.imdb.master 21 | class IMDB 22 | method doSITE_IMDBQUEUE 23 | perms =siteop 24 | help Show number of items in the queue to be processed. 25 | help.specific ${command} 26 | } 27 | 28 | SITE REMOVEIMDB { 29 | plugin org.drftpd.imdb.master 30 | class IMDB 31 | method doSITE_REMOVEIMDB 32 | perms =siteop 33 | help Remove IMDB metadata for all movies below current dir. 34 | help.specific ${command} [path] 35 | } 36 | -------------------------------------------------------------------------------- /src/plugins/jobs/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-jobs-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/plugins/imdb/imdb-master/src/main/resources/master/config/plugins/imdb.conf.dist: -------------------------------------------------------------------------------- 1 | ################### 2 | ## IMDB Settings ## 3 | #################################################################################################### 4 | 5 | # Sections plugin should announce IMDB info on races/pre. 6 | #race.section.x=SECTION 7 | 8 | # Search for release on site on IMDB search. 9 | search.release=false 10 | #search.hd.section.x=SECTION-HD 11 | #search.sd.section.x=SECTION-SD 12 | 13 | # Random delay interval between IMDB parses. 14 | delay.start=2 15 | delay.end=5 16 | 17 | # Enable IMDB bar? 18 | imdbbar.enabled=false 19 | # IMDB bar as directory(true) or file(false)? 20 | imdbbar.directory=true 21 | 22 | # Remove these words from search string (regex). 23 | #filter.x=regex.string 24 | 25 | # Dirs to exclude (regex). 26 | # Only dirs matching "(\w+\.){3,}\w+-\w+" pattern will pass so only add dirs to exclude that also match this pattern. 27 | exclude= 28 | 29 | -------------------------------------------------------------------------------- /src/plugins/dupecheck/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-dupecheck-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/plugins/statistics/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-statistics-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/nuke.theme.default: -------------------------------------------------------------------------------- 1 | nuke=NUKE ${multiplier}X in ${section}: -> ${relpath} [ NUKER : ${user} - REASON : ${reason} ]. 2 | nuke.nukees=NUKEES: ${user}/${group} with ${nukedamount}. 3 | nuke.search.empty=No directory found with that name. 4 | nuke.search.end=End of matching directories. Use SITE NUKE on full path to nuke. 5 | nuke.search.item=${path}. 6 | 7 | nukes=[NUKE] - Path: ${path} - Multiplier: ${multiplier} - UsersNuked: ${usersnuked} - Size: ${size} - Reason: ${reason}. 8 | nukes.empty=Nukelog empty. 9 | nukes.empty.section=Nukelog empty for section ${section}. 10 | 11 | unnuke=UNNUKE in ${section}: -> ${relpath} [ UNNUKER : ${user} - REASON : ${reason} ]. 12 | unnuke.nukees=UNUKEES: ${user}/${group} : restored ${nukedamount}. 13 | unnuke.search.empty=No directory found with that name. 14 | unnuke.search.end=End of matching directories. Use SITE UNNUKE on full path to nuke. 15 | unnuke.search.item=${path}. 16 | -------------------------------------------------------------------------------- /src/plugins/imdb/imdb-common/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-imdb 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | 15 | drftpd-imdb-common 16 | jar 17 | 18 | 19 | 20 | org.drftpd 21 | drftpd-common 22 | ${project.version} 23 | provided 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Log on FTP, or issue a IRC command 16 | 2. Execute command ... 17 | 3. Error ... happens 18 | 19 | **Expected behavior** 20 | A clear and concise description of what you expected to happen. 21 | 22 | **DrFTPD** 23 | - OS: [e.g. Debian, Windows 7, Mac OS X] 24 | - Java version [e.g. 1.8.191 64 bits] 25 | - DrFTPD version [e.g. 3.3] 26 | 27 | **FTP Client:** 28 | - OS: [e.g. Windows 10, Ubuntu] 29 | - FTP software: [e.g. FlashFXP, FTPRush, lftp] 30 | - Version [e.g. 22] 31 | 32 | **Additional context** 33 | Add any other context about the problem here. 34 | 35 | Also, if your bug is related to a specific plugin, consider attaching your build.conf file. 36 | -------------------------------------------------------------------------------- /src/plugins/tvmaze/src/main/resources/master/config/commands/ftp/tvmaze.conf: -------------------------------------------------------------------------------- 1 | SITE CREATETV { 2 | plugin org.drftpd.tvmaze.master 3 | class TvMaze 4 | method doSITE_CREATETV 5 | perms =siteop 6 | help Create TvMaze metadata for all shows below current dir. 7 | help.specific ${command} [path] 8 | } 9 | 10 | SITE REMOVETV { 11 | plugin org.drftpd.tvmaze.master 12 | class TvMaze 13 | method doSITE_REMOVETV 14 | perms =siteop 15 | help Remove TvMaze metadata for all shows below current dir. 16 | help.specific ${command} [path] 17 | } 18 | 19 | SITE TV { 20 | plugin org.drftpd.tvmaze.master 21 | class TvMaze 22 | method doSITE_TV 23 | perms * 24 | help Search for a tv show (-v for verbose output). 25 | help.specific ${command} [-v] [episodenumber] 26 | } 27 | 28 | SITE TVQUEUE { 29 | plugin org.drftpd.tvmaze.master 30 | class TvMaze 31 | method doSITE_TVQUEUE 32 | perms =siteop 33 | help Show number of items in the queue to be processed. 34 | help.specific ${command} 35 | } 36 | -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-common/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-zipscript 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-zipscript-common 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-common 21 | ${project.version} 22 | provided 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/plugins/speedtest-net/speedtest-net-master/src/main/resources/master/config/commands/irc/speedtest.net.conf: -------------------------------------------------------------------------------- 1 | refreshspeedtest { 2 | plugin org.drftpd.speedtestnet.master 3 | class SpeedTest 4 | method doSITE_REFRESHSPEEDTEST 5 | perms =siteop 6 | help Force an update of speedtest.net server list. 7 | help.specific ${command} 8 | input all 9 | output source 10 | } 11 | 12 | speedtest { 13 | plugin org.drftpd.speedtestnet.master 14 | class SpeedTest 15 | method doSITE_SPEEDTEST 16 | perms =siteop 17 | help Run a speedtest on slave against speedtest.net test servers, * for all slaves. 18 | help.specific ${command} [ [-list | -update | ]] 19 | help.specific -list option in conjunction with slave name lists closests servers to slave location based on its IP 20 | help.specific -update option in conjunction with slave name to force location update 21 | help.specific An optional test server id can be specified to force test server. 22 | input all 23 | output source 24 | } 25 | -------------------------------------------------------------------------------- /src/plugins/speedtest-net/speedtest-net-common/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-speedtest-net 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-speedtestnet-common 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-common 21 | ${project.version} 22 | provided 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/plugins/autonuke/src/main/resources/master/config/themes/ftp/autonuke.theme.default: -------------------------------------------------------------------------------- 1 | autonukes.header=# AutoNukes # 2 | autonukes.empty=Queue empty 3 | # Tags: section nbrtotal 4 | autonukes.section.empty=Queue empty for section ${section}. ${nbrtotal} directories in queue for all sections. 5 | # Tags: section dir path timeleft multiplier reason 6 | autonukes.item=${path} [ AutoNuke: ${timeleft} ] [ ${multiplier}X with reason: ${reason} ] 7 | 8 | # Tags: dir path 9 | autonukes.del.success=Successfully removed ${dir} from AutoNuke queue. 10 | autonukes.del.notfound=Unable to find ${path} in AutoNuke queue. 11 | # Tags: items 12 | autonukes.del.clear=AutoNuke queue cleared, ${items} items removed. 13 | # Tags: path 14 | autonukes.del.error=Error getting ${path}, invalid dir/path specified. 15 | 16 | # Tags: section 17 | autonukescan.start=AutoNuke scan started on ${section} 18 | autonukescan.complete=Finished scanning section(s) for nukes 19 | autonukescan.aborted=AutoNuke scan aborted before it could complete -------------------------------------------------------------------------------- /src/core/common/src/main/java/org/drftpd/common/extensibility/HookType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.common.extensibility; 19 | 20 | public enum HookType { 21 | PRE, 22 | POST 23 | } 24 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/event/ReloadEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.event; 19 | 20 | /** 21 | * @author djb61 22 | * @version $Id$ 23 | */ 24 | public class ReloadEvent {} 25 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/encryptedbeanuser.conf.dist: -------------------------------------------------------------------------------- 1 | ################################## 2 | ## Encrypted Bean User Settings ## 3 | #################################################################################################### 4 | # # 5 | # Encrypt User Passwords In json File. # 6 | # # 7 | # Valid Options: md2, md5, sha-1, sha-256, sha-384, sha-512, bcrypt, glftpd, argon2 # 8 | # none, clear, empty = No encryption # 9 | # # 10 | #################################################################################################### 11 | 12 | # Default: [bcrypt] 13 | passcrypt=bcrypt 14 | 15 | -------------------------------------------------------------------------------- /src/plugins/sitebot/src/main/resources/master/config/themes/irc/nuke.announcer.theme.default: -------------------------------------------------------------------------------- 1 | nuke=${underline}${color}04/${color}08,04${bold}!${coloroff}${underline}${color}04\\${underline}${bold} NUKE ${multiplier}X ${bold}${underline}${color}04/${color}08,04${bold}!${coloroff}${underline}${color}04\\${coloroff} in ${color}${sectioncolor}${bold}${section}${bold}${coloroff}: -> ${bold}${relpath}${bold} ${bold}[${bold} NUKER : ${user} ${bold}-${bold} REASON : ${reason} ${bold}]${bold}\n 2 | nuke.nukees=${color}15${bold}NUKEES${bold}${coloroff}: ${bold}${user}${bold}${color}14${bold}/${bold}${coloroff}${group} with ${bold}${nukedamount}${bold}.\n 3 | 4 | unnuke=${color}15${bold}UNNUKE ${bold}${coloroff} in ${color}${sectioncolor}${bold}${section}${bold}${coloroff}: -> ${bold}${relpath}${bold} ${bold}[${bold} UNNUKER : ${user} ${bold}-${bold} REASON : ${reason} ${bold}]${bold}\n 5 | unnuke.nukees=${color}15${bold}UNUKEES${bold}${coloroff}: ${bold}${user}${bold}${color}14${bold}/${bold}${coloroff}${group} : restored ${bold}${nukedamount}${bold}.\n 6 | -------------------------------------------------------------------------------- /src/core/master/src/test/java/org/drftpd/master/tests/DummyMaster.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.tests; 19 | 20 | 21 | import org.drftpd.master.Master; 22 | 23 | 24 | public class DummyMaster extends Master { 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/plugins/imdb/imdb-master/src/main/resources/master/config/commands/irc/imdb.conf: -------------------------------------------------------------------------------- 1 | createimdb { 2 | plugin org.drftpd.imdb.master 3 | class IMDB 4 | method doSITE_CREATEIMDB 5 | perms =siteop 6 | help Create IMDB metadata for all movies below current dir. 7 | help.specific ${command} [path] 8 | input all 9 | output source 10 | } 11 | 12 | imdb { 13 | plugin org.drftpd.imdb.master 14 | class IMDB 15 | method doSITE_IMDB 16 | perms * 17 | help Search for a movie. 18 | help.specific ${command} 19 | input all 20 | output source 21 | } 22 | 23 | imdbqueue { 24 | plugin org.drftpd.imdb.master 25 | class IMDB 26 | method doSITE_IMDBQUEUE 27 | perms =siteop 28 | help Show number of items in the queue to be processed. 29 | help.specific ${command} 30 | input all 31 | output source 32 | } 33 | 34 | removeimdb { 35 | plugin org.drftpd.imdb.master 36 | class IMDB 37 | method doSITE_REMOVEIMDB 38 | perms =siteop 39 | help Remove IMDB metadata for all movies below current dir. 40 | help.specific ${command} [path] 41 | input all 42 | output source 43 | } 44 | -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/resources/master/config/commands/ftp/zipscript.conf: -------------------------------------------------------------------------------- 1 | SITE RESCAN { 2 | plugin org.drftpd.zipscript.master 3 | class ZipscriptCommands 4 | method doSITE_RESCAN 5 | perms * 6 | help SFV scans the files in the current directory or a specific directory requested. 7 | help.specific ${command} [-r] [noforce] [nodelete] [nodelete0byte] [quiet] [file/path] 8 | help.specific The -r option recursively scans all directories below the current directory as well. 9 | help.specific The noforce option makes the slave recalculate the checksums. 10 | help.specific The nodelete option removes bad files rather than just reporting them. 11 | help.specific The nodelete0byte option removes any files listed in the SFV which exist but are 0 byte. 12 | help.specific The quiet option only prints output for files which aren't good. 13 | help.specific Specifying a file or path will rescan the requested file or directory instead of the current directory. 14 | help.specific If the file or path does not start with '/' it will be relative to your current directory 15 | } 16 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/permissions/ExtendedPermissions.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.permissions; 19 | 20 | import java.util.List; 21 | 22 | public interface ExtendedPermissions { 23 | List permissions(); 24 | } 25 | -------------------------------------------------------------------------------- /src/plugins/speedtest-net/speedtest-net-slave/src/main/resources/slave/config/plugins/speedtest.net.slave.conf.dist: -------------------------------------------------------------------------------- 1 | ############################################# 2 | ## Slave settings for SpeedTest.net plugin ## 3 | ################################################################################################### 4 | 5 | # If you dont know what you are doing leave values at their default setting. 6 | 7 | ## Upload settings 8 | # Default: [3] 9 | threads.up=3 10 | # Total payload for upload is payload string repated x number of times. 11 | # Increased with time after each payload looped x times. 12 | payload.string=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13 | payload.repeat=7000 14 | payload.loop=20 15 | # Total time to spend measuring upload speed (s). 16 | # Default: [8] 17 | max.up.time=8 18 | 19 | ## Download settings 20 | # Default: [3] 21 | threads.down=3 22 | # Download sizes to test and loop each size x times. 23 | sizes=350,500,750,1000,1500,2000,2500,3000,3500,4000 24 | size.loop=4 25 | # Total time to spend measuring download speed (s). 26 | # Default: [8] 27 | max.down.time=8 28 | 29 | -------------------------------------------------------------------------------- /src/plugins/tvmaze/src/main/resources/master/config/commands/irc/tvmaze.conf: -------------------------------------------------------------------------------- 1 | createtv { 2 | plugin org.drftpd.tvmaze.master 3 | class TvMaze 4 | method doSITE_CREATETV 5 | perms =siteop 6 | help Create TvMaze metadata for all shows below current dir. 7 | help.specific ${command} [path] 8 | input all 9 | output source 10 | } 11 | 12 | removetv { 13 | plugin org.drftpd.tvmaze.master 14 | class TvMaze 15 | method doSITE_REMOVETV 16 | perms =siteop 17 | help Remove TvMaze metadata for all shows below current dir. 18 | help.specific ${command} [path] 19 | input all 20 | output source 21 | } 22 | 23 | tv { 24 | plugin org.drftpd.tvmaze.master 25 | class TvMaze 26 | method doSITE_TV 27 | perms * 28 | help Search for a tv show (-v for verbose output). 29 | help.specific ${command} [-v] [episodenumber] 30 | input all 31 | output source 32 | } 33 | 34 | tvqueue { 35 | plugin org.drftpd.tvmaze.master 36 | class TvMaze 37 | method doSITE_TVQUEUE 38 | perms =siteop 39 | help Show number of items in the queue to be processed. 40 | help.specific ${command} 41 | input all 42 | output source 43 | } 44 | -------------------------------------------------------------------------------- /UPGRADING.txt: -------------------------------------------------------------------------------- 1 | ## UPGRADING 2 | 3 | To upgrade from 3.x to 4.x you will not be able to keep the virtual file system 4 | or slave files. Userfiles will be converted correctly if password is not encrypted. 5 | 6 | Follow the installation documentation and do now install into the version 4.x: 7 | 8 | https://github.com/drftpd-ng/drftpd/blob/master/README.md 9 | 10 | Next if you have user files that predate 4.x, they need to be converted. There is a script in "TODO" 11 | that is called "TODO: Migrate-v3-to-v4.sh". Next start the master and readd slaves. 12 | Themes and all .conf files have to be rebuild in 4.x. Copying over the files will 13 | give you alot of problems. The virtual file system will be built when slaves are 14 | merged for the first time. 15 | 16 | ## To upgrade from 4.x to the latest: 17 | 18 | Before performing a upgrade of DrFTPD, make sure to delete the following folders: 19 | - src 20 | 21 | ### Compile 22 | - Run mvn clean 23 | - Run mvn validate 24 | - Run mvn install 25 | 26 | Regarding the configuration files, check that you are using the new ones once the build is done. 27 | -------------------------------------------------------------------------------- /src/plugins/prebw/src/main/resources/master/config/themes/irc/pre.bw.announcer.theme.default: -------------------------------------------------------------------------------- 1 | # PRE (tags: section, dir, bytes, users, groups, bw, bwavg, bwtop, bwusertop, leechtop, messuretime) 2 | prebw.announce=${bold}[${color}${sectioncolor}${section}${coloroff}]${bold} ${color}14-PREBW-${coloroff} ${dir} :: Leeched: ${bold}${bytes}${bold} :: Average speed: ${bold}${bwavg}${bold} :: Best: ${bold}${bwtop}${bold}\n${bold}[${section}]${bold} ${color}14-PREBW-${coloroff} ${bw}\n${leechtop} 3 | 4 | # Format of messure/bw (tags: time, speed) 5 | prebw.bw.format=${bold}${time}${bold}: ${speed} 6 | # Number of chars to trim at beginning and end of bw announce 7 | prebw.bw.separator=| 8 | 9 | # Format of leechtop (tags: section, dir, username, files, bytes, avgspeed, topspeed) 10 | prebw.leechtop.format=${bold}[${color}${sectioncolor}${section}${coloroff}]${bold} ${color}14-PREBW-${coloroff} :: ${username} :: ${bytes} :: ${files} files :: ${avgspeed} (Peak: ${topspeed})\n 11 | prebw.leechtop.empty=${bold}[${color}${sectioncolor}${section}${coloroff}]${bold} ${color}14-PREBW-${coloroff} ${dir} :: All leechers asleep! 12 | -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/resources/master/config/commands/irc/zipscript.conf: -------------------------------------------------------------------------------- 1 | rescan { 2 | plugin org.drftpd.zipscript.master 3 | class ZipscriptCommands 4 | method doSITE_RESCAN 5 | perms * 6 | help SFV scans the files in the current directory or a specific directory requested. 7 | help.specific ${command} [-r] [noforce] [nodelete] [nodelete0byte] [quiet] [file/path] 8 | help.specific The -r option recursively scans all directories below the current directory as well. 9 | help.specific The noforce option makes the slave recalculate the checksums. 10 | help.specific The nodelete option removes bad files rather than just reporting them. 11 | help.specific The nodelete0byte option removes any files listed in the SFV which exist but are 0 byte. 12 | help.specific The quiet option only prints output for files which aren't good. 13 | help.specific Specifying a file or path will rescan the requested file or directory instead of the current directory. 14 | help.specific If the file or path does not start with '/' it will be relative to your current directory 15 | input all 16 | output source 17 | } 18 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/usermanager/Entity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.usermanager; 19 | 20 | /** 21 | * @author mog 22 | * @version $Id$ 23 | */ 24 | public interface Entity { 25 | String getName(); 26 | 27 | boolean isMemberOf(String string); 28 | } 29 | -------------------------------------------------------------------------------- /src/plugins/sitebot/src/main/resources/master/config/plugins/dailystats.conf.dist: -------------------------------------------------------------------------------- 1 | ########################## 2 | ## Daily Stats Settings ## 3 | #################################################################################################### 4 | # # 5 | # This display's Daily/Weekly/Monthy Reports to IRC. # 6 | # # 7 | # showzero = Show users with 0 bytes (true/false). # 8 | # outputnum = Number of users to output per display. # 9 | # exempt = users/groups to exempt. # 10 | # # 11 | #################################################################################################### 12 | 13 | showzero=true 14 | outputnum=5 15 | exempt= 16 | 17 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/ftp/serverstatus.theme.default: -------------------------------------------------------------------------------- 1 | status.classes=Classes: ${loaded.classes} currently loaded / ${unloaded.classes} unloaded / ${total.classes} total loaded since startup. 2 | status.gcinfo=Garbage Collector was executed ${collection.count}x, spent ${collection.time} during those operations. 3 | status.heap=Heap Memory: ${heap.used} used / ${heap.available} available / ${heap.max} maximum. 4 | status.master.uptime=Master has been online for ${uptime}. 5 | status.nonheap=Non-Heap Memory: ${nonheap.used} used / ${nonheap.available} available / ${nonheap.max} maximum. 6 | status.osinfo=Operational System: ${os.name} vers. ${os.version} (${os.arch}) 7 | status.slave.notfound=${slave}: NOTFOUND. 8 | status.slave.offline=${slave}: OFFLINE. 9 | status.slave.uptime=${slave} has been online for ${uptime}. 10 | status.threads=Threads running: ${current.threads} / Peak thread count: ${max.threads} / Amount of created threads since startup: ${total.threads}. 11 | status.vminfo=JVM: ${vm.name} vers. ${vm.version} by ${vm.vendor}. 12 | status.cminfo=CM: Queue size: ${cm.queue}. Thread state: ${cm.state}. 13 | -------------------------------------------------------------------------------- /src/plugins/mediainfo/mediainfo-master/src/main/java/org/drftpd/mediainfo/master/NoMediaInfoAvailableException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.mediainfo.master; 19 | 20 | /** 21 | * @author scitz0 22 | */ 23 | @SuppressWarnings("serial") 24 | public class NoMediaInfoAvailableException extends Exception { 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/plugins/speedtest-net/speedtest-net-master/src/main/resources/master/config/themes/ftp/speedtest.theme.default: -------------------------------------------------------------------------------- 1 | speedtest.servers.refresh=speedtest.net server list updated! 2 | speedtest.slave.server.list=${slave.name} :: Server -> ${server.sponsor} (${server.country}) [${distance} ${unit}] (${server.id}) 3 | speedtest.start.test=Starting test on ${slave.name} 4 | speedtest.slave.result=${slave.name} :: Server -> ${server.sponsor} (${server.country}) [${distance} ${unit}] (${server.id}) : ${server.latency} ms\n${slave.name} :: Up -> ${speed.up} Mbit/s <> Down -> ${speed.down} Mbit/s 5 | 6 | speedtest.servers.null=No test servers cached, check log for warn message! 7 | speedtest.servers.empty=Could not find any speedtest.net servers, refresh list with -refresh 8 | speedtest.slavename.error=${slave.name} not found, check spelling! 9 | speedtest.slave.offline=${slave.name} is offline, unable to run speed test 10 | speedtest.slave.geoip.error=Failed getting ${slave.name} location from ipinfo.io, please use site slave slave_name set pasv_addr public_ip to override 11 | speedtest.server.id.error=${slave.name}: Server id ${server.id} not valid! -------------------------------------------------------------------------------- /src/plugins/speedtest-net/speedtest-net-master/src/main/resources/master/config/themes/irc/speedtest.theme.default: -------------------------------------------------------------------------------- 1 | speedtest.servers.refresh=speedtest.net server list updated! 2 | speedtest.slave.server.list=${slave.name} :: Server -> ${server.sponsor} (${server.country}) [${distance} ${unit}] (${server.id}) 3 | speedtest.start.test=Starting test on ${slave.name} 4 | speedtest.slave.result=${slave.name} :: Server -> ${server.sponsor} (${server.country}) [${distance} ${unit}] (${server.id}) : ${server.latency} ms\n${slave.name} :: Up -> ${speed.up} Mbit/s <> Down -> ${speed.down} Mbit/s 5 | 6 | speedtest.servers.null=No test servers cached, check log for warn message! 7 | speedtest.servers.empty=Could not find any speedtest.net servers, refresh list with -refresh 8 | speedtest.slavename.error=${slave.name} not found, check spelling! 9 | speedtest.slave.offline=${slave.name} is offline, unable to run speed test 10 | speedtest.slave.geoip.error=Failed getting ${slave.name} location from ipinfo.io, please use site slave slave_name set pasv_addr public_ip to override 11 | speedtest.server.id.error=${slave.name}: Server id ${server.id} not valid! -------------------------------------------------------------------------------- /src/core/common/src/main/java/org/drftpd/common/extensibility/PluginInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.common.extensibility; 19 | 20 | /** 21 | * @author djb61 22 | * @version $Id$ 23 | */ 24 | public interface PluginInterface { 25 | 26 | void startPlugin(); 27 | 28 | void stopPlugin(String reason); 29 | } 30 | -------------------------------------------------------------------------------- /src/plugins/autonuke/src/main/resources/master/config/themes/irc/autonuke.theme.default: -------------------------------------------------------------------------------- 1 | autonukes.header=# AutoNukes # 2 | autonukes.empty=Queue empty 3 | # Tags: section nbrtotal 4 | autonukes.section.empty=Queue empty for section ${bold}${section}. ${nbrtotal}${bold} directories in queue for all sections. 5 | # Tags: section dir path timeleft multiplier reason 6 | autonukes.item=${bold}${path}${bold} [ AutoNuke: ${color}10${timeleft}${coloroff} ] [ ${bold}${multiplier}X${bold} with reason: ${bold}${reason}${bold} ] 7 | 8 | # Tags: dir path 9 | autonukes.del.success=Successfully removed ${bold}${dir}${bold} from AutoNuke queue. 10 | autonukes.del.notfound=Unable to find ${bold}${path}${bold} in AutoNuke queue. 11 | # Tags: items 12 | autonukes.del.clear=AutoNuke queue cleared, ${bold}${items}${bold} items removed. 13 | # Tags: path 14 | autonukes.del.error=Error getting ${bold}${path}${bold}, invalid dir/path specified. 15 | 16 | # Tags: section 17 | autonukescan.start=AutoNuke scan started on ${bold}${section}${bold}\n 18 | autonukescan.complete=Finished scanning section(s) for nukes 19 | autonukescan.aborted=AutoNuke scan aborted before it could complete -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/slaveselection-jobup.conf.dist: -------------------------------------------------------------------------------- 1 | #################################### 2 | ## SlaveSelection Job Up Settings ## 3 | #################################################################################################### 4 | 5 | 1.filter=maxtransfers 6 | 1.maxtransfers=2 7 | 8 | 2.filter=maxbandwidth 9 | 2.maxbandwidth=1000kb 10 | 11 | 3.filter=bandwidth 12 | 3.multiplier=1 13 | 14 | 4.filter=minfreespace 15 | 4.multiplier=1 16 | 4.minfreespace=1GB 17 | 18 | 5.filter=minfreespace 19 | 5.minfreespace=100MB 20 | 5.multiplier=remove 21 | 22 | 6.filter=cycle 23 | 24 | # Gives points for each JobTransfer where it is a destination slave 25 | # in the directory being Archive'd. 26 | #.filter=jobpoints 27 | #.assign=50000 28 | 29 | # Takes points if the slave does not have enough space for the directory 30 | # being Archive'd. 31 | #.filter=directoryspace 32 | #.assign=1000000 33 | 34 | # MaxtransfersPerslave (This will allow 10 transfers on slave1 and 5 on slave2). 35 | #.filter=MaxtransfersPerslave 36 | #.assign=slave1+10 slave2+5 37 | #.match=^/section/.*$ 38 | #.negate.expression=false 39 | 40 | -------------------------------------------------------------------------------- /src/plugins/request/src/main/resources/master/config/themes/ftp/request.theme.default: -------------------------------------------------------------------------------- 1 | request.success=${request.name} added to requests 2 | request.exists=${request.name} has already been requested 3 | request.error=Error while creating request directory inside ${request.root}, check your logs 4 | 5 | reqfilled.success=${request.name} filled 6 | reqfilled.error=An error occurred while filling ${request.name}, check your logs 7 | reqfilled.exists=${request.name} is already filled for ${user}, duplicate request detected 8 | reqfilled.notfound=Can't fill an unexisting request - ${request.name} 9 | reqfilled.root.notfound=${request.root} doesn't exist, unable to fill request 10 | 11 | requests.header=REQUESTS: 12 | requests.list=[${num}] ${request.name} by ${request.user} on ${request.date} 13 | requests.footer=Use SITE REQFILLED after you fill a request. 14 | 15 | reqdel.success=${request.name} was deleted 16 | reqdel.notfound=${request.name} was not found. 17 | reqdel.notowner=You are not owner of ${request.name} 18 | reqdel.root.notfound=${request.root} doesn't exist, unable to delete request 19 | reqdel.error=Error while deleting request inside ${request.root} -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/expireduser.conf.dist: -------------------------------------------------------------------------------- 1 | ########################### 2 | ## Expired User Settings ## 3 | #################################################################################################### 4 | # # 5 | # EXAMPLES: # 6 | # # 7 | # delete = Delete the user [true/false] # 8 | # purge = Purge the user [true/false] # 9 | # chgrp = Change group of user (groups to change to/from) # 10 | # setgrp = Sets the primary group of user (groupname) # 11 | # # 12 | #################################################################################################### 13 | 14 | -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/java/org/drftpd/zipscript/master/sfv/list/NoEntryAvailableException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.zipscript.master.sfv.list; 19 | 20 | /** 21 | * @author djb61 22 | * @version $Id$ 23 | */ 24 | @SuppressWarnings("serial") 25 | public class NoEntryAvailableException extends Exception { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/plugins/mediainfo/mediainfo-common/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-mediainfo 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-mediainfo-common 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-common 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.mp4parser 26 | isoparser 27 | 1.9.56 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/core/common/src/main/java/org/drftpd/common/protocol/AbstractIssuer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.common.protocol; 19 | 20 | /** 21 | * All Issuers *MUST* extend this class so that they can be properly loaded and used. 22 | * 23 | * @author fr0w 24 | * @version $Id$ 25 | */ 26 | public abstract class AbstractIssuer { 27 | public abstract String getProtocolName(); 28 | } 29 | -------------------------------------------------------------------------------- /src/core/common/src/main/java/org/drftpd/common/vfs/CaseInsensitiveTreeMap.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.common.vfs; 19 | 20 | import java.util.TreeMap; 21 | 22 | @SuppressWarnings("serial") 23 | public class CaseInsensitiveTreeMap extends TreeMap { 24 | 25 | public CaseInsensitiveTreeMap() { 26 | super(String.CASE_INSENSITIVE_ORDER); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/usermanager/UserResetPostHookInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.usermanager; 19 | 20 | import org.drftpd.master.cron.TimeEventInterface; 21 | 22 | /** 23 | * @author djb61 24 | * @version $Id$ 25 | */ 26 | public interface UserResetPostHookInterface extends TimeEventInterface { 27 | 28 | void init(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/usermanager/UserResetPreHookInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.usermanager; 19 | 20 | import org.drftpd.master.cron.TimeEventInterface; 21 | 22 | /** 23 | * @author djb61 24 | * @version $Id$ 25 | */ 26 | public interface UserResetPreHookInterface extends TimeEventInterface { 27 | 28 | void init(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/core/common/src/main/java/org/drftpd/common/extensibility/PluginDependencies.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.common.extensibility; 19 | 20 | import java.lang.annotation.Retention; 21 | import java.lang.annotation.RetentionPolicy; 22 | 23 | 24 | @Retention(RetentionPolicy.RUNTIME) 25 | public @interface PluginDependencies { 26 | Class[] refs(); 27 | } 28 | -------------------------------------------------------------------------------- /src/plugins/sitebot/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-sitebot-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-common 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-master 27 | ${project.version} 28 | provided 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/plugins/tvmaze/src/main/resources/master/config/plugins/tvmaze.conf.dist: -------------------------------------------------------------------------------- 1 | ##################### 2 | ## TVmaze Settings ## 3 | #################################################################################################### 4 | 5 | # Sections plugin should announce TVmaze info on races/pre. 6 | #race.section.x=SECTION 7 | 8 | # Search for release on site on tvmaze search. 9 | # Default: [false] 10 | search.release=false 11 | #search.hd.section.x=SECTION-HD 12 | #search.sd.section.x=SECTION-SD 13 | 14 | # Dirs to exclude (regex). 15 | # Only dirs matching "(\w+\.){3,}\w+-\w+" pattern will pass, 16 | # so only add dirs to exclude that also matchi this pattern. 17 | exclude= 18 | 19 | # Remove these words from search string (regex). 20 | #filter.x=regex.string 21 | 22 | # Date and time format for show info. 23 | date.show=yyyy-MM-dd 24 | time.show=EEEE, HH:mm 25 | 26 | # Timezone to use for all dates and times. 27 | timezone=-05:00 28 | 29 | # Random delay interval between tvmaze parses. 30 | delay.start=0 31 | delay.end=5 32 | 33 | # Enable TVmaze bar? 34 | # Default: [false] 35 | tvmazebar.enabled=false 36 | # TvMaze bar as directory (true) or file (false)? 37 | tvmazebar.directory=true 38 | 39 | -------------------------------------------------------------------------------- /src/plugins/imdb/imdb-slave/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-imdb 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-imdb-slave 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-slave 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-imdb-common 27 | ${project.version} 28 | provided 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/plugins/mirror/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-mirror-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-jobs-master 27 | ${project.version} 28 | provided 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/plugins/prebw/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-prebw-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-sitebot-master 27 | ${project.version} 28 | provided 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/plugins/trial/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-trial-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-sitebot-master 27 | ${project.version} 28 | provided 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/sections/conf/ConfigurableSectionInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.sections.conf; 19 | 20 | import org.drftpd.master.sections.SectionInterface; 21 | 22 | /** 23 | * @author djb61 24 | * @version $Id$ 25 | */ 26 | public interface ConfigurableSectionInterface extends SectionInterface { 27 | 28 | void createSectionDir(); 29 | } 30 | -------------------------------------------------------------------------------- /src/plugins/request/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-request-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-sitebot-master 27 | ${project.version} 28 | provided 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/plugins/traffic/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-traffic-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-sitebot-master 27 | ${project.version} 28 | provided 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/plugins/nukefilter/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-nukefilter-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-sitebot-master 27 | ${project.version} 28 | provided 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/plugins/sitebot/src/main/java/org/drftpd/master/sitebot/NullOutputWriter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.sitebot; 19 | 20 | /** 21 | * @author djb61 22 | * @version $Id$ 23 | */ 24 | public class NullOutputWriter extends OutputWriter { 25 | 26 | @Override 27 | public void sendMessage(String message) { 28 | // Do nothing, we just want to ignore the message 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/plugins/speedtest/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-speedtest-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-sitebot-master 27 | ${project.version} 28 | provided 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /docs/log4j2-levels.txt: -------------------------------------------------------------------------------- 1 | # These log levels are used in log4j2-*.xml, under: 2 | 3 | Log Level 4 | Defines the minimum set of levels recognized by the system, that is OFF, FATAL, ERROR, WARN, INFODEBUG and ALL. 5 | 6 | This is the available log settings in config folder. Just change "Root level=" to one of the following settings. 7 | 8 | ALL 9 | The ALL has the lowest possible rank and is intended to turn on all logging. 10 | 11 | TRACE 12 | The TRACE level has been recently introduced in version 1.2 and adds more information to debug level logs. 13 | 14 | DEBUG 15 | The DEBUG Level designates fine-grained informational events that are most useful to debug an application. 16 | 17 | INFO 18 | The INFO level designates informational messages that highlight the progress of the application at coarse-grained level. 19 | 20 | WARN 21 | The WARN level designates potentially harmful situations. 22 | 23 | ERROR 24 | The ERROR level designates error events that might still allow the application to continue running. 25 | 26 | FATAL 27 | The FATAL level designates very severe error events that will presumably lead the application to abort. 28 | 29 | OFF 30 | The OFF has the highest possible rank and is intended to turn off logging. 31 | -------------------------------------------------------------------------------- /src/plugins/autofreespace/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-autofreespace-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-sitebot-master 27 | ${project.version} 28 | provided 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/plugins/sitebot/src/main/java/org/drftpd/master/sitebot/ListenerInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.sitebot; 19 | 20 | /** 21 | * @author cyber1331 22 | * @version $Id: ListenerInterface.java 2070 2010-09-18 00:15:11Z cyber1331 $ 23 | */ 24 | public interface ListenerInterface { 25 | 26 | void handleInput(String bot, String channel, String sender, String hostname, String message); 27 | } 28 | -------------------------------------------------------------------------------- /src/plugins/mediainfo/mediainfo-slave/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-mediainfo 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-mediainfo-slave 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-slave 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-mediainfo-common 27 | ${project.version} 28 | provided 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/plugins/speedtest-net/speedtest-net-master/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-speedtest-net 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-speedtestnet-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-speedtestnet-common 27 | ${project.version} 28 | provided 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/network/Checksum.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.network; 19 | 20 | /** 21 | * @author mog 22 | * @version $Id$ 23 | */ 24 | public class Checksum { 25 | public static String formatChecksum(long checkSum) { 26 | String checksumString = Long.toHexString(checkSum); 27 | 28 | return "00000000".substring(0, 8 - checksumString.length()) + checksumString; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/core/master/src/main/resources/master/config/themes/irc/core.theme.default: -------------------------------------------------------------------------------- 1 | addslave=${color}15${bold}${slave}${coloroff} came online with ${bold}${diskfree}${bold}/${disktotal} free. 2 | delslave=${color}15${bold}${slave}${coloroff} went offline: ${message}. 3 | invite.failed=${color}15${bold}INVITE${bold}${coloroff}: ${bold}${user}${bold}/${group} failed to invite themselves as ${bold}${nick}${bold}. 4 | invite.success=${color}15${bold}INVITE${bold}${coloroff}: ${bold}${user}${bold}/${group} invited himself as ${bold}${nick}${bold}. 5 | mkdir=${color}15${bold}NEW${bold}${coloroff} in ${color}${sectioncolor}${bold}${section}${bold}${coloroff}: -> ${bold}${path}${bold} by ${bold}${user}${bold}${color}14${bold}/${bold}${coloroff}${group}. 6 | msgmaster=${color}15${bold}MASTERSTATUS${coloroff} ${message}. 7 | msgslave=${color}15${bold}${slave}${coloroff} ${message}. 8 | rmdir=${color}15${bold}DELDIR${bold}${coloroff} in ${color}${sectioncolor}${bold}${section}${bold}${coloroff}: -> ${bold}${path}${bold} was deleted by ${bold}${user}${bold}${color}14${bold}/${bold}${coloroff}${group}. 9 | wipe=${color}15${bold}WIPE${bold}${coloroff} in ${color}${sectioncolor}${bold}${section}${bold}${coloroff}: -> ${bold}${path}${bold} was wiped by ${bold}${user}${bold}${color}14${bold}/${bold}${coloroff}${group}. 10 | -------------------------------------------------------------------------------- /src/plugins/request/src/main/resources/master/config/commands/ftp/request.conf: -------------------------------------------------------------------------------- 1 | SITE REQDEL { 2 | plugin org.drftpd.request.master 3 | class Request 4 | method doSITE_REQDELETE 5 | perms =request =siteop 6 | help Deletes a request. 7 | help.specific ${command} 8 | # You can only delete your own without deleteOthers. 9 | request.deleteOthers =siteop 10 | } 11 | 12 | SITE REQFILLED { 13 | plugin org.drftpd.request.master 14 | class Request 15 | method doSITE_REQFILLED 16 | perms * 17 | help Fill a request. 18 | help.specific ${command} 19 | } 20 | 21 | SITE REQUEST { 22 | plugin org.drftpd.request.master 23 | class Request 24 | method doSITE_REQUEST 25 | perms =request =siteop 26 | help Add a request. 27 | help.specific ${command} 28 | # You can only delete your own without deleteOthers. 29 | request.deleteOthers =siteop 30 | } 31 | 32 | SITE REQUESTS { 33 | plugin org.drftpd.request.master 34 | class Request 35 | method doSITE_REQUESTS 36 | perms * 37 | help List unfilled requests. 38 | help.specific ${command} 39 | } 40 | 41 | SITE FIXREQUESTS { 42 | plugin org.drftpd.request.master 43 | class Request 44 | method doSITE_FIXREQUESTS 45 | perms =siteop 46 | help Tries to fix requests dir with the actual requests 47 | help.specific ${command} 48 | } 49 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/commands/list/AddListElementsInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.commands.list; 19 | 20 | import org.drftpd.master.vfs.DirectoryHandle; 21 | 22 | /** 23 | * @author djb61 24 | * @version $Id$ 25 | */ 26 | public interface AddListElementsInterface { 27 | 28 | ListElementsContainer addElements(DirectoryHandle dir, ListElementsContainer container); 29 | 30 | void initialize(); 31 | 32 | void unload(); 33 | } 34 | -------------------------------------------------------------------------------- /src/plugins/request/src/main/resources/master/config/themes/irc/request.announcer.theme.default: -------------------------------------------------------------------------------- 1 | ## Modify this area to change appearance of iRC site channel announcements for new request dir 2 | ## This announce is triggered by issuing the 'site request name.of.release' command 3 | request=${color}15${bold}REQUEST${bold}${coloroff}: ${bold}${requestname}${bold} by ${bold}${owner}${bold}${color}14${bold}/${bold}${coloroff}${ownerGroup}. 4 | 5 | ## Modify this area to change appearance of iRC site channel announcements for filling requests 6 | ## This announce is triggered by issuing the 'site reqfilled name.of.release' command 7 | reqfilled=${color}15${bold}FILLED${bold}${coloroff}: ${bold}${issuer}${bold}${color}14${bold}/${bold}${coloroff}${issuerGroup} filled ${bold}${requestname}${bold} created by ${bold}${owner}${bold}${color}14${bold}/${bold}${coloroff}${ownerGroup}. 8 | 9 | ## Modify this area to change appearance of iRC site channel announcements for deleting requests 10 | ## This announce is triggered by issuing the 'site reqdel name.of.release' command 11 | reqdel=${color}15${bold}REQDEL${bold}${coloroff}: ${bold}${issuer}${bold}${color}14${bold}/${bold}${coloroff}${issuerGroup} deleted ${bold}${requestname}${bold} created by ${bold}${owner}${bold}${color}14${bold}/${bold}${coloroff}${ownerGroup}. 12 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/commands/nuke/NukeException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.commands.nuke; 19 | 20 | /** 21 | * @author scitz0 22 | * @version $Id$ 23 | */ 24 | @SuppressWarnings("serial") 25 | public class NukeException extends Exception { 26 | public NukeException(String message) { 27 | super(message); 28 | } 29 | 30 | public NukeException(String message, Throwable cause) { 31 | super(message, cause); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/vfs/LinkHandleInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.vfs; 19 | 20 | import org.drftpd.common.vfs.InodeHandleInterface; 21 | 22 | import java.io.FileNotFoundException; 23 | 24 | /** 25 | * @author zubov 26 | * @version $Id$ 27 | */ 28 | public interface LinkHandleInterface extends InodeHandleInterface { 29 | DirectoryHandle getTargetDirectoryUnchecked() throws FileNotFoundException, 30 | ObjectNotValidException; 31 | } 32 | -------------------------------------------------------------------------------- /src/plugins/statistics/src/main/resources/master/config/themes/irc/statistics.theme.default: -------------------------------------------------------------------------------- 1 | alup.header= 2 | alup=[${pos,2}] ${user,-12} ${tagline,-24} ${upfiles,5} ${upbytes,11} ${uprate,8} 3 | alup.footer= 4 | 5 | aldn.header= 6 | aldn=[${pos,2}] ${user,-12} ${tagline,-24} ${dnfiles,5} ${dnbytes,11} ${dnrate,8} 7 | aldn.footer= 8 | 9 | monthup.header= 10 | monthup=[${pos,2}] ${user,-12} ${tagline,-24} ${upfilesmonth,5} ${upbytesmonth,11} ${upratemonth,8} 11 | monthup.footer= 12 | 13 | monthdn.header= 14 | monthdn=[${pos,2}] ${user,-12} ${tagline,-24} ${dnfilesmonth,5} ${dnbytesmonth,11} ${dnratemonth,8} 15 | monthdn.footer= 16 | 17 | wkup.header= 18 | wkup=[${pos,2}] ${user,-12} ${tagline,-24} ${upfilesweek,5} ${upbytesweek,11} ${uprateweek,8} 19 | wkup.footer= 20 | 21 | wkdn.header= 22 | wkdn=[${pos,2}] ${user,-12} ${tagline,-24} ${dnfilesweek,5} ${dnbytesweek,11} ${dnrateweek,8} 23 | wkdn.footer= 24 | 25 | dayup.header= 26 | dayup=[${pos,2}] ${user,-12} ${tagline,-24} ${upfilesday,5} ${upbytesday,11} ${uprateday,8} 27 | dayup.footer= 28 | 29 | daydn.header= 30 | daydn=[${pos,2}] ${user,-12} ${tagline,-24} ${dnfilesday,5} ${dnbytesday,11} ${dnrateday,8} 31 | daydn.footer= 32 | 33 | morestats.grpstats=[${pos,2}] ${grp,-12} ${files,-24} ${megs,9} 34 | 35 | morestats.trafficstats=${stat} ${average} ${megs} ${files} -------------------------------------------------------------------------------- /src/plugins/dupecheck/src/main/java/org/drftpd/dupecheck/master/metadata/DupeCheckFileData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.dupecheck.master.metadata; 19 | 20 | import org.drftpd.common.dynamicdata.Key; 21 | 22 | import java.io.Serializable; 23 | 24 | /** 25 | * @author CyBeR 26 | * @version $id$ 27 | */ 28 | @SuppressWarnings("serial") 29 | public class DupeCheckFileData implements Serializable { 30 | 31 | public static final Key DUPE = new Key<>(DupeCheckFileData.class, "dupe"); 32 | 33 | } -------------------------------------------------------------------------------- /src/plugins/statistics/src/main/java/org/drftpd/statistics/master/metadata/StatsUserData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.statistics.master.metadata; 19 | 20 | import org.drftpd.common.dynamicdata.Key; 21 | 22 | import java.io.Serializable; 23 | 24 | /** 25 | * @author scitz0 26 | * @version $id$ 27 | */ 28 | @SuppressWarnings("serial") 29 | public class StatsUserData implements Serializable { 30 | 31 | public static final Key LOGINS = new Key<>(StatsUserData.class, "logins"); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/core/common/src/main/java/org/drftpd/common/io/PermissionDeniedException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.common.io; 19 | 20 | import java.io.IOException; 21 | 22 | /** 23 | * @author mog 24 | * @version $Id$ 25 | */ 26 | @SuppressWarnings("serial") 27 | public class PermissionDeniedException extends IOException { 28 | public PermissionDeniedException() { 29 | super(); 30 | } 31 | 32 | public PermissionDeniedException(String message) { 33 | super(message); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/permissions/PathPermission.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.permissions; 19 | 20 | import org.drftpd.master.vfs.InodeHandle; 21 | 22 | import java.util.Collection; 23 | 24 | /** 25 | * @author mog 26 | * @version $Id$ 27 | */ 28 | public abstract class PathPermission extends Permission { 29 | public PathPermission(Collection users) { 30 | super(users); 31 | } 32 | 33 | public abstract boolean checkPath(InodeHandle inode); 34 | } 35 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/event/UserEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.event; 19 | 20 | import org.drftpd.master.usermanager.User; 21 | 22 | /** 23 | * @author mog 24 | * @version $Id$ 25 | */ 26 | public class UserEvent extends Event { 27 | protected User _user; 28 | 29 | public UserEvent(User user, String command, long time) { 30 | super(command, time); 31 | _user = user; 32 | } 33 | 34 | public User getUser() { 35 | return _user; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/event/GroupEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.event; 19 | 20 | import org.drftpd.master.usermanager.Group; 21 | 22 | /** 23 | * @author mikevg 24 | * @version $Id$ 25 | */ 26 | public class GroupEvent extends Event { 27 | protected Group _group; 28 | 29 | public GroupEvent(Group group, String command, long time) { 30 | super(command, time); 31 | _group = group; 32 | } 33 | 34 | public Group getGroup() { 35 | return _group; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/core/common/src/main/java/org/drftpd/common/exceptions/RemoteIOException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.common.exceptions; 19 | 20 | import java.io.IOException; 21 | 22 | /** 23 | * @author zubov 24 | * @version $Id$ 25 | */ 26 | @SuppressWarnings("serial") 27 | public class RemoteIOException extends Exception { 28 | public RemoteIOException(IOException cause) { 29 | super(cause); 30 | } 31 | 32 | @Override 33 | public IOException getCause() { 34 | return (IOException) super.getCause(); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/event/FtpListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.event; 19 | 20 | import org.drftpd.master.GlobalContext; 21 | 22 | /** 23 | * @author mog 24 | * @version $Id$ 25 | */ 26 | public abstract class FtpListener { 27 | public static GlobalContext getGlobalContext() { 28 | return GlobalContext.getGlobalContext(); 29 | } 30 | 31 | public abstract void actionPerformed(Event event); 32 | 33 | public void unload() { 34 | } 35 | 36 | public void init() { 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/exceptions/NoAvailableSlaveException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.exceptions; 19 | 20 | 21 | /** 22 | * @author mog 23 | * @version $Id$ 24 | */ 25 | public class NoAvailableSlaveException extends Exception { 26 | /** 27 | * 28 | */ 29 | private static final long serialVersionUID = -3761274351911054556L; 30 | 31 | public NoAvailableSlaveException(String message) { 32 | super(message); 33 | } 34 | 35 | public NoAvailableSlaveException() { 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/plugins/mediainfo/mediainfo-master/src/main/resources/master/config/themes/ftp/mediainfo.list.theme.default: -------------------------------------------------------------------------------- 1 | #MediaInfo bar format 2 | mkvbar.video=[VIDEO]-${v_Format}_${v_Width}x${v_Height}@${v_Bit rate}_${v_Frame rate}_${v_Display aspect ratio}_${v_Format profile}_${v_Duration}-[VIDEO] 3 | mkvbar.audio=[AUDIO]-${a_Language}_${a_Format}@${a_Bit rate}_${a_Bit rate mode}_${a_Sampling rate}_${a_Channel(s)}-[AUDIO] 4 | mkvbar.sub=[SUB]-${s_Languages}-[SUB] 5 | 6 | m2tsbar.video=[VIDEO]-${v_Format}_${v_Width}x${v_Height}@${v_Bit rate}_${v_Frame rate}_${v_Display aspect ratio}_${v_Format profile}_${v_Duration}-[VIDEO] 7 | m2tsbar.audio=[AUDIO]-${a_Language}_${a_Format}@${a_Bit rate}_${a_Bit rate mode}_${a_Sampling rate}_${a_Channel(s)}-[AUDIO] 8 | m2tsbar.sub=[SUB]-${s_Languages}-[SUB] 9 | 10 | mp4bar.video=[VIDEO]-${v_Format}_${v_Width}x${v_Height}@${v_Bit rate}_${v_Frame rate}_${v_Display aspect ratio}_${v_Format profile}_${v_Duration}-[VIDEO] 11 | mp4bar.audio=[AUDIO]-${a_Language}_${a_Format}@${a_Bit rate}_${a_Bit rate mode}_${a_Sampling rate}_${a_Channel(s)}-[AUDIO] 12 | mp4bar.sub=[SUB]-${s_Languages}-[SUB] 13 | 14 | avibar.video=[VIDEO]-${v_Codec ID/Hint}_${v_Width}x${v_Height}@${v_Bit rate}_${v_Frame rate}_${v_Display aspect ratio}_${v_Duration}-[VIDEO] 15 | avibar.audio=[AUDIO]-${a_Codec ID/Hint}@${a_Bit rate}_${a_Bit rate mode}_${a_Sampling rate}_${a_Channel(s)}-[AUDIO] -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/commands/usermanagement/expireduser/metadata/ExpiredUserData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.commands.usermanagement.expireduser.metadata; 19 | 20 | import org.drftpd.common.dynamicdata.Key; 21 | 22 | import java.io.Serializable; 23 | import java.util.Date; 24 | 25 | /** 26 | * @author CyBeR 27 | */ 28 | @SuppressWarnings("serial") 29 | public class ExpiredUserData implements Serializable { 30 | 31 | public static final Key EXPIRES = new Key<>(ExpiredUserData.class, "expires"); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/plugins/request/src/main/resources/master/config/commands/irc/request.conf: -------------------------------------------------------------------------------- 1 | reqdel { 2 | plugin org.drftpd.request.master 3 | class Request 4 | method doSITE_REQDELETE 5 | perms =request =siteop 6 | help Deletes a request. 7 | help.specific ${command} 8 | input all 9 | output source 10 | # You can only delete your own without deleteOthers. 11 | request.deleteOthers =siteop 12 | } 13 | 14 | reqfilled { 15 | plugin org.drftpd.request.master 16 | class Request 17 | method doSITE_REQFILLED 18 | perms * 19 | help Fill a request. 20 | help.specific ${command} 21 | input all 22 | output source 23 | } 24 | 25 | request { 26 | plugin org.drftpd.request.master 27 | class Request 28 | method doSITE_REQUEST 29 | perms =request =siteop 30 | help Add a request. 31 | help.specific ${command} 32 | input all 33 | output source 34 | # You can only delete your own without deleteOthers. 35 | request.deleteOthers =siteop 36 | } 37 | 38 | requests { 39 | plugin org.drftpd.request.master 40 | class Request 41 | method doSITE_REQUESTS 42 | perms * 43 | help List current requests. 44 | input all 45 | output source 46 | } 47 | 48 | fixrequests { 49 | plugin org.drftpd.request.master 50 | class Request 51 | method doSITE_FIXREQUESTS 52 | perms =siteop 53 | help Tries to fix requests dir with the actual requests 54 | input all 55 | output source 56 | } 57 | -------------------------------------------------------------------------------- /src/core/common/src/main/java/org/drftpd/common/extensibility/CommandHook.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.common.extensibility; 19 | 20 | import java.lang.annotation.ElementType; 21 | import java.lang.annotation.Retention; 22 | import java.lang.annotation.RetentionPolicy; 23 | import java.lang.annotation.Target; 24 | 25 | 26 | @Retention(RetentionPolicy.RUNTIME) 27 | @Target(ElementType.METHOD) 28 | public @interface CommandHook { 29 | String[] commands(); 30 | 31 | int priority() default 1; 32 | 33 | HookType type() default HookType.POST; 34 | } 35 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/vfs/FileHandleInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.vfs; 19 | 20 | import org.drftpd.common.vfs.InodeHandleInterface; 21 | 22 | import java.io.FileNotFoundException; 23 | 24 | /** 25 | * Lowest level of FileHandles.
26 | * This class provides more flexibility and organization to the VFS. 27 | * 28 | * @author zubov 29 | * @version $Id$ 30 | */ 31 | public interface FileHandleInterface extends InodeHandleInterface { 32 | 33 | boolean isAvailable() throws FileNotFoundException; 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/core/slave/src/main/java/org/drftpd/slave/diskselection/DiskSelectionInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.slave.diskselection; 19 | 20 | 21 | import org.drftpd.slave.Slave; 22 | import org.drftpd.slave.vfs.Root; 23 | 24 | public abstract class DiskSelectionInterface { 25 | private final Slave _slave; 26 | 27 | public DiskSelectionInterface(Slave slave) { 28 | _slave = slave; 29 | } 30 | 31 | public Slave getSlaveObject() { 32 | return _slave; 33 | } 34 | 35 | public abstract Root getBestRoot(String dir); 36 | } 37 | -------------------------------------------------------------------------------- /src/plugins/archive/src/main/resources/master/config/commands/ftp/archive.conf: -------------------------------------------------------------------------------- 1 | SITE ARCHIVE { 2 | plugin org.drftpd.archive.master.commands 3 | class ArchiveCommandHandler 4 | method doARCHIVE 5 | perms =siteop 6 | help Create a new ArchiveHandler like defined in archive.conf 7 | help.specific ${command} Directory [ArchiveType] [property1] [property2] [property...] 8 | help.specific - An example of a property is slavename.1=myslave just like in archive.conf 9 | badarchivetype=ArchiveType ${archivetypename} was unable to be initialized - ${exception} 10 | incompatible ArchiveType ${archivetypename} is incompatible with this version of DrFTPD 11 | baddir Directory ${dirname} was unable to be found 12 | badslave Unable to add ${slavename} to the slaveList 13 | loadarchive The Archive plugin must be loaded, use SITE LOADPLUGIN Archive 14 | success Started ArchiveHandler for ${archivetypename} on ${dirname} 15 | fail ${exception} 16 | } 17 | 18 | SITE LISTARCHIVETYPES { 19 | plugin org.drftpd.archive.master.commands 20 | class ArchiveCommandHandler 21 | method doLISTARCHIVETYPES 22 | perms =siteop 23 | help List the currently running ArchiveTypes. 24 | help.specific ${command} 25 | } 26 | 27 | SITE LISTARCHIVEQUEUE { 28 | plugin org.drftpd.archive.master.commands 29 | class ArchiveCommandHandler 30 | method doLISTQUEUE 31 | perms =siteop 32 | help List the currently running ArchiveTypes 33 | } -------------------------------------------------------------------------------- /src/plugins/speedtest-net/speedtest-net-slave/src/main/java/org/drftpd/speedtestnet/slave/SpeedTestAnswer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.speedtestnet.slave; 19 | 20 | public class SpeedTestAnswer { 21 | private final long _bytes; 22 | private final long _time; 23 | 24 | public SpeedTestAnswer(long bytes, long time) { 25 | _bytes = bytes; 26 | _time = time; 27 | } 28 | 29 | public long getBytes() { 30 | return _bytes; 31 | } 32 | 33 | public long getTime() { 34 | return _time; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/java/org/drftpd/zipscript/master/zip/RescanPostProcessDirInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.zipscript.master.zip; 19 | 20 | 21 | import org.drftpd.master.commands.CommandRequest; 22 | import org.drftpd.master.commands.StandardCommandManager; 23 | 24 | /** 25 | * @author djb61 26 | * @version $Id$ 27 | */ 28 | public interface RescanPostProcessDirInterface { 29 | 30 | void initialize(StandardCommandManager cManager); 31 | 32 | void postProcessDir(CommandRequest workingDirReq, boolean quiet); 33 | } 34 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/vfs/event/VirtualFileSystemInodeCreatedEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.vfs.event; 19 | 20 | import org.drftpd.master.vfs.VirtualFileSystemInode; 21 | 22 | /** 23 | * This event is fired whenever an inode is created. 24 | * 25 | * @author fr0w 26 | * @version $Id$ 27 | */ 28 | public class VirtualFileSystemInodeCreatedEvent extends VirtualFileSystemEvent { 29 | 30 | public VirtualFileSystemInodeCreatedEvent(VirtualFileSystemInode inode, String path) { 31 | super(inode, path); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/vfs/event/VirtualFileSystemInodeDeletedEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.vfs.event; 19 | 20 | import org.drftpd.master.vfs.VirtualFileSystemInode; 21 | 22 | /** 23 | * This event is fired whenever an inode is deleted. 24 | * 25 | * @author fr0w 26 | * @version $Id$ 27 | */ 28 | public class VirtualFileSystemInodeDeletedEvent extends VirtualFileSystemEvent { 29 | 30 | public VirtualFileSystemInodeDeletedEvent(VirtualFileSystemInode inode, String path) { 31 | super(inode, path); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/plugins/archive/src/main/resources/master/config/commands/irc/archive.conf: -------------------------------------------------------------------------------- 1 | archive { 2 | plugin org.drftpd.archive.master.commands 3 | class ArchiveCommandHandler 4 | method doARCHIVE 5 | perms =siteop 6 | help Create a new ArchiveHandler like defined in archive.conf 7 | help.specific ${command} Directory [ArchiveType] [property1] [property2] [property...] 8 | help.specific - An example of a property is slavename.1=myslave just like in archive.conf 9 | badarchivetype=ArchiveType ${archivetypename} was unable to be initialized - ${exception} 10 | incompatible ArchiveType ${archivetypename} is incompatible with this version of DrFTPD 11 | baddir Directory ${dirname} was unable to be found 12 | badslave Unable to add ${slavename} to the slaveList 13 | success Started ArchiveHandler for ${archivetypename} on ${dirname} 14 | fail ${exception} 15 | input all 16 | output source 17 | } 18 | 19 | listarchivetypes { 20 | plugin org.drftpd.archive.master.commands 21 | class ArchiveCommandHandler 22 | method doLISTARCHIVETYPES 23 | perms =siteop 24 | help List the currently running ArchiveTypes. 25 | help.specific ${command} 26 | input all 27 | output source 28 | } 29 | 30 | listarchivequeue { 31 | plugin org.drftpd.archive.master.commands 32 | class ArchiveCommandHandler 33 | method doLISTQUEUE 34 | perms =siteop 35 | help List the currently running ArchiveTypes 36 | input all 37 | output source 38 | } -------------------------------------------------------------------------------- /src/plugins/sitebot/src/main/java/org/drftpd/master/sitebot/IrcException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.sitebot; 19 | 20 | /** 21 | * @author Modified from PircBot by Paul James Mutton, http://www.jibble.org/ 22 | * @author djb61 23 | * @version $Id$ 24 | */ 25 | @SuppressWarnings("serial") 26 | public class IrcException extends Exception { 27 | 28 | /** 29 | * Constructs a new IrcException. 30 | * 31 | * @param e The error message to report. 32 | */ 33 | public IrcException(String e) { 34 | super(e); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/core/slave/src/main/java/org/drftpd/slave/exceptions/FileExistsException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.slave.exceptions; 19 | 20 | import java.io.IOException; 21 | 22 | /** 23 | * @author mog 24 | * @version $Id$ 25 | */ 26 | public class FileExistsException extends IOException { 27 | /** 28 | * 29 | */ 30 | private static final long serialVersionUID = 7603086353912792453L; 31 | 32 | public FileExistsException() { 33 | super(); 34 | } 35 | 36 | public FileExistsException(String arg0) { 37 | super(arg0); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/core/common/src/main/java/org/drftpd/common/network/AsyncCommand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.common.network; 19 | 20 | 21 | /** 22 | * @author jbarrett 23 | * @author zubov 24 | * @version $Id$ 25 | */ 26 | @SuppressWarnings("serial") 27 | public class AsyncCommand extends AsyncCommandArgument { 28 | public AsyncCommand(String index, String name) { 29 | super(index, name, ""); 30 | } 31 | 32 | public String toString() { 33 | return getClass().getName() + "[index=" + getIndex() + ",name=" 34 | + getName() + "]"; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/indexation/analysis/AlphanumericalAnalyzer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.indexation.analysis; 19 | 20 | import org.apache.lucene.analysis.Analyzer; 21 | import org.apache.lucene.analysis.TokenStream; 22 | 23 | import java.io.Reader; 24 | 25 | /** 26 | * @author fr0w 27 | * @version $Id$ 28 | */ 29 | public class AlphanumericalAnalyzer extends Analyzer { 30 | 31 | @Override 32 | public TokenStream tokenStream(String fieldName, Reader input) { 33 | return new AlphanumericalTokenizer(input); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/exceptions/ObjectExistsException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.exceptions; 19 | 20 | import java.io.IOException; 21 | 22 | /** 23 | * @author mog 24 | * @version $Id$ 25 | */ 26 | public class ObjectExistsException extends IOException { 27 | /** 28 | * 29 | */ 30 | private static final long serialVersionUID = 5121347344759544660L; 31 | 32 | public ObjectExistsException() { 33 | super(); 34 | } 35 | 36 | public ObjectExistsException(String arg0) { 37 | super(arg0); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /tools/upgrade/README.md: -------------------------------------------------------------------------------- 1 | # drftpd v3 upgrade to v4 2 | Python script to upgrade v3 (JSON) style user files to v4 (JSON) style user files. 3 | Also produces a groups.properties file to be run against a java tool (WIP) 4 | 5 | # Arguments 6 | * -d, --debug Enable debug output [default: False] 7 | * -u, --userdata-dir TEXT The drftpd v3 json userdata base dir 8 | [default: userdata; required] 9 | 10 | * -e, --exec Actually execute space actions [default: 11 | False] 12 | 13 | * -g, --group-output-file TEXT This file contain the input for creating all 14 | missing groups for v4 [default: 15 | groups.properties] 16 | 17 | * --help Show this message and exit. 18 | 19 | # Typical use: 20 | * Copy this directory's contents to runtime/master/ 21 | * Download file to your base dir (where userdata exists) 22 | * run in dry-run mode: python3 migrate-v3-v4.py (resolve any missing libraries) 23 | * run in execute mode: python3 migrate-v3-v4.py -e (generates a groups.properties) 24 | * Make executable: chmod 755 *.sh 25 | * compile java: `./compile.sh` for Linux or `compile.bat` for Windows 26 | * Create groups: `./run.sh` for for Linux or `run.bat` for Windows (Creates drftpd json group objects based on groups.properties) 27 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/exceptions/IllegalFileNameException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.exceptions; 19 | 20 | import java.io.IOException; 21 | 22 | /** 23 | * @author mog 24 | * @version $Id$ 25 | */ 26 | public class IllegalFileNameException extends IOException { 27 | /** 28 | * 29 | */ 30 | private static final long serialVersionUID = 6757210098358700968L; 31 | 32 | public IllegalFileNameException() { 33 | super(); 34 | } 35 | 36 | public IllegalFileNameException(String s) { 37 | super(s); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/vfs/event/VirtualFileSystemInodeRefreshEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.vfs.event; 19 | 20 | import org.drftpd.master.vfs.VirtualFileSystemInode; 21 | 22 | /** 23 | * This event is fired whenever an inode's data should be refreshed by listeners. 24 | * 25 | * @author djb61 26 | * @version $Id$ 27 | */ 28 | public class VirtualFileSystemInodeRefreshEvent extends VirtualFileSystemEvent { 29 | 30 | public VirtualFileSystemInodeRefreshEvent(VirtualFileSystemInode inode, String path) { 31 | super(inode, path); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/core/slave/src/main/java/org/drftpd/slave/network/AsyncResponseChecksum.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.slave.network; 19 | 20 | import org.drftpd.common.network.AsyncResponse; 21 | 22 | /** 23 | * @author zubov 24 | * @version $Id$ 25 | */ 26 | @SuppressWarnings("serial") 27 | public class AsyncResponseChecksum extends AsyncResponse { 28 | long _checksum; 29 | 30 | public AsyncResponseChecksum(String index, long checksum) { 31 | super(index); 32 | _checksum = checksum; 33 | } 34 | 35 | public long getChecksum() { 36 | return _checksum; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/plugins/jobs/src/main/java/org/drftpd/jobs/master/SlaveException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.jobs.master; 19 | 20 | /** 21 | * @author zubov 22 | * @version $Id$ 23 | */ 24 | @SuppressWarnings("serial") 25 | public class SlaveException extends Exception { 26 | public SlaveException() { 27 | super(); 28 | } 29 | 30 | public SlaveException(Exception e) { 31 | super(e); 32 | } 33 | 34 | public SlaveException(String s) { 35 | super(s); 36 | } 37 | 38 | public SlaveException(Throwable throwable) { 39 | super(throwable); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-master/src/main/java/org/drftpd/zipscript/master/sfv/list/ZipscriptListStatusBarInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.zipscript.master.sfv.list; 19 | 20 | import org.drftpd.master.commands.list.ListElementsContainer; 21 | import org.drftpd.master.vfs.DirectoryHandle; 22 | 23 | import java.util.ArrayList; 24 | 25 | /** 26 | * @author djb61 27 | * @version $Id$ 28 | */ 29 | public interface ZipscriptListStatusBarInterface { 30 | 31 | ArrayList getStatusBarEntry(DirectoryHandle dir, ListElementsContainer container) throws NoEntryAvailableException; 32 | } 33 | -------------------------------------------------------------------------------- /src/plugins/zipscript/zipscript-slave/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-zipscript 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-zipscript-slave 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-slave 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-zipscript-common 27 | ${project.version} 28 | provided 29 | 30 | 31 | org.jflac 32 | jflac-codec 33 | 1.5.2 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/plugins/sitebot/src/main/java/org/drftpd/master/sitebot/NickAlreadyInUseException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.sitebot; 19 | 20 | /** 21 | * @author Modified from PircBot by Paul James Mutton, http://www.jibble.org/ 22 | * @author djb61 23 | * @version $Id$ 24 | */ 25 | @SuppressWarnings("serial") 26 | public class NickAlreadyInUseException extends IrcException { 27 | 28 | /** 29 | * Constructs a new IrcException. 30 | * 31 | * @param e The error message to report. 32 | */ 33 | public NickAlreadyInUseException(String e) { 34 | super(e); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/slavemanagement/DummyRemoteSlave.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.slavemanagement; 19 | 20 | import org.drftpd.master.slavemanagement.RemoteSlave; 21 | 22 | /** 23 | * @author zubov 24 | * @version $Id$ 25 | */ 26 | public class DummyRemoteSlave extends RemoteSlave { 27 | public DummyRemoteSlave(String name) { 28 | super(name); 29 | } 30 | 31 | public int getPort() { 32 | return 10; 33 | } 34 | 35 | public void fakeConnect() { 36 | _errors = 0; 37 | _lastNetworkError = System.currentTimeMillis(); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/core/slave/src/main/java/org/drftpd/slave/network/AsyncResponseSiteBotMessage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.slave.network; 19 | 20 | 21 | import org.drftpd.common.network.AsyncResponse; 22 | 23 | /** 24 | * @author norox 25 | * @version $Id$ 26 | */ 27 | @SuppressWarnings("serial") 28 | public class AsyncResponseSiteBotMessage extends AsyncResponse { 29 | String _message; 30 | 31 | public AsyncResponseSiteBotMessage(String message) { 32 | super("SiteBotMessage"); 33 | _message = message; 34 | } 35 | 36 | public String getMessage() { 37 | return _message; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/plugins/autofreespace/src/main/resources/master/config/plugins/autofreespace.conf.dist: -------------------------------------------------------------------------------- 1 | ############################# 2 | ## Auto FreeSpace Settings ## 3 | #################################################################################################### 4 | 5 | # Smallest number of time in between cycles. 6 | # Times are represented in minutes. 7 | # 8 | # 1440 = 1 day 9 | # 10080 = 1 week 10 | # 43200 = 1 month 11 | # 12 | # Default: [1440] 13 | cycleTime=1440 14 | 15 | # Do not delete files with this following names (regex). 16 | #excluded.file.1=.*speedtest.* 17 | 18 | # Exclude these slaves from autowipe (space separated). 19 | #excluded.slaves=SLAVE1 20 | 21 | # Only announce, no delete. 22 | # Default: [true] 23 | announce.only=true 24 | 25 | # Max iterations for any single mode run per slave per cycle 26 | # Default: [5] 27 | max.iterations=5 28 | 29 | # On which mode should autofreespace work. 30 | # Possible options: disabled, date, space 31 | # disabled: Do nothing (plugin disabled) 32 | # date: Delete files based on wipeAfter per section 33 | # space: Delete files based on keepFree 34 | # Default: [disabled] 35 | mode=disabled 36 | 37 | # AutoFreeSpace will try to keep each slave above this number (Only used if mode = space). 38 | # Default: [100GB] 39 | keepFree=100GB 40 | 41 | # Do not delete releases younger than X minutes (wipeAfter only used if mode = date). 42 | #1.section=SECTION1 43 | #1.wipeAfter=43200 44 | 45 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/vfs/ListUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.vfs; 19 | 20 | /** 21 | * @author mog 22 | * @version $Id$ 23 | */ 24 | public class ListUtils { 25 | 26 | private ListUtils() { 27 | } 28 | 29 | public static boolean isLegalFileName(String fileName) { 30 | if (fileName == null) { 31 | throw new RuntimeException(); 32 | } 33 | 34 | return (fileName.indexOf('/') == -1) && (fileName.indexOf('\\') == -1) && (fileName.indexOf('*') == -1) && 35 | !fileName.equals(".") && !fileName.equals(".."); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/plugins/speedtest-net/speedtest-net-slave/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-speedtest-net 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-speedtestnet-slave 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-slave 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-speedtestnet-common 27 | ${project.version} 28 | provided 29 | 30 | 31 | org.apache.commons 32 | commons-lang3 33 | 3.14.0 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/event/MasterEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.event; 19 | 20 | /** 21 | * @author surface 22 | */ 23 | public class MasterEvent extends MessageEvent { 24 | 25 | /** 26 | * @param command 27 | */ 28 | public MasterEvent(String command, String message) { 29 | this(command, message, System.currentTimeMillis()); 30 | } 31 | 32 | /** 33 | * @param command 34 | * @param time 35 | */ 36 | public MasterEvent(String command, String message, 37 | long time) { 38 | super(command, message, time); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/plugins/archive/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-archive-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-jobs-master 27 | ${project.version} 28 | provided 29 | 30 | 31 | org.drftpd 32 | drftpd-sitebot-master 33 | ${project.version} 34 | provided 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/plugins/find/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-find-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-jobs-master 27 | ${project.version} 28 | provided 29 | 30 | 31 | org.drftpd 32 | drftpd-zipscript-master 33 | ${project.version} 34 | provided 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/plugins/jobs/src/main/java/org/drftpd/jobs/master/JobIndexComparator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.jobs.master; 19 | 20 | import java.io.Serializable; 21 | import java.util.Comparator; 22 | 23 | /** 24 | * @author zubov 25 | * @version $Id$ 26 | */ 27 | @SuppressWarnings("serial") 28 | public class JobIndexComparator implements Comparator, Serializable { 29 | public int compare(Job arg0, Job arg1) { 30 | long diff = arg0.getIndex() - arg1.getIndex(); 31 | if (diff < 0) { 32 | return -1; 33 | } else if (diff > 0) { 34 | return 1; 35 | } 36 | return 0; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/plugins/jobs/src/main/java/org/drftpd/jobs/master/SourceSlaveException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.jobs.master; 19 | 20 | /** 21 | * @author zubov 22 | * @version $Id$ 23 | */ 24 | @SuppressWarnings("serial") 25 | public class SourceSlaveException extends SlaveException { 26 | public SourceSlaveException() { 27 | super(); 28 | } 29 | 30 | public SourceSlaveException(Exception e) { 31 | super(e); 32 | } 33 | 34 | public SourceSlaveException(String s) { 35 | super(s); 36 | } 37 | 38 | public SourceSlaveException(Throwable throwable) { 39 | super(throwable); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/plugins/tvmaze/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 4.0.0 7 | 8 | org.drftpd 9 | drftpd-plugins 10 | 4.0.12-SNAPSHOT 11 | ../ 12 | 13 | 14 | drftpd-tvmaze-master 15 | jar 16 | 17 | 18 | 19 | org.drftpd 20 | drftpd-master 21 | ${project.version} 22 | provided 23 | 24 | 25 | org.drftpd 26 | drftpd-find-master 27 | ${project.version} 28 | provided 29 | 30 | 31 | org.drftpd 32 | drftpd-sitebot-master 33 | ${project.version} 34 | provided 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/core/master/src/test/java/org/drftpd/master/tests/DummyEncryptedBeanUserManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.tests; 19 | 20 | import org.drftpd.master.usermanager.encryptedjavabeans.EncryptedBeanUserManager; 21 | 22 | 23 | /** 24 | * @author mc 25 | * @version $Id$ 26 | */ 27 | public class DummyEncryptedBeanUserManager extends EncryptedBeanUserManager { 28 | public DummyEncryptedBeanUserManager(int pass_crypt) { 29 | super(); 30 | _passcrypt = pass_crypt; 31 | } 32 | 33 | // Override this to not load a config, we set the _passcrypt in the constructor 34 | protected void readPasscrypt() { 35 | } 36 | } -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/event/MessageEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.event; 19 | 20 | /** 21 | * @author mog 22 | * @version $Id$ 23 | */ 24 | public class MessageEvent extends Event { 25 | private final String message; 26 | 27 | public MessageEvent(String command, String message) { 28 | this(command, message, System.currentTimeMillis()); 29 | } 30 | 31 | public MessageEvent(String command, String message, long time) { 32 | super(command, time); 33 | this.message = message; 34 | } 35 | 36 | public String getMessage() { 37 | return this.message; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/core/slave/src/main/java/org/drftpd/slave/network/AsyncResponseTransfer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.slave.network; 19 | 20 | import org.drftpd.common.network.AsyncResponse; 21 | import org.drftpd.common.slave.ConnectInfo; 22 | 23 | /** 24 | * @author zubov 25 | * @version $Id$ 26 | */ 27 | @SuppressWarnings("serial") 28 | public class AsyncResponseTransfer extends AsyncResponse { 29 | private final ConnectInfo _ci; 30 | 31 | public AsyncResponseTransfer(String index, ConnectInfo ci) { 32 | super(index); 33 | _ci = ci; 34 | } 35 | 36 | public ConnectInfo getConnectInfo() { 37 | return _ci; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/core/master/src/main/java/org/drftpd/master/usermanager/GroupExistsException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.master.usermanager; 19 | 20 | /** 21 | * @author mikevg 22 | */ 23 | @SuppressWarnings("serial") 24 | public class GroupExistsException extends Exception { 25 | public GroupExistsException() { 26 | super(); 27 | } 28 | 29 | public GroupExistsException(String message) { 30 | super(message); 31 | } 32 | 33 | public GroupExistsException(Throwable cause) { 34 | super(cause); 35 | } 36 | 37 | public GroupExistsException(String message, Throwable cause) { 38 | super(message, cause); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/core/common/src/main/java/org/drftpd/common/dynamicdata/KeyNotFoundException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of DrFTPD, Distributed FTP Daemon. 3 | * 4 | * DrFTPD is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 2 7 | * of the License, or (at your option) any later version. 8 | * 9 | * DrFTPD is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with DrFTPD; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | package org.drftpd.common.dynamicdata; 19 | 20 | /** 21 | * @author mog 22 | * @version $Id$ 23 | */ 24 | @SuppressWarnings("serial") 25 | public class KeyNotFoundException extends Exception { 26 | public KeyNotFoundException() { 27 | super(); 28 | } 29 | 30 | public KeyNotFoundException(String arg0) { 31 | super(arg0); 32 | } 33 | 34 | public KeyNotFoundException(String arg0, Throwable arg1) { 35 | super(arg0, arg1); 36 | } 37 | 38 | public KeyNotFoundException(Throwable arg0) { 39 | super(arg0); 40 | } 41 | } 42 | --------------------------------------------------------------------------------