Skip to content
bioboy edited this page Feb 24, 2013 · 41 revisions

Coding Style:

Please read first

Package Directory Structure

ebftpd/bin               <--- scripts
ebftpd/bin/libexc/ebftpd <--- real binary
ebftpd/bin/lib           <--- packaged libs
ebftpd/bin/ebftpd        <--- wrapper script
ebftpd/data              <--- ftp-data
ebftpd/data/text         <--- templates
ebftpd/data/logs         <--- logs
ebftpd/etc               <--- conf
ebftpd/site              <--- site root

Templates:

Todo:

  • Finish implementation of glftpd's site commands
  • Make db tasks that don't require high performance run in safe mode (return error result to client)
  • Example config file containing all the available options.
  • Implement remaining user profile options: startupdir, homedir, weeklyallotment
  • Implement group profile options: slots, leechslots, allotSlots, maxAllotSlots, maxLOgins
  • Improve the syntax / description messages for site commands

Todone:

  • DONE - Improve consistency of reply messages
  • DONE -Implement tracking of all traffic inside the Control and Data classes for use in SITE TRAFFIC
  • DONE - Port site commands over to new template system and document the available variables in each template.
  • DONE - Safe config rehashing system (SITE RELOAD)
  • DONE - Text processing system
  • DONE - Make site kick interrupt threads safely (Including during io)
  • DONE - Command: SITE SHUTDOWN siteop|exit
  • DONE - Improve config parsing, currently it doesn't error on config options that don't exist.
  • DONE - Implement daemonising (forking) of ftpd into background (able to be disabled by cli option)
  • DONE - Implement cscripts
  • DONE - Implement other 'checking' scripts (pre_check / post_check / etc)

Ideas:

  • Template users
  • Retire stat_section and replace it with a more flexible section block of settings.
  • Section based traffic statistics.
  • New config option minimum_dlage <path> <seconds> <ACLs>
  • Custom logs for SITE LOGS?: custom_log <name> <path> <ACLs>
  • Minimum ulspeed: minimum_ulspeed <path> <ACLs> - could be part of section block
  • Minimum dlspeed: minimum_dlspeed <path> <ACLs> - could be part of section block
  • Compile time option to disable database caching to support database sharing across ebftpd instances
  • Config option to auto delete and/or purge users if not seen for a period of time.
  • Inbuilt configurable (variable timeframe? Not just month) quotas (via SITE CHANGE) with auto delete and/or purge.
  • Release traffic statistics. Could be stored in the same container as dupes to avoid duplication.
  • Different show_diz file based on pathmask: show_diz [rights]?

Site Commands:

Check status

Clone this wiki locally