Скрипты, превращающие фтп сервер в мегамонстра(:rofl:): http://www.ioftpd.com/scripts/ ioGui.v2.0.5: http://www.ioftpd.com/scripts/download.php?f=216 (сабж написан на Visual Basic'е, для своей работы требует 2 OCX файла, которые можно скачать
здесь)
LATEST VERSION CHANGES Beta 5.5.0
All:
-New: Fibers, ini entry under [threads]: Worker_Fibers = #.. use 2-5x the amount of worker threads you have)
-New: Executables (scripts) now have limited amount of time to run without output (first output is expected within 2minutes, second within 30minutes)
-Change: Message threads removed (unified with worker threads)
-Fix: Rehash
Beta 5.4.0
All:
- Fix: Several directory caching related bugs
- Fix: Two 1byte buffer overflows
- New: Added control for socket buffer sizes
- Change: Rehashing config updates Hosts.rules & scheduler
- Change: Internal support for unicode in most parts of code
- Change: "Neutral" default look
- Change: Number of DDE threads is now user definable - and threads work in more efficient manner
- Change: Config redesigned
- Change: Message files renamed
Ftp:
- New: SITE GROUPS
- New: SITE GINFO
- New: SITE KILL
- New: SITE SHUTDOWN (* Results to crash in most cases :) Known bug)
- New: SITE BANS
- Change: SITE WHO removed, SWHO added
- Change: Internal site commands can be chained with scripts (internal command is last in chain, and not executed, if chain is broken)
- Change: Improved error message accuracy of site commands
Telnet
- New: .LIST
- New: .CD
- New: All ftp SITE s are available as .s
- New: Execution of external commands (no '.' prefix)
Itcl:
- Fix: Several minor fixes
- New: VFS FLUSH
- Change: Optimized interpreter initialization
Beta 5.2.4-5.2.9
All:
- Fix: Broken ident/ssl
Beta 5.2.4
All:
- New: [ioFTPD] Encryption_Thread_Count
- Fix: Per client(/user) speed limits weren't accurate (during first two seconds of send/receive, user could get twice the amount of bandwidth allocated for him)
- Fix: Minor bug in ssl_accept routine (could cause connections to be cut off)
- Fix: Filesize for files between 2 & 4gigabytes was shown incorrectly (negative value)
- Change: ioFTPD uses now 2io threads per processor, when Io_Thread_Count is higher than the cpu count
- Change: Crc32 & ssl encryption was moved to encryption threads (better scalability/performance with ssl)
- Change: Minor optimizations to improve scalability under heavy load conditions
Beta 5.2.3
All:
- New: Client_inbound_bandwidth & Client_outbound_bandwidth
- New: Ident reader capped to 1kb/sec in & out (should be plenty enough)
- Fix: User inbound speedlimit (upload) wasn't working properly
- Change: Inbound_bandwidth => Global_inbound_bandwidth
- Change: Outbound_bandwidth => Global_outbound_bandwidth
Beta 5.2.0
All:
- New: Speedlimits, per user & per device
- New: change speedlimit
- New: %[limit(up_speed/dn_speed/ftp_logins/http_logins/telnet_logins)] cookie
- Fix: Scheduled tcl scripts cause ioftpd to crash
Beta 5.1.17
All:
- Fix: Error in DataCopy window message processing
- Change: Compiled using intel compiler
- Change: SITE Command executor is now "smarter":
Beta 5.1.15
All:
- Fix: Removed ugly message box
- Fix: Added several sanity checks to datacopy process (freeing memory area used by pending call, will not cause io to crash anymore)
- Change: Added dedicated threads (2) of higher priority (normal priority) for interprocess datacopying to avoid dead locking, when all worker threads are in use
Beta 5.1.13
All:
- Fix: Infinite loops caused by symbolic links, no longer cause system to crash (set max depth for cwd command to 25)
- Fix: Path resolver returned wrong path in certain (rare) circumstances
- New: iTCL "client" command
Beta 5.1.11
All:
- New: FIFO queues for disk-access
Beta 5.1.9
All:
- Fix: Infinite loop, when stopping active timer that was queueing job for client
- Change: Optimized client job managment
Beta 5.1.8
All:
- Fix: AsyncSelectCancel() was bugged (it didn't wait for timer to stop)
- Fix: Log system had severe bug (logging in io isn't simple writefile().. to minimize thread usage, it uses max 1 worker thread for logging & queues rest of items)
- Fix: Pending AcceptEx() calls failed, when worker threads was shut down
- Fix: Invalid message variables caused crash (those that didn't use $ prefix)
- Change: Optimized timers (I don't think they can be optimized any further)
- Change: Min_Worker_Threads & Max_Worker_Threads ini values were replaced with Worker_Thread_Count
Beta 5.1.7
All:
- Fix: Timers may cause dead-locks
- Fix: Socket closing was not "properly" synchronized, which caused wrong sockets to be closed
- Change: Rewrote listing routine
- Change: Optimized timers
- Change: Optimized message based connect&accept even further
- Change: Several minor optimizations & fixes not worth listing
Ftp:
- New: STAT command
- Fix: Master could not ADDIP on another master
Beta 5.1.5
All:
- New: Configuration file can be specified as parameter to executable (ioftpd.exe d:\foo\ioftpd.ini)
- Fix: TCL module did not return any value
- Fix: Erase of file smaller than 1kb with Modify_Stats_On_Delete caused divide by zero (broke stats)
- Change: Optimized job managment + added priorities for jobs
- Change: Connections are now accepted using AcceptEx
- Change: Optimized message-based socket use (Connect/Accept)
- Change: Active mode transfers are bound to server port - 1
- Change: Some minor optimizations (not worth listing)
Beta 5.1.0
All:
- New: Module support enabled (cookies, events)
- New: More/All headers now in source\include
- Change: Mount tables (.vfs) are no longer cached per session, but per daemon instance (uses less memory)
- Change: Messagefile parser (aka cookieparser) rewritten
- Change: Event handler rewritten
- Notice: " = ..\script.itcl" changed to " = TCL ..\script.itcl"
- Notice: " = ..\script.exe" changed to " = EXEC ..\script.exe"
Beta 5.0.1-13
All:
- Fix: Can't remember..
- Change: Cookie parser rewritten
- Change: SSL routines were rewritten
- Change: Readline routine was rewritten
- Change: SSL now defaults to 64kb transfer decryption buffer for ftp datachannel
Beta 5.0.0
All:
- New: source\Include directory (headers for developers to use)
- New: New window messages
- New: NOT (!) parameter support for commands that allow search parameters (CHANGE, STATS, USERS...)
- New: Added "ShowActivity" config line
- New: !unlock is back
- New: HTTP keep-alive support added
- New: Internal timer thread (nearly 600times faster than old window timers)
- New: Hosts.Rules
- New: Several new error messages
- New: OnDownloadComplete & OnDownloadError events
- New: xferlog (wu-ftpd/proftpd compatible transfer log)
- Fix: Infamous "Service full" bug
- Fix: Secure_Accept() could cause crash on certain circumstances
- Fix: Who shows paths properly
- Fix: Heap still was not properly serialized in unregistered version
- Fix: Bug in Secure_Accept() caused infinite loop under certain circumstances
- Fix: Worker thread counter had bug, that prevented creation of dynamic worker threads
- Fix: Two pointers were uninitialzed (oops)
- Fix: Too much memory was allocated for ident array
- Fix: Telnetd fixed
- Change: text\FTP 'login.msg' was renamed to 'welcome.msg'
- Change: passwd & group file format changed, use
http://www.ioftpd.com/passwdconv for conversion (works for both)
- Change: User that is online may now be deleted
- Change: New, more efficient core
- Change: Userfile caching is now more efficient in both cpu & memory wise
- Change: Groupfiles are now cached
- Change: STATIC structure layout was redesigned
- Change: Shared memory routines, now support event notification
- Change: Cookie parser cleaned up & optimized
- Change: Updated SSL key documentation "-a sha1" to "-a md5" (fixes compatability with several browsers)
Beta 4.9.4
Ftp:
- Fix: "No such file or directory" error when uploading queue of files, and resume on one file fails
- Fix: Disk reads in compatability mode were asynchronous
All:
- Fix: Use of "!buffer off" & "iputs -nobuffer" caused ioftpd to crash in ssl mode
- Fix: Memory managment in unregistered version was not serialized properly
Beta 4.9.3
Ftp:
- Fix: Typo in upload/download routine caused stats on section 0 to be ignored
Beta 4.9.2
Ftp:
- Fix: Uni-directional SSL connection closure now performed properly
All:
- Fix: Services died on config rehash, if bind ip was not equal to host ip
Beta 4.9.1
Ftp:
- Fix: Overwriting resulted to, error: No Error :)
All:
- Fix: CHANGE FLAGS removed all flags, except M without adding new flags
- Fix: Transfers were not marked properly in shared memory
- Fix: Return value from external scripts was incorrect
- Fix: Script executor converted cookies incorrectly
- Fix: Mode 0777L was incorrectly translated to 0 on !vfs:add
Beta 4.9.0
Ftp:
- Fix: Queuing several scripts did not work properly
- Fix: If client sent two commands at once (it isn't very nice thing for a client to do this... but), second was ignored
- Fix: Upload failed with weird error for whatever reason
- Change: Directory size is forced to be updated after upload
- Change: Asynchronous SSL Transfers
- Change: Active mode transfers are no longer bound to 'listen port - 1' (could be listed
Telnet:
- Change: Fully asynchronous
- Change: Broken :) - Disconnects almost immeaditely.. will be fixed in next release
Http:
- New: CGI Support
- Change: Asynchronous sockets
- Change: Much improved form handling (MIME support etc.)
All:
- New: Win9x code paths (untested)
- New: Credit section seperated from stats sections
- New: iTCL command: vfs chattr
- New: SChannel documentation
- New: A method for external programs to communicate with ioFTPD (& some new related sources available)
- New: NoStats line to exclude specified users within certain directory from stats
- New: RemoveDir renamed to RemoveOwnDir and RemoveDir permission added
- Fix: Stack overflow, if external script used -1 as uid/gid on !vfs:add
- Fix: Rename caused ioftpd to crash
- Fix: Renewing timers did not work (Used in transfer timeouts & telnet log reading)
- Fix: Listing algorithm used wrong memory freeing routine to free VFS context in some cases
- Fix: Hideous bug in memory allocation routines (registered version)
- Fix: Server now binds to ports, even if they had lingering connections
- Fix: Server hungs, if two threads were reloading config at the same time
- Fix: Server can be brought down by calling 'site stats count 999999999'
- Change: Userfile reading & writing routines rewritten
- Change: Optimized memory allocation in stats routines
- Change: Updated help message file
- Change: Some config variables were renamed
- Change: Removed obsolete config options from [Network]
- Change: Some internal changes in internal message handling
- Change: Remote administration API was rewritten
- Change: All CHANGE commands were rewritten (& code documented..)
- Change: Replaced SHA1 provided by libeay with one that can be found in source directory
- Change: MFC no longer used
- Change: OpenSSL replaced using microsoft SChannel (See SChannel documentation in help directory)
- Change: Using unidirectional SSL_shutdown instead of bidirectional
- Change: Unified line reading algorithm for sockets (FTP Control/HTTP Headers)
- ... and lot more :p
Beta 4.6.2
Ftp:
- Fix: If Database_Insert() was called on directory that does not exist, buffer overrun occured
Beta 4.6.1
Ftp:
- Fix: Posssible buffer overrun on any administration command, if user was admin of some group
- Fix: Req_Encrypted_Auth was not effective
- Fix: Scheduler ran events too often
- Change: Optimized transfer loops (they were a mess, after adding support for asynchronous sockets)
- Change: Some other optimizations (can't remember what was modfied anymore :))
Beta 4.6.0
Ftp:
- New: Login/Idle/Transfer/Logout timeouts
- New: CHATTR [+-]h (Private path)
- New: CHATTR [+-]l
- Change: RAW (non ssl) transfers are done using overlapped sockets
- Change: Support for 64bit filesizes
- Change: Upload did not update permissions in vfs
Telnet:
- New: Login/Logout timeouts
Http:
- New: Transfer timeout
All:
- New: Ident timeout
- New: Highly optimized internal database (with crc checks) to cache file permissions and more
- New: Size of directory contents shown in directory lists
- New: New memory allocation routines to reduce memory leaking caused by fragmentation
- New: Symbolic links and new method for setting private paths
- New: Option to disable stats modification on file deletion
- Fix: Nasty bug from one of the array sorting algorithms
- Fix: Priority settings did not take place, if line had comment after value (= defaults)
- Fix: Max logins per user :)
- Fix: Deny rules for users&groups did not function properly
- Fix: Rehash tried to restart services, even if ip/port wasn't changed
- Fix: Cookie System has minor bug, that caused cached files to be ignored
- Change: Optimized ident reader
- Change: SSL_close() is now redirected to io threads and handled nicely (uses more resources, but is safer)
- Change: New_Directory/File & Old_Directory/File config entries changed to Default_Directory_Attributes/File
Scripts:
- New: !vfs:chattr (Add special attribute to file, 0 = private path, 1 = symbolic link)
- Change: Double '\' is no longer allowed in paths.. ie: c:\test\\path is invalid form
- Removed: !vfs:del as obsolete
*NOTE* Some of the listed features are only available in the registered version
Beta 4.5.4
All:
- Fix: Ident reader caused buffer overrun if client had no ident
Beta 4.5.3
All:
- Fix: Environment file was not processed properly
Beta 4.5.2
All:
- Fix: Executable redirector did not redirect output to socket
Beta 4.5.1
Ftp:
- Fix: Uploads failed
All:
- Fix: Minor bug in ident reader
Beta 4.5.0
Ftp:
- New: Core rewritten to use worker/io threads
Telnet:
- New: Core rewritten to use worker/io threads
Http:
- New: Core rewritten to use worker/io threads
- Change: Downloads temporarily disabled
All:
- New: All major data structures redesigned (not just renamed...)
- New: Ident reader uses worker/io threads
- New: Ident reader has 'smart queueing' to minimize cpu usage during ddos attacks
- New: Ident is read before connections is passed to handler
- New: Non-blocking SSL accept
- Fix: Few buffer overruns/underruns
- Fix: Users per service limit
- Fix: .message files over 1024bytes shown improperly
- Fix: %[include()] files over 1024bytes shown improperly
- Fix: Minor bug in chgrp
- Change: All timeouts temporarily removed. Expect to have them back in next version, if you have registered ;) (ident/ssl accept/...)
- Change: Telnet does not show logs online (temp disabled)
- Change: Optimized memory allocation
Beta 4.1.5
All:
- New: Traybar double click executes specified command
- New: 'Source' directory, expect to see some useful stuff there
- New: Get_External_Ident option for FTP services (aka bouncer support; IDNT command handler)
- Fix: Line parser (used nearly everywhere) caused buffer overflow, if line ends to '\'
- Fix: Bad speeds when transfering to another computer operating microsoft windows
- Fix: CHGRP command
- Fix: Admin could not use CHANGE on his account
- Fix: DELIP master check was dodgy
- Fix: "MKD PATH/" doesn't produce 'No such file or directory.' anymore
- Change: WHO information now managed with window messages & shared memory
- Notice: Lots of internal changes were done that aren't mentioned here
Beta 4.1.0
All:
- New: CHANGE GROUPVFSFILE
- New: CHANGE GROUPSLOTS
- New: CHANGE GROUPDESCRIPTION
- New: CHANGE HOMEDIR
- New: CHANGE TAGLINE
- New: CHANGE ADMINGROUP
- New: Single user can administrate several groups.
- New: %[$groupname], %[groupinfo(description/userslots/leechslots/users)]
- New: CPSV command (CPSV is same as PASV, but it uses SSL_connect instead of SSL_accept() in ssl connections)
- Fix: Port range allocation
- Fix: Minor design flaw in ftp receive routine (in certain circumstances few bytes might have got lost)
- Change: Slots are now per group instead of per user
- Change: Stat lines (dayup/...) are stored in userfiles, only if they have values other than zero (even then, only meaningful values are stored)
- Change: CHANGE command now changes values for current section administrator is in (instead of section 0)
- Change: 'G' flag removed
- Change: Http SSL connection creation does not block thread
- Change: Ftp SSL (data channel) creation does not block thread
- Change: Http Transfer timeout(s) set to 30seconds
Beta 4.0.6.1
All:
- Fix: Stupid memory allocation bug
Beta 4.0.6
All:
- New: 'Service_Update' scheduler event (updates device/brings services up... etc)
- New: %[$ident], %[$gid], %[$uid], %[$sectionid], $[environment(varName)], %[$hostname] and %[$ip] cookies
- New: Environment can be customized with "etc\ioftpd.env"
- Fix: Who crashed, if there was user online that wasn't logged in
- Fix: Certificate path wasn't allocated properly (missed 1byte) - which caused odd crashes, if certificate path was dividable by 4.
- Fix: MaxUsers per service
- Change: Removed one (obsolete) thread
- Change: Httpd core rewritten (approx 2000new lines)
Beta 4.0.5
All:
- New: "Internal_Transfer_Buffer" option. Increasing this value allocates more memory for internal buffering during transfers, which may lead to performance increase (value is in bytes)
- New: Who is now fully customizable with cookies (all new cookies will be documented in next release/forums)
- Fix: Creating new directory was impossible, if parent directory did not have entry in vfs
- Fix: Connections failed sometimes with weird errors after transfer begun
- Change: Who shows now 'current' speed, instead of average
- Change: Nagle can be turned on/off via config (previous setting off, affects only ftp transfers)
- Change: Cookie system rewritten once again
- Change: STATS command shows stats for current section
- Change: TCL library updated to 8.4 - notice LIB directory
- Change: FTP core rewritten to use overlapping file actions
Beta 4.0.4
All:
- New: Caching hostname resolver
- New: Ident caching
- New: Ident reader works for all types services
- New: Debug.exe is gone with bugs
- Fix: Removed popup window, when running .itcl scripts
- Change: FTP control data loop optimized
- Change: Telnet loop optimized
- Change: Exit value 259 is treated as zero
Beta 4.0.3
All:
- New: !detach - leaves script running on the background (doesn't work with .itcl)
- New: Huge pile of internal tcl commands to ease scripting, see scripting forum
- New: Thanks to Zer0Racer there are now header/body & footer files for all kinds of stats
- New: Option to force TLS/SSL for specified users
- Fix: 'WHO' caused infinite loop, if user did not have proper permissions
- Fix: Cookie caching system had minor bug (possible crash, after reading tons of files)
- Change: Each 'USER ' command is now considered as login attempt (old method used 'PASS')
- Change: Service lines in config changed
- Change: Server initialisation routines rewritten
- Change: Approx 2500lines changed/rewritten & 2000new lines.
Beta 4.0.2
All:
- New: $uid and $gid variables for itcl
- New: Internal scheduler
- New: Stats reset
- Fix: Memleak when using $path cookie
- Fix: Possible buffer overrun, when doing CWD //
- Fix: If file was deleted during upload, ioFTPD crashed on upload check
- Fix: One pointer array was not initialised to zero on startup
- Fix: Deleting files within directories that did not contain .ioFTPD file caused crash
- Change: Optimised memory usage
- Change: Most of allocation functions are now protected from memory shortage
Beta 4.0.1
All:
- New: STATS Super Cookie
- New: Two different builds, ioFTPD.exe & ioFTPD-debug.exe (if you encounter random crashes, you should be running debug.exe)
- Fix: TCL no longer hogs resources
- Fix: Renaming works again
- Change: If line of cookie file has only Super Cookie, it won't get prefix
- Change: Cookie.docs updated
Beta 4.0.0.1
- All: Cookie System initialisation caused ioFTPD to crash on startup
Beta 4.0.0
Ftp:
- Change: FTP service uses "service port -1" for active mode transfers
WebAdmin:
- New: Downloads, basic file managment (= download, list & delete)
- New: Html files support cookies
- New: LogOut button
Telnet:
- Change: Password is now hidden
- Change: Unified Login & Command handling loops
All:
- New: Reason for unsuccesful login is displayed to user
- New: Read only raids
- New: Cookie file cache is now in use
- New: More accurate timers
- Fix: Ident reading
- Fix: Rename user
- Fix: Crash on 'change vfsfile' when target file did not exist
- Fix: Vfs Add routine makes sure there is enough space available before writing
- Change: Mounting drive root is now possible
- Change: Memory allocations is now done with WinApi calls
- Change: Unified all file handling functions
- Change: New comparison algorithms, allows use of ^ (deny character inside brackets.. ie [^ca-z] disallows c, but allows a-z.. ahh ranges work as well)
- Change: Wrote new algorithm for text formatting - nearly twice as fast as the old one
- Change: Optimised connection handling
- Change: VFS entries are no longer stored as lowercase, old .ioFTPD files work no more (they won't causing crashing)
- Note: Two new lines in .ini: Cache_Files & Cache_Max
Beta 3.9.1
Ftp:
- Fix: Crash on uploads (now where did that -- go..)
Beta 3.9.0
Ftp:
- Fix: Auth TLS/SSL .. 00ps
- Fix: Bug in line parsing algorithm (caused crash after malformed client QUIT)
- Change: Optimised transfer loops
Telnet:
- New: STATS command added
- New: USERS command added
- Fix: Possible buffer overflow, if username/password reply is malformed
All:
- New: Anonymous flag 'A' - no password check
- New: !login - selfkick on non-anonymous account
- New: 'LIMIT' option for STATS - LIMIT "=GROUP username us?rna*"
- New: CHANGE supports =group & username wildcards
- New: help.db (work in progress)
- Fix: CHANGE showed wrong 'from' value, if admin had unlimited leech slots
- Change: SSL_close() retries 10times on SSL_ERROR_ZERO_RETURN instead of 1000
- Change: SSL_close() is only called in 'nice' mode when neccessary
- Change: Minor code cleanup - preparing functions for final version :)
- Note: This version has been tested with 105 concurrent downloads on 2x100mbit lan - downloaded files were located on network share (Total average speed was ~20mb/sec)
Beta 3.8.2
All:
- Fix: Permission check.. *g* (Coding at 2am isn't too wise it seems)
- Change: Stats algorithm rewritten to use QuickInsert
Beta 3.8.1
All:
- New: Users with 'L' flag can login, even if max users limit for server has been reached
- Fix: *CRITICAL* permission check (=group, -user) had critical bug
Beta 3.8.0
Ftp:
- New: Ftp_Login_Attempts in ini
- Fix: Userfiles were written always on ftp exit (even, if there were no changes)
- Fix: Auth TLS/SSL caused crash, if Certificate file is not specified
All:
- New: !prefix
- New: !newlines
- New: !buffer
- New: !flush
- New: !cwd
- New: change logins (*Note: defaults to FTP*)
- New: Per service, and per user per service type login limits (*Note: Users created with previous version have their login limit for Telnet & Http set to 0*)
- New: Services have customisable login permissions (*Note: Obsoletes H and T flags*)
- Fix: Addip had bug in user priviledge checks
- Fix: Minor bug in section reader that showed up as crashes after 'site config rehash'
- Fix: All stats cookies were broken
- Fix: Cookies did not work inside supercookies (ie: %.[free($path)(mega)])
- Fix: Login message had invalid prefix
- Fix: User didn't get credits back, if download failed
- Change: Userfiles are only written, if there is real changes.
- Change: Two example configs: ioFTPD.simple.ini & ioFTPD.advanced.ini
- Change: User/Group files named using user/group ids instead of user/group names
- Change: User/Group id reading algortihms unified (& rewritten.. totaling whopping 800 new lines)
- Change: Group files are now created/deleted (*Note: To delete group created with existing version, create group file*)
- Change: Most VFS routines rewritten without breaking compatability with old ones (~500 new lines)
Beta 3.7.6
All:
- Fix: Credit cookie fixed (showed zero)
Beta 3.7.5
All:
- New: Cookie %[exec(binary)(parmeters)(prefix)] *Note* Currently adds lines to beginning of message
- New: Cookie %[include(textfile)(permissions)] *Note* Do not use as last line of message (applies to %[exec] as well)
- New: Cookies can be used as parameters for scripts
- Fix: Severe bug in path resolving algorithm
- Fix: Section names were read in wrong order
- Change: Cookie system rewritten scratch (Old: 650 lines - New: 1100 lines)
- Change: Removed file locks from logs
Beta 3.7.2
All:
- Fix: After 'LIST' command, all downloads were considered as directory lists (hence download counters & resuming did not work)
Beta 3.7.1
Ftpd:
- Change: Optimised list once again
WebAdmin:
- Fix: Crashed, if empty cookie was recieved
All:
- Fix: Masters were not able to edit themselves
- Fix: Private paths were not private
- Fix: 'Random crashing'
- Fix: Files were not truncated when overwritten
- Fix: Crash, if userfile did not exist
Beta 3.7.0
Ftpd:
- Fix: If HOST was 0.0.0.0 and BIND was not defined (or was defined as 0.0.0.0) - passive ip was reported wrongly
- Fix: PORT did not bind to device as supposed to
- Fix: Minor bug in DelIp
All:
- Fix: BIND ip was set to HOST ip, no matter what device config said
- Fix: Bug in PORT randomization algorithm
- Fix: No more Handle wasting..
- Fix: Services did not bind to devices (instead they used INADDR_ANY)
- Fix: Quotes in filenames caused problems with openssl library
- Fix: Server waits SSL shutdown for 3seconds. If shutdown does not succeed during 3 seconds, connection will be terminated forcefully (against TLS standards)
- New: Home directories
- New: Logs are now dumped to files as well (format in telnet changed a bit)
- New: All services have ip checks
- New: Upload/Download/Resume/... settings under VFS are now enforced
- New: Socket buffer setting now work (Comment lines out, or use buffer size below 1024 to use default buffer size)
- New: Some new events added
- New: Userfiles can be now edited via external programs (Please use ioFTPD style file locking - lock the first byte of file, before reading/writing)
- Change: Lots of optimazations, minor bug fixes etc.
Beta 3.6.0
Ftpd:
- Fix: DELE is now FIXED, period :)
All:
- New: Uber flexible device configuration system
- New: 'Hide_Tray' config item activated
- Fix: Small but nasty bug in 'cookie system' (To be specific: ip cookies) that caused random crashes
- Fix: Exit caused crash, if users were online
- Fix: Log-system was broken (memory leak) - caused random crashes
- Fix: '!change' checks were broken and caused unexpected crashes
Beta 3.5.3
Ftpd:
- Fix: Bug in DELE, which made it impossible to delete files via ftp
Beta 3.5.2
Ftpd:
- Fix: VFS permission bug fixed.. urrh
Beta 3.5.1
Ftpd:
- Fix: Normal users couldn't list due bug in permission system
Beta 3.5.0
Ftpd:
- New: .message and .ioFTPD.message files are shown on CWD (not CDUP)
- Fix: Deleting file whose owner has been deleted no longer causes crash
- Fix: '!VFS:ADD' did not set requested mode
- Change: Cookie system now SMP/HyperThreading safe
- Change: It is possible to run multiple scripts on one event
- Change: Some permission checks weren't unix like
WebAdmin:
- New: Support for both HTTP/1.0 and HTTP/1.1 (persistent connections)
- New: Timeouts for HTTP connections
- New: Login works :)
- Change: Completely rewritten engine
All:
- New: CHANGE PASSWORD
- Fix: Command dispatcher leaked handles
- Change: Most of socket code changed to event based
- Change: Permissions ini ini now groupped per server/command type
- Change: Source clean-up, documentation (ongoing)
Beta 3.4.2
- Fix: Normal users could not login (only masters)
- Fix: .itcl caused thread to hung, if error occured in script
- Notice: .itcl no longer requires $ioftpd, do puts "fooo" for output
Beta 3.4.1
- Fix: Group check (=group) was not working
- Fix: Minor memleak fixed
- Fix: Bug in line parsing algorithm (fixes several bugs)
- Fix: Added more synchronisation objects
- Fix: Divide by zero occured when user deleted all files (or more) he had uploaded
- Change: Max limit for groups users can be in (25)
- Change: ioFTPD now 90% SMP/Hyperthreading compatible =) (Cookieparser needs to be rewritten)
- Change: Directories now show last Modification date in list, instead of Creation date
- Change: Info field in group file got eradicated
- Optimized: A little bit of this and a little bit of that :-)
- Notice: Fix your group file manually.
- Notice: Do not remove entry for NoGroup from groupfile, users without groups are groupped to this group! (you may rename it tho)
- Notice: Nearly 10% (over 1500 lines) of code changed, so watch out for some really nasty bugs
Beta 3.4.0
- New: New events
- Fix: Credit sections are now working properly
- Change: Changed names of existing events
- Change: Files are now autodeleted on upload, if transfer fails to begin.
- Change: Changed some FILEs to HANDLEs
- Change: Private paths no longer visible to VFS ADMINS
- Change: Ini reader completely rewritten (fixes several bugs) and optimized
- Change: 'f' flag denies fxp uploads, while 'F' disables downloads
- Optimized: Command parsing (FTP)
- Optimized: Cookie parsing
Beta 3.3.1
- Fix: Last mount was not read, if line ended to null char instead of newline char.
- Fix: Wrong argument was sent to pre/post scripts
- Fix: Private paths were not private (Use / always at the end of path)
- Change: VFSFILE entries removed from ioFTPD and darkone accounts. 'site change vfsfile ' to set user specific file.
- Change: Stats cookies now show stats for current section (instead of section 0), if section is unspecified
Beta 3.3.0
- Fix: 'change slots' did not count parameters right
- Fix: Filenames are no longer lowercased in directory list
- Change: .ioFTPD.links => default.vfs (similar to unix fstab)
- Change: PWD passed to upload script as param #3
- Change: Real paths of files are no longer stored in memory, instead they are resolved from virtual paths when needed.
- Change: Section and private paths are now checked against VIRTUAL PATH instead of real path.
- Change: !unlock takes destination as VIRTUAL PATH instead of real path.
Beta 3.2.5
- New: Seperate thread for window operations
- Fix: Dates are now shown properly in list
- Fix: No longer crashes, when 10+ users are logged in
- Fix: Only known memleak fixed
- Change: disabled debug writing to debug window temporarily
- Change: CHGRP command unified (same function used for telnet/http/ftp)
- Change: All .ioFTPD* files are deleted on RMD, if directory has no other files
- Change: Internal string handling changed (Huge change - doesnt show up to users tho)
- Change: Files can be now overwritten
- Optimized: Directory listing
Beta 3.2.4
- New: Added example for 'SITE EXEC' into ini file :p
- Fix: Parameters given in ini were not passed properly to script
- Fix: Stats algorithm was dodgy, newer and faster implemented
- Fix: RMD checked permissions in wrong order
- Change: Tweaked user/group id buffers
Beta 3.2.3
- Fix: Typo that caused config semaphore to be set to NULL (this caused tons of problems 2.2.x > 0)
- Fix: Typo that caused LIST to kill the site, if file had no creation timestamp (uhh)
Beta 3.2.2
- Fix: Extra parameter was passed to external scripts
- Fix: Telnetd caues ioftpd to crash if null string is sent
- Fix: Directory listing had bug (list -la *)
- Fix: Who does not show telnet users anymore
- Change: Internal changes in cookies functions
- Change: Userfiles no longer closed after every update
- Optimized: Directory listing
- Optimized: Stats generator
Beta 3.2.1
- New: Debug window
- Fix: Changed few streams to handles
- Fix: Sending zero-length command kills server
- Fix: 'CHANGE' does not hung, if it cannot load userfile (lock/sharing)
- Change: Optimized VFS even further
Beta 3.2.0
- New: Maximum logins are now enforced (user / site)
- Fix: Resume not working (not sure if this bug really existed in 3.1.0)
- Fix: 'WHO' does not kill site anymore, when user is transfering files
- Change: VFS redesigned (does not use nearly as much space)
Beta 3.1.0
- New: SITE STATS command
- New: Command aliases
- New: %[extra] cookie
- Fix: !VFS:ADD mode bug
- Fix: !CHANGE bug, caused bad things to happend
- Fix: Default uinfo.msg had wkup instead of wkdn, in wkup field
- Fix: ACCTIVE MODE transfer displays error on connect timeout
- Fix: PASSIVE MODE transfer displays proper error on timeout
- Fix: Reading Ident no longer hangs, if client doesnt have identd
- Fix: SITE PASSWD reply was wrong
- Fix: User rootpath was set to default on login
- Fix: Pushing arguments was caused memleak, when command had only one arg.
- Fix: AddIp/DelIp now obey group lock
- Change: Command parser now supports quotes
- Change: Internal uid and gid buffers changed
- Change: add-/ren-/deluser & grpadd/-ren/-del rewritten
Beta 3.0.2
- SSL certificate path no longer hardcoded, ehh :p
Beta 3.0.1
- Fixes DELUSER
Beta 3.0.0
- SSL/TLS Support
- New device config (support for multihomed computers)
- Tcl and Script executors written from scratch
- Faster and cleaner ftpd code
- '!UNLOCK' command for scripts
- !commands work in tcl as well
- Scripts are executed as hidden
- Minor source cleanup done :i
Beta 2.2.5
- Quickmenu opens with left clicking ioFTPD traybar icon
- VFS optimizations
- More checks on init
- Optimized main thread and integrated message system in it
- Site who and kick now 100% thread safe
- Properly frees memory, and cleans windows on exit
- Config line max length set to 1024 instead of unlimited
- Few minor fixes
- 'SITE PASSWD' command added
- Fixed crash caused by invalid login
- Simplified message configuration in ioFTPD.ini
- Telnet responses modified [UPPER] => [lower]
- Added login.msg and logout.msg to telnet
- Some other minor fixes :)
Beta 2.2.4
- Fixed bug in 'site uinfo'
- Optimized uid and gid buffering
- Optimized priviledge checking
- Introduced new config settings
- Updated 'todo' list
- 'F' flag denies FXP
- Fixed priviledge check bug in DELE/REN
- Fixed '=group' check
- ioFTPD traybar icon
- ioFTPD program icon
- Documentation project begun