|In 1995, I needed a FTP server to exchange some files with friends on the Net. I used Windows 95 as that time, and was rather disappointed to find that there existed no free servers - not even for personal use! I could have downloaded a cracked version of one of the two shareware servers available - but that would make me a thief. I believe that one should pay for the software on use, or write ones own. So I decided to write my own server. I started out in the winter of 1996. I purchased Microsoft Visual C++ 4, and decided to use C++ as the programming language. My earlier programming experience was based on C, so I figured that C++ would be pretty easy to learn. I was wrong ;) C++ is quite different from C, at least if you want to take advantage of the language. As a result, the code was very much C and some C++ thrown in here and there. My second big mistake was to use Microsoft Foundation Class (MFC) as the framework for the server. MFC can be used with success for simple GUI programs - but it is unfit as the framework for a server. At this time however, the goal was to make a server for my own needs. I had no intention to release the source code, and I had no big expectations that anyone else would find the server useful.
I was however still irritated about the two existing shareware servers. They both contained some serve limitations in their "trial" versions. So I decided to make my server freeware just to piss them off ;)
March 25 1996, I announced the first alpha version on the alt.winsock newsgroup. I got lots of response! After the initial alpha release, I got tons of suggestions, bug-reports, and help with technical issues. In a very short time, the project changed from a very simple application to fit my needs, to a powerful, flexible FTP server. Lot's of people dedicated a lot of their spare time to test the new versions, and contributed with well thought out suggestions. If I should mention just one significant contributor from the early days, I cannot get around giving credits to Jeremy Mineweaser.
June 26 1996 version 1.0 beta was released. At this time, the server was pretty mature. It still contained bugs, and I still had a long list of features I wanted to include, so it remained in "beta" for a long time.
I realized that the use of MFC made version 1* unfit as the fundament of future versions. I therefore started out and wrote a new version, version 2, from scratch. This was an ambitious project. I wanted to make the "perfect" FTP server. Unfortunately, I had still not learned C++ good enough to take full benefit from its strengths - so after some time I discontinued version 2. It contained some really cool solutions - but it was far from "perfect". Version 1.6 on the other hand had some serious limitations that had to be addressed. I wrote another, less ambitious version from scratch, and named it 1.70. This version was meant to be platform independent, and the idea was to use it as a fundament for a future "perfect" FTP server. Early (internal) versions ran under Linux as well as Windows. 6 months late, June 2. 1998, War FTP Daemon 1.70 was released.
During 1996 and 1997, the warftpd users organized themselves on IRC Undernet in #warftp. One young user, Chris Evelsizor, created the newsgroup alt.comp.jgaa. "Breezin", one of the op's on #warftp donated the domain "jgaa.com" to me, and other users (small ISP’s) in USA and Belgium hosted www.jgaa.com for free for a long time, until I finally got my own high speed Internet connection and my own web server. When 1.70 was released, I wrote a support-site in the PHP web-scripting language. This way, warftpd was way better supported than any of the commercial ftp servers of that time.
During the fall of 1998, I continued the development of warftpd. I got lots of promises from new supporters about distribution from fast high capacity FTP sites, and help with promoting the servers on all the web sites donated to free software. But many of these people did not keep their promises. Releasing a new version became a nightmare. I had to send numerous emails to different site-owners, upload to a lot of public FTP sites, update several www-sites and so on. It was a full days job just to release a new version. So I stopped releasing new versions. After a while, the source code was improved a lot, but I was not satisfied at all with the fundamental design, so I stopped further development. I still fixed bugs. Security problems were normally fixed within 24 hours. I had some plans for "version 3", but I did not devote much time to work on it.
As the years went by, and the server remained very popular, I spent some time implementing new features in 1.70 (who eventually became 1.80).
In October 2000, Pinnacle Systems was in need for a FTP server for their professional TV studio systems. This was a totally new approach. - A FTP server for embedded use. I instantly realized that this angle solved most of the design issues I had been struggling with for years for the upcoming "version 3". I cleared my desk, and started from scratch for the fourth time! Six months and about 1000 work hours later, WFDE (War FTP Daemon Engine) was announced in a pre-alpha version. The design was extremely flexible. And this time I had the required C++ skills to make things right ;)
Since then I have been working with version 3. It's still not released in beta. But the libraries I built for this version has been tested in several critical applications, including a prototype NNTP server. War FTP Daemon version 3 will be the perfect implementation of a FTP sever. It will be released in beta as soon as I am satisfied with the code. In the mean time, I'm continuously doing minor improvements in version 1.8*.