How to become a beta tester

Its very easy, really - simply register the program (oh, yes, thats important), and report any bugs that occur in your normal use of the program.  I choose my beta testers from those whose bug reports have shown more use to me than any others.


How to Win Any Argument About A.I.

If people argue that machines will never be cleverer than humans, simply ask them if their VCR still flashes "12:00".


WFTPD Contents
WFTPD Contents  (version 1.96, 1/27/95)

WFTPD - The Windows FTP Daemon

Quick Setup - how to start quickly
Common Questions - what people keep asking me.

How To:
Fix what broke in the quick setup
Work with Log files and screen logging
Secure your system
Register the program or contact the author
Play the Flute
Win Most Arguments About Artificial Intelligence
Become one of my beta testers for future versions

Menus:
Use the File Menu to deal with log files.
Use the Edit Menu for nothing much, yet!
Use the View Menu to turn off or on the status bar.
Use the Logging Menu to control what information is saved to the log, or on screen
Use the Messages Menu to give messages to users on connection, logout and change of directories.
Use the Security Menu to limit the number of users, who can log in, and where they may log in from.

Command Line Options:
Run invisibly with the 'h' option

Miscellaneous:
Upload Announcement
Changes made in version 1.96
Changes made in version 1.95
Changes made in version 1.9 (and minor version changes)
Look for these features soon...
Acknowledgements
About The Author


Quick Setup

The important part of a quick setup is to note what WFTPD has as its defaults:

No Log File
No logging to screen or disk
A blank Greeting and Farewell message (the unregistered version informs users in these messages that you have not registered)
No display of the MESSAGE.FTP file on a CD command
User/password security enabled - no users defined
Anonymous user disabled, and restricted to the C:\ directory and beneath, should you re-enable this user.
Host/Net security allows all hosts/networks to access WFTPD
No limit on the maximum number of simultaneous users.
No time-out of idle connections

This means that what you will need to do on first starting up WFTPD is either to enable the Anonymous user, or add users and passwords, or a combination of both.  Or, if you don't need password protection, simply disable user/password security and allow anyone access to your system.

I would recommend enabling the time-out too, since this may save you from hangs on your server (and it also prevents people from hogging your server up).


The Log File

The Log File is a simple text file with the following format:
[X nnnn] mm/dd/yy hh:mm:ss <Message text>
X is a single character, one of:

L - login
C - command
G - get (RETR)
P - put (STOR/STOU)
A - anonymous login
? - Debug information
! - Warning / helpful information

nnnn is a four digit hex number for the connection number that this message applies to - connections are numbered from 0001 from the time the program is started.  When the program is exited and restarted, the count restarts at 0001.

mm/dd/yy is the date, and hh:mm:ss is the time of the message being written to the log file.

This same information is written to the screen.

You can select the types of messages that will be listed through the Logging menu options.


Greeting And Farewell Messages

These messages are currently a maximum of 20 lines long, and are entered through a very simple multi-line edit control.  Any text can be entered here, although it would be advisable to limit yourself to only those characters that are most prevalent amongst the internet community - i.e. 7-bit ASCII.

The Greeting message is displayed to each new connection before they get the prompt for the user name, and the Farewell message is displayed after the FTP daemon receives a QUIT command from the client.  In addition, I add one line to each of these messages as a kind of 'promotion', to remind users who wrote the marvelous server that they are connected to.

The default messages are blank in the registered version.  In the unregistered version, you cannot edit these messages, and they bear messages enticing your users to tease you about being unable to scrounge up $15 for a registration fee.  If you feel these messages are a problem, please read this.


The MESSAGE.FTP File

When this option is ticked in the Messages menu, any time a user changes directory, the new directory is checked for a file called MESSAGE.FTP. If this file exists, it is printed as part of the success message informing the user of his change of directory.

This file may be as long as you can type, but bear in mind that many people have twenty odd lines of screen and no scrollback - if it can't fit on one screenful, you stand the chance that it will not be read in its entirety.

This feature was inspired by wuarchive's facility to display a .message file on certain commands.

You may want to make the MESSAGE.FTP file hidden (use the DOS command "ATTRIB +H MESSAGE.FTP", or select MESSAGE.FTP in the File Manager, then choose the "Properties" option under the "File" menu, and check the "Hidden" box), so that users do not try to delete it, or change its contents - this is especially important since directory rights have not been written yet.  You can also make it read-only ("ATTRIB +R MESSAGE.FTP", or check the "Read Only" box under the Properties dialog in File Mangler), so that people are not tempted to overwrite it if they know it's there.


The User/Password Security Dialog

This dialog allows you to grant different users access to different parts of your disk(s).

The Close button simply exits the dialog - it will not add or update any user's entries.  (It's almost a Cancel, although that would imply that all the actions that you had done since entering the dialog would be cancelled)

The Add/Update button updates the WFTPD.INI file with the information displayed in the edit boxes.  This button is grayed if the two password entries (the Password and the Verify boxes) are not filled in exactly the same.  This button must be pressed to add or update an entry - Close does not do either of these operations.

The Delete button removes a user's entries from the WFTPD.INI file.

Clicking the down arrow to the right of the box for the user name will produce a list of user names already in the WFTPD.INI file.  The  parameters for this user will only appear once the focus is moved away from the user name box.

The Password/Verify boxes will always display '*' for each character entered. This is a standard protection scheme to ensure that people in the next town with high-powered binoculars can't log in to your prized system.  When pulling up a user's name that is already entered, 10 asterisks will be displayed - this is so that a sysadmin should not necessarily know his users' passwords.

The passwords are stored in encrypted fashion on the WFTPD.INI file.  If you wish to retain your password from a UNIX system, you may copy the password entry from the /etc/passwd file into the WFTPD.INI file - e.g. if my /etc/passwd entry is:
alun:hajibabaomars:194:958:Alun Jones:/home/home/on/the/range:/bin/bash
I would put an entry in the [passwd] section of the WFTPD.INI file a line that reads:
alun=hajibabaomars

The "Home Directory" is the directory that the user first sees when he logs in.

If you check the option "Restrict to Home", the user will not be able to change directory to any directory that does not contain the home directory as an initial substring, effectively limiting his access to his home directory and below.

The "Enable security" and "Allow Anonymous" check boxes, which were on this dialog in previous versions, have been moved to the General Security dialog.

Remember that everywhere throughout WFTPD, the username "ftp" is synonymous for "anonymous".  (A little alliterate)


Host/Net Security

This dialog allows you to deny or allow access to your site based on the internet address of the host trying to connect.  There is a pair of radio buttons indicating what the default action is - whether you want to generally deny all incoming connections, or whether you wish to allow all connections by default.

Underneath these buttons is a box labeled "Specific action", which contains a list box labeled "Host address".  Any hosts listed in this box (and you can type extra hosts in) may be changed from the default action.  Please note that to add or change a host's entry, you MUST click on the Add/Update button.  To remove an entry, simply select it in the list, and click on the Delete button.

The Host Address must be a numerical IP address - four numbers from 0 to 255 separated from one another by dots (the "." character).  To specify several hosts in a range, remember that a "*" represents the range 0-255.

Once any address or address range has been set to 'deny', no connections from that site can be made.  Once an address or range has been set to 'allow', all connections from that site can proceed.  If a connecting site qualifies under both 'deny' and 'allow', it will take the opposite action from the default.  This sounds bizarre, but it makes a certain amount of logical sense.  If you think it's wrong, try and come up with a situation where you might want a different action performed - I couldn't.

The Close button will exit this dialog box - it will not in itself save any alterations that you have made to the host tables - this is done only through the Add/Update and Delete buttons.


The Security Menu

This menu contains four options that allow you to tailor the security of your site.  Only the top three are currently enabled - the fourth will come into effect in a later version of WFTPD (to be called 2.0, and which will cost a little more).

The three active options are:

General - for miscellaneous settings
User/Password - to add users, edit their passwords, and set home (login) directories
Host/Net - to accept or deny connections based on what machine they come from


The Message Menu

This menu contains three options.  The Greeting and Farewell messages allow you to design messages that are printed when a user logs in or out, respectively.  The MESSAGE.FTP option is a checkable option, that, when enabled, allows a message to be printed out which can change for each directory the connecting user enters.


The Log Options Dialog

The Log Options Dialog has the following check boxes:

Enable - turns logging to screen and log file (if opened) on/off.

Gets - starts/stops logging all Get (RETR) commands
Puts - starts/stops logging all Put (STOR/STOU/APPE) commands
Logins - starts/stops logging all successful user logins
Anonymous - starts/stops logging all successful anonymous logins
Commands - starts/stops logging of all ftp commands received.
Winsock Calls - this option is only to be used for debugging purposes - many of the items reported are of little consequence, and despite some bizarre numbers appearing when this option is enabled, most are simply status reports.  If this is enabled, it may cause WFTPD to use more memory, to slow down, and maybe even to appear to hang.  It is not recommended unless you are trying to solve a problem in conjunction with the author, Alun Jones.

Note that if the Enable box is not checked, none of the other options can be altered.  It makes no sense to alter the log options if logging is not occurring!

Whenever winsock call logging is turned on, and the dialog box closed, or if the application is started with winsock call logging turned on, a dialog box will come up warning you that it's not usually a good idea to run with winsock call logging.  Clicking OK will disable winsock call logging, and Cancel will leave it enabled.


The Logging Menu

This menu has the following options:

Log Options - brings up the "Log Options" dialog
Clear Screen - clears the log on screen.


The View Menu

Currently this menu only enables you to turn on or off the status bar. The status bar has one purpose, and that is to give you a brief description of each menu option you might select.


The Edit Menu

In some later version of the software, this will allow you to copy sections of the screen log into the clipboard, for pasting into other programs.  Currently, there is no method to copy and paste from the log screen.


The File Menu

This contains commands to open or close the current Log File, and the exit command.

Previous versions also contained the option to enable/disable the Greedy Option, but this feature has been removed due to its obsolescence.


How To Play The Flute

Well, basically, Jackie, you blow in one end, and move your hands up and down it.

Next week we'll be teaching you how to rid the world of all known diseases and how to make black and white people live in harmony.

I have received the occasional comment about this section - it's a light relief piece, and is a quote from an old Monty Python sketch - not that there are that many new ones.


How To Secure the system

Currently, since there is no concept of user rights, it is not possible to allow a user to only download, or only upload, from specific directories.  This means that you have to be careful that one user does not ruin it for the rest.  WFTPD is not a totally secure ftp server.  It can be made into a download-only server by options in the General Security dialog

Better Security is probably best achieved by providing each user with a separate directory, and restricting them to that directory and below.  All this can be achieved through the User/Password Security dialog.

If users persist in being naughty, you can deny them access to your machine through use of the Host/Net Security dialog.

Individual user rights are coming in version 2.0 - I have no idea when this will be, though, since I have little idea as to what constraints I may have on my time.


How To Work With Log Files And Screen Logging
How To Work with Log Files and Screen Logging.

When you first fire up WFTPD, no log file will be defined, and all logging will be disabled.  You will probably want to use a Log File, so that you can find out what happened during your unattended hours, and so that you can have a record of what is going on in your system.

To create a log file, simply open it from the File Menu's Open Log option.  From now until you close the file, all log messages will be stored into this file.  If you close the software, it will re-open this file when it is restarted.

Logging to the screen is automatically enabled whenever logging is on. This is selected from the Logging Menu.  Through this menu, you can also select what actions are logged, and you can also clear the log on screen.  There is no way to log to file, but not to screen, short of running the program hidden.


How To Fix What Broke in the Quick Setup

I'm not sure what you mean - nothing broke in the quick setup.

Maybe you should email me at "alun@fc.net"


New and Innovative Uses for WFTPD

The following uses have been reported to me:

As a standard FTP daemon - this is obvious.

For remote system administration - simply install it with the 'h' option, and run it on all of your systems - this allows you to update software, and retrieve configuration files for local editing, allowing you to remotely administer windows machines anywhere on your network.

As a poor man's WWW server - place your html files in a directory that the 'anonymous' user can get to, using the extension ".htm", and point people to the URL "file://yoursite.domain/yourdirectory/yourfile.htm" - this was new to version 1.95, and works better in version 1.96.

I used to have a feature where you could print by putting a file to LPT1, but because I couldnt get it to work right, and because it was a potentially dangerous use, I have disabled this permanently.  If you wish to print to a system through winsock, please use one of the many good lpr daemons that are around.


The 'h' Option

If you run WFTPD with a command line argument of 'h' or 'H', then the program will run without an icon, and will not show up in the task switcher.  This means that WFTPD cannot be closed without exiting windows, and its options cannot be altered.  This is probably only useful for remote system administration, where (to quote an existing user) "you don't want bozos deciding they know how to rewire their systems".


Upload Announcement

WFTPD196.ZIP    Windows FTP daemon 1.96 for Winsock 1.1

Uploaded by the author (ideally).

WFTPD - the all round useful Windows FTP Daemon.

WFTPD has the following useful features:

o RFC compliance to 959 & 1123
o Support for the majority of FTP commands (it doesn't support the obscure ones for mail, etc.)
o Multiple logins and simultaneous transfers allowed
o Works with Mosaic / NetScape / Cello - even over remote links!
o Runs over most Winsock drivers (some people have reported occasional problems, but this is usually fixed by updating to the current version)
o Site can be made read-only, or read-only to anonymous users
o User-configurable time-out on hung/idle connections.
o Fast - I get 120-500K per second on average over 8 bit ethernet
o Secured access by means of password authentication, address-based host authentication, and the ability to restrict users to named subtrees of your directory structure
o Remote access to ALL drives on your system is possible
o Windows friendly - does not flash cursors while it is transferring, or hold up processing
o Can run 'invisible' - with no user access to the program
o Easy configuration of user/password lists, security features, logging to file.  All features adjustable through menus - no need to edit clumsy INI files.
o Logs logins, anonymous logins, gets, puts, commands - what's logged is configurable
o Logs to file that can be read by other applications, including session number, time and date stamp.  This information is also logged to the screen.  Other applications can read this log while it is open, and it can be transferred through WFTPD.
o Most strings can be edited in the resource information - for customisation, or translation
o Small - around 200K
o Over 400 registrations received - many for site licences.
o 3D controls are used
o Cute little icon

In addition, for the low price of $15, you get these features:

o Easily configurable greeting - the unregistered one tells people that you can't afford $15
o As many transfers per login as required - only 5 are allowed in the unregistered version before you have to re-login.  (Directory listings don't count towards this 5)  (And only 15 PASV transfers are allowed before having to restart the server in the unregistered version)
o Greater say in future features
o Peace of mind - can you sleep at nights knowing that your $15 may be the only thing standing between me and an overdraft/green card/new computer?


Changes Introduced in Version 1.9

(Minor version changes are at the bottom of this page)

The following features have been moved in this version:

o File|Security dialog is now under Security|User/Password
o Logging|Logfile dialog is now under File|Open Log
o File|Greeting dialog is now under Messages|Greeting

New items on the menu include:

o File|Close log - stops logging transactions to file, but carries on logging to screen.
o The Messages menu now contains Greeting (formerly under File), Farewell (for the logout message) and MESSAGE.FTP - when this toggle is turned on, any CWD operation will look for the file MESSAGE.FTP in the new directory, and if it exists, will display it to the user.
o The Security menu now contains User/Password (formerly File|Security), Host/Net (for restricting which hosts may log in to your server), and Rights (for assigning each user a different set of rights in each directory. Rights will be activated when I write the code to do it, probably in version 2.0.
o On-screen logging is now supported - this has been the most requested feature since the FTP daemon was first released!  Since my internet connection is often flaky, I figured I'd cut down on my incoming mail and actually put the feature in!
o RMD will not accept a parameter with ':', '\' or '/' in it - this way you have to CWD to a directory's parent in order to delete it.  This may seem cumbersome, but is a valuable security feature.  MKD has a similar restriction.
o CDUP and XCUP are supported, as is STOU, SYST, REIN.
o The title bar will display the log file when it is opened from the .INI file.
o If the backlog of stuff to send is bigger than the socket buffer, it's now expanded continually, and eventually when the information gets sent the buffer will reduce.  It'll do this in steps of 4K.
o I am still finding it difficult to open a file sharable by other processes, so the log file is still locked.

Minor version changes

1.9a - fixed a bug in the asynchronous message handling for trumpet users.
1.9b - fixed a really bad security bug that allowed unprotected access.
1.9c - fixed a tiny bug in the directory listing, that made it list times wrongly.  Also made the help file prettier!


Acknowledgements

I would like to acknowledge the following people for their help in producing this product. They are listed in more or less chronological order.

o The developers of the Winsock specification.
o The developers of QVTNet for producing an FTP server that was so awkward to configure, and which had so many bugs in, that I was prompted to write this program.  Also, for not fixing many of these problems, so many users seek out my program to replace QVT/Net.
o Peter Tattam, for producing a damn good Winsock implementation.  The cheque has been cashed, Peter - where's my registration number?
o Fred Whiteside (of Beame & Whiteside) for helping me find a version of the crypt function.  And Carl Beame for being friendly.
o Those first few registrations that made all the difference, and kept me going
o Chip Sparling, Bob Quinn, and all at FTP Software for sending me a PC/TCP Developers Kit in such a short time.  Unfortunately, it reached me too late for me to work on fixes to WFTPD to work better with PC/TCP.  For the moment, just keep increasing those buffers!  (Or upgrade - they have a new version out that I haven't been able to look at yet)
o Bob Quinn for changing the way PC/TCP worked so that developers like myself have an easier time of it, and for producing the winsock spec clarification document, which helped me realise all the mistakes I had made.  (And some of the ones winsock stack developers have made!)
o Steve McCarthy and everyone at SunSoft, for helping me find out how to deal with problems caused by old versions of PC-NFS. (The trick is to UPGRADE!)
o All of my 400+ registered users, and those using my program under site licences!  Without you, I would have stopped work on this program long ago (it's far exceeded what I personally needed it to do)
o Ben Edlund and New England Comics for producing The Tick, Paul The Samurai and The Man-Eating Cow.  It's great to see them (well, the Tick at least) on Fox every Saturday!
o Count Lazlo Stroganoff, Digby Spode and Hubert Carstairs (what are they doing now?)
o Mikes Flex, Channel, Stand and Hunt, and Anna Daptor
o And, much importance and a significant drum roll to my wife, for putting up with the amount of time I spend on this program, and for helping me to keep the business side working.


What is FTP?

FTP is the Internet standard File Transfer Protocol.  The WFTPD program attempts to provide the most useful and most often used elements of the daemon (server) side of this protocol, as described in RFC # 959, and amended in RFC # 1123.  I delude myself that I'm compliant with both RFCs.


What is a daemon?

A Daemon, also referred to as a server, is a program which will run in the background carrying out certain tasks while the main work of the processor carries on in the foreground.  The daemon is connected to by a client program, usually on a different computer.

The term derives from a word meaning a 'helpful servant', and unlike "demon", has no intrinsic connection to either good or evil.  The word is supposed to be pronounced "day-mon".


FAQ:How Do I Register?
Look at the How To Register section in this file.  Please be sure to use the order forms provided in this section.


FAQ: Site Licences
Generally I ask for $500 for each 100 users.  This does not include the cost of source code. If you want to buy source code, please send me email, or contact me at the address in the How To Register section in this file.


FAQ: What Does Registration Get Me?
Firstly, you lose the limit on the number of files that can be transferred in a single session.  Also, you can transfer as many PASV connected files as you want (there is a per-instance limit of 15).  You can also modify the greeting and farewell messages.  If you have sent me an Internet-reachable e-mail address, you will be added to a mailing list, and kept informed of all new versions.  On the more esoteric side, you get a good feeling, and you encourage me to work on new versions and fix bugs.  And, especially while I'm unemployed right now, you make it a bit more likely that I can pay the rent.

Things mostly paid for by WFTPD:

Last year's tax bill (hopefully)
My wedding and honeymoon

Things I hope to be paid for by WFTPD:

A new computer (so I can develop faster, and so I can make Win32 versions)


FAQ: How To Get New WFTPD
Registered users are currently entitled to free updates whenever they are made (this policy will probably change on release of version 2.0), although there is a charge imposed for delivery through regular mail.  This charge is $5.  The unregistered shareware version should always be available from ftp.cica.indiana.edu in directory /pub/win3/winsock.  I also try to put the file onto oak.oakland.edu, ftp.demon.co.uk and sunsite.unc.edu - all standard winsock sites.  Oh, and I shouldn't forget Adam Glick's useful winsock site, b61563.student.cwru.edu (you may even recognise the server when you log in!).


FAQ: I'm Missing PCTCPAPI.DLL
You've fetched down the winsock.dll file from ftp.ftp.com, which only works alongside the full TCP/IP package produced by FTP Software, called PC/TCP.  This winsock is NOT free - either find one that is, or buy one of the commercial stacks that support winsock programs.  Heaven knows - maybe you could even buy FTP Software's PC/TCP!


FAQ: Only One Connection Allowed
You are using an old version of PC-NFS.  I believe that this is a problem with version 5.0, but it certainly is a problem with previous versions.  Please contact your dealer, and get the new version, or whatever patches might exist.


FAQ: I Can't GET Files
If you are using FTP Software's PC/TCP, this is something they are working on (as of 5/24/94), but they are extremely close to getting a good working version, so I hear.  You might want to check the ftp site ftp.ftp.com to see if a new version of winsock.dll is there that fixes your problem.  Note that this winsock.dll will only work with FTP Software's PC/TCP stack.

A similar bug is apparently inherent in the winsock supplied with Spry's Internet In A Box package.  I hear rumours that they have a patch that fixes the problem, but I've not yet received a reply from their technical support email address.


FAQ: Is My Winsock Stack Bad?
Not necessarily - it's entirely possible, since the winsock specification is so new, it's likely that there may be some parts of the spec that I read in a different way from the people who developed your winsock stack.  Winsock developers are working hard to make their stacks work with the most frequent of the disagreements, and I am also ready to change my program to work wherever it turns out I have a misconception.

If you think there may be a problem with your winsock stack, please email me, or technical support for the manufacturers of your stack.  Please note that I will not allow bug reports to degenerate into each side blaming the other - if your winsock stack providers will not work with my software, I will attempt to work with them, and produce incontrovertible evidence one way or another.  In an argument with a winsock stack provider, if we both blame each other, one of us loses a customer.  I'd like for us both to keep the customer, and to get more through word-of-mouth advertising (which is cheap and efficient)


FAQ: My Winsock is Version 1.0
This is a common misconception - my program is designed to work with any winsock stack that implements version 1.1 of the winsock specification (version 2.0 of the specification is just entering its design phase).  Most winsock stacks on the market implement version 1.1 of the spec, but to differentiate between different versions of their own stack, they give different version numbers to each copy of the stack.  Hence, PC-NFS is at version 5.1, PC/TCP is at version 2.31, and Trumpet Winsock is at version 2.0 rev. B.  All of these stacks implement an interface that is compatible with version 1.1 of the winsock specification.


FAQ: How Do I Get Source Code?
Not unless you are willing to spend some money - I've made sales of the source code to a couple of companies, and it's a little unfair on these people if I offer the code free to anyone else, or if I sell it for significantly less.  Feel free to contact me if you wish to discuss buying the source code.


FAQ: Why The Rude Message?
Two small points here - first, the unregistered version is generally designed for testing, before you register.  I'd feel very embarrassed if I was using an unregistered version of shareware to deal with customers, especially the influential ones - what kind of impression does it give to your customers when they find you are using them as a test case?  The second point is that you probably spent enough time complaining to me that you've already cost yourself (or your company) at least $15.

As another interesting point, I've had many people tell me that they registered specifically because they found the message amusing.

The message stays!


FAQ: What's In The Next Version?
The main purpose for the next version (if I get around to it) is the implementation of per-user protections on directories.  As I write this, I have just finished coding the rights protection, and first indications show that it works.  All i have to do now is write the user interface.  Also, Look Here!


FAQ: When Is The Next Version?
Well, this is a tough one.  I'm currently employed once again, and I dont have a whole pile of time on my hands.  Unfortunately, there's an awful lot of things I have to do, one of which is find another job!  I don't know when I'll be able to start work on version 2.0.  I am, however, fairly committed to producing this version, since I feel a certain responsibility to my users to provide them with the best program I can.


FAQ: Address Change
My email address recently changed from "alun@wst.com" to "alun@fc.net" since I no longer work for Welcom Software Technology, and have moved to Austin.


FAQ: Winsock Stacks
I use the Trumpet winsock at home - this can be fetched from many public ftp sites.  It costs $20 to register, and seems to be pretty robust.  The canonical site is ftp.trumpet.com.au, but it is very difficult to log onto, because of its high traffic.

At my previous job, I used the Microsoft VxD TCP/IP stack, which is available for free from the ftp site ftp.microsoft.com - it should be in directory /peropsys/windows/public/tcpip.  This is a fairly solid stack, and promises to be the basis of TCP/IP support in future versions of Windows.  Currently, this VxD stack works only on Windows for Workgroups 3.11.

Also available is the PC/TCP stack, from FTP Software, PC-NFS from Sun, Chameleon from NetManage, and several others.  Check in computer magazines for more details - look under network software.  If the advert doesn't explicitly say that it's winsock compliant, call the company before buying it.  WFTPD will only work on winsock compliant stacks.  Also, you could try reading the newsgroup alt.winsock, which regularly has discussions on the various winsock implementations.


How do I make WFTPD work with Netscape / Mosaic / Cello?
This is an awkward topic to get to grips with for many people, yet for others it is blindingly obvious.  First, realise that any attempt to access your machine through an ftp URL will usually be through the anonymous account, and will have all the restrictions which that account faces.

Next, remember that the URL is an absolute path, not a relative one - you must include all the directories in the URL, and if you are changing drive from the anonymous user's home directory, you must also include the drive specification.  Further complicating matters is the fact that the ':' character is special in URLs, and so has been replaced by the above programs with the '|' character (pipe, or vertical bar).

With this information, you should be able to construct your own URL for these applications, and make sure that they work.  Don't forget, if they fetch a file from your ftp server with the extension ".htm", it will be treated as an html file - you don't have to run an http daemon to serve straight HTML files - only for forms, cursor mapped images and the like.


Some of my users don't seem to be listed
This is usually due to a blank user entered in a previous version of the software (the current version will not accept a blank user name).  To fix this, you will need to edit your WFTPD.INI file, and in the [passwd] section, you should find an entry beginning with an '=' sign.  Remove this line - it's not connected to any user - and your problem should go away.  The current version of WFTPD will automatically remove these entries if it finds them.


Have you written any other servers?
I've written one other winsock program so far - "cooksock", which was a cookie server.  This reads in a file of "fortune cookie" type quotes, and for each connection received on port 17 (the well-known port for quotes), it sends out one of these quotes and then disconnects.

I don't think that a telnet server would be worth the effort it would require, since there are a lot of awkward decisions to be made as to how best to represent the DOS screen over a terminal line, especially when you cannot guarantee what type of terminal is at the other end.

There are other mail servers out there, and I'd be at quite a disadvantage trying to beat any of those.

I've been giving some consideration to writing a news server, but there's just no way it could happen on my current machine - I need more hard-drive space, faster processor, more memory, etc.  So, I'm hoping to get enough money in the coming weeks/months to buy myself a Pentium, at which point I can perhaps start work on the news server, not to mention producing version 2.0 a little sooner.


Frequently Asked Questions

Select the question you would like to ask, and the answer should pop up.

(Don't feel embarrassed if you have to ask any of these questions - if lots of other people hadn't asked them, they wouldn't be here.  And please email me at "alun@fc.net" if you don't understand the answers, or if you have a question that doesn't seem to be represented here.  Who knows, it may be a question that I forgot to put here, or one that will be in a future list?)

Q. How Do I Register?

Q. What Does Registration Get Me?

Q. Why did your email address change in this version?

Q. How do I get a new version of WFTPD?Q. Why is WFTPD 'crippleware'?

Q. What do you offer in the way of site licences?

Q. When I run your program, a dialog says I am missing PCTCPAPI.DLL - why?

Q. My server only allows one connection, before I have to restart it - why?

Q. Why can I only transfer about the first 32k of all files, or not transfer anything at all?

Q. Is my winsock stack faulty, since it won't work with your software?

Q. You say you require winsock version 1.1 compliance, but my stack is version 1.0.  Where can I get the updated version?

Q. I'm interested in learning winsock programming, or using your program commercially - can I get a copy of your source code?

Q. What's going to be in the next version?

Q. When are you going to ship the next version?

Q. What winsock stacks do you know of that I might fetch?

Q. Why do you have such a rude message in the unregistered version?  ("My customers don't appreciate seeing this when they log in, and some of them are very influential people!")

Q. Why do I get "no service record" warnings?

Q. How do I set my ftp server up for Mosaic / Netscape / Cello?

Q. I tried to pull down the list of users, but I don't get some of the users I know I've added - why?

Q. Have you written other servers?  Can you write a [telnet, news, mail] server?


Look for these features soon...

Please note that none of these features have yet been written or designed, and some of them may not yet make it into wftpd.  Please tell me which features you'd like to see.

(The ordering is most definitely not indicative of preference)

Suggested Features:

o Access limited at various times to different numbers of users
o Individual user rights on directories
o Tidy up on-screen log handling - perhaps allow access to the full log file?
o View Current connection status (using a button or a set of slider bars?).
o MESSAGE.FTP's name should perhaps be changable, and it should not be PUTtable.
o Check back on host address->name->address mapping for security's sake.

Bugs (or misfeatures) to (try and) fix:

None known yet!


The Rude Greeting Message
The "Rude" Greeting Message

The message that we are talking about, in case you forget, is:

This copy of WFTPD is NOT REGISTERED

This means that the institution, company or individual that you
are connected to is unable or unwilling to send $15 to the author
of this program.

To register this program, or receive new details on it, send email
to alun@fc.net (Alun Jones), or snail-mail to Alun Jones,
11028 Jollyville #260, Austin TX 78759-4876 USA

The only complaint I treat as valid is the complaint that you have not yet had time to send me the money, or that I have not yet responded to your registration.

The basic point is that WFTPD is NOT free software - it is shareware, which means you are welcome to distribute the unregistered version, and you are welcome to try the unregistered version out to see if the registered version is likely to fulfill your needs.  I would hope that you are either not likely to test unregistered shareware on any business clients, or that you keep them fully informed that they are participating in a test of unregistered shareware.  I doubt that you will find any test users that will protest at the simple message above.


What's new in this release
What's new in release 1.95

I think I've fixed the following problems:

o ABORting a transfer should work properly now.
o Leading spaces are not stripped from messages stored in the INI file
o MESSAGE.FTP is now displayed on all logins.
o "GET *.EXE" (NOT MGET) no longer produces "Internal Application Error".
o The scrollbar always shows up, even if WFTPD is started minimised.
o Memory leaks on closing WFTPD should be (mostly) fixed.
o Memory hogging is reduced, and logging is much improved, because I stopped fighting the system!

I also enabled these new options:

o Use the port address in the services file (if present), otherwise default to 21.
o PASV mode support (for Mosaic).
o Fetching files with full path names while maintaining security (for Mosaic).
o The Security options "Enable Security" and "Allow Anonymous" have moved to underneath the "Security ; General" dialog from the "Security ; User Security" dialog.
o The "Security ; General" dialog has an option to limit the number of users that can connect.  (Setting the limit to 0 makes it unlimited.  If you want to disable logins, simply close the ftp daemon!)
o All "Add/Alter" buttons now read "Update" so novice users can understand.
o I have tightened up the "PUT" functionality, so that hopefully it'll cause fewer problems.
o Directories don't show up any more in NLST results - only regular files.
o LIST and NLST results are now sorted before being output.
o LIST commands can no longer list directories you don't have access to (part one of beefier security)
o If users are added with no password, they get placed properly into the [passwd] section.

I have completely written the networking subsystem, so PUTting has sped up, and the greedy option now has no effect.  GET commands no longer tie up the machine, either!

This version seems to work well with Beta 14 and above of the Trumpet Winsock - Peter Tattam has fixed some messaging problems that were causing me trouble.


About the author

Alun Jones is an English programmer, who married an American PC specialist in October 1994.  He's very pleased that there have been some site licences that allowed him to get married and go on honeymoon without going too deeply into debt.  The next big site licence or source licence should allow him to buy a new machine, a new compiler, and a new operating system, so that he can produce both a Windows 3.1 version and an NT/Windows 95 version.

Alun appreciates all user feedback, and is smart enough to know that if he can fix a bug, it'll help him make more money because it's easier to sell a better program.  What he doesn't appreciate is people who complain about his program (especially in public forums), without first checking with him as to whether he might have already fixed the problem.  This is especially annoying when the bug referred to was fixed several months before - you have been warned!  :-)

What Alun really hates is Barney - the bloated purple styrofoam dinosaur.  Kids should be encouraged to imagine, yes, but they should lead their own imagining, not have it led by some overweight Jurassic remnant with an apparent IQ lower than the average speed limit in this country.

He's also not on the best of terms with whatever genius gave him a new phone number that used to belong to someone called "Alex Jones".  Reeal smart!


General Security Dialog

The General Security dialog is accessible from the Security menu, and has five items of interest, besides the usual OK and Cancel buttons:

"Enable Security" - when checked, wftpd will ensure that nobody logs in without entering a valid user name, and its associated password.  If not checked, users may log in with any name and password whatsoever, with full access to all areas of your disk.

"Allow Anonymous" - Anonymous ftp is the term for logging in to an ftp daemon as "anonymous", or "ftp", at which point you are asked to enter your email address as your password.  Hence, anyone can log in to your machine when this option is checked - they do not need to know a password, but they will be restricted by your choices in the User/Password Security dialog.

"Allow Uploads" - when checked, all users will be allowed to upload files to your machine.  When unchecked, wftpd will make your site "read-only".

"Allow Anonymous Uploads" - When checked, anonymous users will be allowed to upload files (so long as "Allow Uploads" is also checked, and obviously, they can't log in if "Allow Anonymous" isn't checked).  When unchecked, anonymous users will only be able to download files.

"Maximum number of users" - this is the largest number of users that may be logged into your server at any one time.  Each user requires one socket for his command and output connection, and each time they transfer a file, or do a directory listing, they will take up another socket for the duration of that transfer/listing.  By restricting the number of users that log in, you will make sure that your machine runs smoothly (it has less to do!), and that users will not face messages telling them that they cannot transfer a file because of a network error, when there are several users on at once.

Entering 0 as the maximum number of users sets the ftp server to accepting any and all incoming connections.  (If you want to set it to not allow any logins, simply close it down!)

"Timeout for inactive connections" - if a user stays logged in to your server, but does nothing, he's wasting one of your sockets, and hogging system resources.  You might want to put a value in here - often about 5 minutes (which is 300 seconds) should be sufficient for most users.  Once this period of time has gone by on any connection with no activity, the connection will be broken, and the user informed that he has been disconnected due to inactivity.  If you put a 0 here, then noone will be disconnected for timeouts.

Note that timeouts also catch connections that have died in unusual circumstances, and clears them up, too.


Registration Information

Order forms must accompany all registrations.  There are three different methods of receiving your software, with their own accompanying order forms, which can be found below.  If I receive a cheque or a purchase order without an order form (or which cannot easily be tied in to a previously received order form), it will be returned unprocessed.  Same goes for order forms received with no payment, or indication that payment is following.

If you have to send your order through a third party (i.e. a purchasing department), please impress upon them that they must include an order form, or that if one has already been sent, they must include enough information for me to track down that form.  This has happened on numerous occasions, and it's taking me far too long to process orders such as these.  So far I have received one purchase order in a language I don't understand, one order form with no payment in a language I don't understand, three order forms with no payment, two cheques with no order form, and several purchase orders that did not specify a delivery method.

Payment may be made either in U.S. dollars, or in pounds sterling (i.e. English money).  All cheques should be made out to "Alun Jones" - note the spelling - I am not named after any chimpunks, so don't try and make any cheques out to "Alvin" - you only make me mad :-)

The price for this software is either US $15, or G.B. £15.  Add 5 (dollars or pounds) if you want me to send you a disk with the software - if your delivery method is FTP or Email, delivery is free, as are upgrades (for the moment - this policy may change at a later date).  Whatever method you choose, I require that your payment be made at no cost to me.  For this reason, I cannot accept credit cards, foreign cash, cheques or money orders, or cheques or money orders that cannot be drawn without charge on a bank in the United States, or the United Kingdom.  If your cheque bounces, I will ask for a money order for the value of the cheque plus however much the bank charges me for the returned cheque.

The cost in pounds is slightly more expensive, but usually cheaper than getting a money order in dollars, apparently.  Please, if neither of these is your currency, make sure that your purchasing department knows the price of the software is based on one of these two currencies - occasionally, the value seems to have been converted to and fro in the purchasing process, and I end up with less money because of it!

Software is sent through your suggested delivery method soon after receiving either a cheque, cash, money order (for US dollars or English pounds), or a purchase order.  If you use a purchase order, make sure it clearly states that the order is for "WFTPD - Windows FTP Daemon" - I am not sufficiently trusting to assume that an order for "General Lab Supplies" covers my software (Yes, I've been sent one of those - happily, later I received a valid purchase order, and this person is currently a registered user).

The regular mail address for sending order forms, payments or purchase orders is:

Alun Jones
11028 Jollyville #260
Austin TX 78759-4876
USA

Or, if your payment is in pounds:

Alun Jones (WFTPD)
47 Sugden Road
Long Ditton
Surrey
KT7 0AD
UK

Order forms and purchase orders can also be faxed to me at (+1) (512) 346 2803.  E-mail correspondence for comments and suggestions should be sent to "alun@fc.net".  Note this is a change from my previous e-mail address.  (Why?  Click here)

It often helps me if you can tell me how you use the software - I have found some New and Innovative Uses for an FTP daemon out there.  This will allow me to determine whether all the features of the software are useful, or whether they need to be rewritten.

Click here for pricing on site licences.

The order forms are separately listed for:

Delivery by email or ftp

Delivery by 'regular' mail - this costs $5 or £5 extra, and frequently takes me longer to arrange.

Either of these order forms may be printed from Windows Help.  If you do not have a printer, please make sure that all the items listed on the order form are present in whatever you send to me to register.


Order Form for Delivery by FTP or Email
Order Form for Delivery by FTP or Email (version 1.96)

Alun Jones

11028 Jollyville #260

Austin, TX 78759-4876

Name: 	_______________________________________________

Company Name:  	_______________________________________________

Address:  	_______________________________________________

_______________________________________________

Phone Number:  	_______________________________________________

Delivery Method:	               E-Mail                   FTP      (mark at least one)

E-Mail Delivery by:	                   MIME                         UUencoded      (mark one)

E-mail Address:  	_______________________________________________

(If not Internet, please specify.)

(For FTP delivery, the following three entries are all required - I will not deliver wftpd to an anonymous account under any circumstances.  Please remember to be careful about upper/lower case distinctions)

FTP Site:	_______________________________________________

FTP User Name:	_______________________________________________

FTP Password:	_______________________________________________

QTY	Price Each	Total
	$15.00
Payment may also be made in pounds sterling, in which
case I use an exchange rate of one dollar to one pound.

Send this order form along with your check to:  Alun Jones, 11028 Jollyville #260, Austin, TX 78759-4876, USA.

Please contact Alun Jones at the above address or e-mail alun@fc.net for site licenses, comments or suggestions.

As this software is shareware, there is no warranty implied or otherwise, nor is support provided.  However, if you discover any bugs or problems please contact the developer at the above e-mail address.


Order Form for Delivery by 'Regular' Mail
Order Form for Delivery by 'Regular' Mail (version 1.96)

Alun Jones

11028 Jollyville #260

Austin, TX 78759-4876

Name: 	_______________________________________________

Company Name:  	_______________________________________________

Address:  	_______________________________________________

_______________________________________________

Phone Number:  	_______________________________________________

(The E-mail address is required if you wish to be kept informed of new versions.)

E-mail Address:  	_______________________________________________

(If not Internet, please specify.)

QTY	Price Each	Total
	$20.00
Payment may also be made in pounds sterling, in which
case I use an exchange rate of one dollar to one pound.

Send this order form along with your check to:  Alun Jones, 11028 Jollyville #260, Austin, TX 78759-4876, USA.  Upgrades cost $5 and can be requested from the same address.

Please contact Alun Jones at the above address or e-mail alun@fc.net for site licenses, comments or suggestions.

As this software is shareware, there is no warranty implied or otherwise, nor is support provided.  However, if you discover any bugs or problems please contact the developer at the above e-mail address.


Why is WFTPD crippled?
Many people use the term 'crippleware' to refer to software that is restricted in some way in its unregistered form, and some people feel that 'crippleware' should not be encouraged.  I also feel that this should be unnecessary, and the first few versions were not restricted in any way.  The first few versions also got only two or three registrations.  As an experiment, I decided to restrict the next version a little, and suddenly all sorts of people started to register.

My point here is that if I had not restricted the software, I would have received so few registrations that there would not be a WFTPD program.  One of my other previous programs (HP2PS, an HPGL to PostScript translator) was free, but asked people to donate a fair amount to me - it received precisely no money, and I have not produced a new version for over a year, and do not intend to.


What's New in Release 1.96

Netscape & Mosaic compatibility checked - everything seems to work okay now.

RFCs 1123 and 959 are now complied with - this should mean your client can talk to me quite happily.  If not, there's a chance your client software may not have full compliance with these RFCs!

The NLST command lists directories as well as files, so all your Mac users will be happy.

Each new connection results in a log message (If you log Logins), detailing the IP address of the client connecting to WFTPD.

3D Controls are added - you'll need to have a copy of CTL3DV2.DLL in your WINDOWS\SYSTEM directory and nowhere else!

My address has changed once again - now, I live in Austin.

Two new options on the General Security dialog - "Allow Uploads" and "Allow Anonymous Uploads" - these should be self explanatory, but are explained in more detail under the topic for the General Security Dialog.

MESSAGE.FTP bug fixed - there are now no spurious blank lines, or extra numbers sent in the message.

The CWD command now accepts strings ending in slashes.  (DOS doesn't!)

The bug whereby the user count was often exceeded with no users logged in has been fixed.

The occasional hanging of the ftp daemon has been traced, and fixed.  Hopefully this can be left running for weeks without causing trouble.

A timeout facility has been added.  The server is only fully RFC 1123 compliant when the timeout value is set to a non-zero value (setting it to zero simply disables the timeout).  Please use this feature, since it means that people will not be able to clog your server, nor will crashed connections keep hanging around.

Most of the response messages have been put into the resource portion of the executable, so that you can modify them with a resource editor.  If you edit these strings, please bear in mind that sequences beginning with a '%' character are special to C, and they should not be altered or transposed.  If you do this, the program will crash.

The Logging options have been moved to their own separate dialog - now, you can enable/disable several options without having to keep opening the Logging menu.

The log file itself is now sharable while the program is running, so you can read it in other programs while WFTPD runs!

On closing WFTPD down, all transfers are interrupted properly, and all control connections are closed safely.

Entering a command "dir c:\dos" is now the same as "dir c:\dos\*.*" (assuming the directory c:\dos exists, that is!)

Above all, this version should be much more stable than 1.95, which I admit was put out in a bit of a hurry.


Why do I get "no service record" warnings?
Prior to version 1.95, I simply used port 21 in TCP to listen for incoming ftp connections.  Many people asked to be able to start the ftp server listening on alternate ports - for example, to get around some firewall restrictions.  So, I figured, if I ask winsock what port it's been told "ftp" is, then users can easily change that value (usually in the "services" file).  It now turns out that many of you do not have this file, or have not got it in the right directory.  Each winsock is different, but the Trumpet Winsock (which I get more of these reports on) requires the "services" file to be in the same directory as "winsock.dll".  It may also benefit you to know that the protocol and hosts files should be in this directory too, on Trumpet Winsock.  If this information makes no sense, please read the instructions that are supplied with your winsock stack, and if that does not help, please contact your winsock supplier, since I don't know anything more than this.


Beta 12:

Oh my god, Im so damn stupid!!!  I finally worked out how to make PASV connections work - I was looking at it the wrong way round, which is why it only worked in loopback connections!  Please try it now - it should work properly.

Beta 11:

Ive hopefully fixed the directory listing with wildcards.

Ive added a check on the client disconnecting data on a send (e.g. if the clients disk fills up)

The title on the menubar is short and not so messy when minimised.

Ive added some compacting stuff - when windows runs out of memory, we should be a little friendlier.

As usual, please test with Netscape, et al, to see that its working fine.  Please report back, even if youre still getting unable to bind PASV socket

Beta 10:

I've attempted to make sure that no message is broken into more than one packet - it seems that the Tandem ftp client doesn't like this (so it's a non-conforming client, but I have to fix it).

Directory listings now work a bit better - you can now list a directory's contents by specifying its name - previously, specifying its name would just list its name.  Also fixed a transitory bug in beta 9, where simple listings with no path specified didn't work.

Gets and directory listings shouldn't be logged twice now - in theory, only once.

Beta 8:

Okay, now the log file closes and flushes properly - it turned out not to be a bug in Microsoft's flush on close, but to be a problem where it won't write if the bad bit is set on a stream.

Because of this, the log file is now sharable!  Yes, you can load it into Notepad while WFTPD is running with the log file open!  You may even be able to "GET" the logfile, although I haven't yet tested this.

Now, if you try to get a directory listing, and specify a single directory name on the command line (e.g. "DIR C:\DOS"), it'll list the contents of that directory, rather than just the directory name.

On closing down WFTPD, messages are sent to all connected users, interrupting their transfers, and telling them that the server is going off-line.  (Roughly the same code as timeouts)

Beta 7:

Believe it or not, security is now implemented!  I'll be sending you betas of version 2.0 sometime after we kick version 1.96 out the door.  This release is mainly so that you can all check that nothing has been broken in the general file transfer stuff.  I've got a compilation switch which disables security, which I've set right now, as I will for 1.96's release - so the code isn't in this version, but I am asking for your help in testing that I didn't comment out the useful stuff!

A bug was fixed in the logging - despite Microsoft's documentation, the fstream close() function does not flush buffers.  Adding the requisite flush() command fixed matters.  Log files should now write properly.

Logging Options dialog made slightly larger, so that letters don't get chopped off at the edges.

Beta 6:

Because of a one-character mistake (a '|' instead of an '&'), when Allow Uploads was unchecked, nothing at all could be done - file listings, fetches, nothing.  This has now been fixed.

Netscape 1.0N has been checked, and seems to work fine on my loopback connection.  It might be worth checking it on all other kinds of connections you can.

Also, on the RFC 1123 compatibility, type LOCAL 8 is now supported properly (it previously dropped through a 'case' statement, and produced a "Bad type" error)

A new way of doing binds is being tried - hopefully this will make PASV connections work right for everyone.

I've added 3D controls to WFTPD - it was insanely easy, really.

Pressing delete on the User Security screen when nothing was selected produced an assertion error.  Probably not dangerous, but I fixed it anyway.

Beta 5:

The "Allow Uploads" and its twin brother, the "Allow Anonymous Uploads" options now prevent or allow any action associated with writing to the local file store - uploads, renames, deletions, directory creation and deletion.

Bug fixed where the root directory could not be reached (it's the only patth that ends in a slash that is legal).

MESSAGE.FTP bugs fixed - no blank lines at the end, and it won't create a MESSAGE.FTP if one doesn't already exist.

Beta 4:

Hopefully, this beta is compliant with both RFC 959, and RFC 1123's section on FTP (I only found out about RFC 1123 December 8, 1994).  This required the following changes:

TYPE L 8 now supported.

Error reported when someone tries a transfer in STREAM mode without first sending either a PORT or PASV command.

150 response code for STOU changed to "150 FILE: pppp", where pppp is the unique filename.

Commands XCWD, ACCT and APPE added - ACCT does nothing, the rest should work.

The Idle Timeout, of course, is already present.

Log file: the log file is now done using fstream, which doesn't help users any more or less, but it's easier for me to work with!

Using fstream has, however, allowed the message.ftp stuff to output correctly (previously, it would insert the message number at a random point in the middle of the text).

The General Security dialog has a new check box, "Allow Anonymous Uploads".  When this is unchecked, anonymous users can't upload files.  Obviously, for an anonymous user to upload, this must be checked, and also the "Allow Uploads" and "Allow Anonymous" boxes must also be checked.  Please see if this works properly.

Beta 3:

NetScape, when reloading an ftp directory especially, has a nasty habit of doing a CWD with a \ at the end.  This is bad Juju in DOS (don't believe me?  Try it at the command line - even if CD \WINDOWS works, CD \WINDOWS\ doesn't!), so I take off any extra slashes.

The bind() debug statement has been moved to after the bind, not after the following send!  This was causing erroneous reporting of what error, and where, had occurred.It's pretty important this bind thing gets tracked down - I want to put out a product that I can say definitely works with Netscape, Mosaic and Cello, since they are the standard by which other programs are judged, and if they don't talk properly with me, I get the blame.

And, if the control connection is closed without a QUIT, I no longer try to send the farewell message - there's going to be nowhere to send it to!

Next Beta, I'm going to try to implement some of the requirements of RFC 1123, which clarifies some parts of the FTP spec (among others) - I wish I'd had this document a long time ago!

Beta 2:

If a new connection comes in, but we don't have enough sockets to cope, I handle it a little bit better than just hanging.  (It disconnects the new connection, but then - he wasn't going to be able to do anything anyway.

PASV command - the bind call is now debugged before and after, so that we can find why PASV isn't working on some sites.  (And it's not lack of sockets)

The TimeOut code should work for TimeOuts greater than 30 seconds.  Heh - I guess I should have more patience in testing :-)  (it's one of those two - byte / four - byte problems)

Beta 1:

I've been doing some more work on enhancing the recv/send loops - particularly, I've been making sure that my reads/writes from/to the disk are of a reasonable size - this should make the system less bound by the disk.

I've worked my butt off to try and get this thing finally and fully compatible with NetScape.  Hopefully they won't be releasing another new version that breaks it! :-)

The daemon should lose connections a little less often now, and should switch between multiple sessions much faster, not that anyone's likely to notice.

A timeout facility has been added - firstly, to get rid of people hogging your system, and secondly to get rid of dead connections that might previously have clogged your system.  I thoroughly recommend setting the timeout to a non-zero value (setting it to zero disables timeout).  Bear in mind that the granularity on this is 5 seconds.  The option is under General Security.

For people running read-only sites, a check-box has been added to General Security, to allow this protection.

I think I've finally fixed that nagging problem where the system would occasionally just send out the greeting message, and refuse to accept further logins.

Most of the messages that you would expect to modify are in resource strings - if you edit them, make sure that any format sequences (they start with the % character) stay the same, and in the same order - it's vital!

I've finally got so annoyed with having to go through the Logging menu several times when changing log options that I've created a dialog, "Log Options", which is where you'll find "Enable Logging", as well as all those items that you can log.  And, after reading some part of the Windows interface guide, I've put little ellipses (plural of ellipsis) after every menu string that produces a dialog.

In a fit of madness, I've also added code that should allow access through Netscape/Mosaic/etc to other drives - I simply check for a '|', and convert it to a ':'.  If anonymous users aren't restricted to home, they can now get at other drives.

Please also check on some of the speed of this ftp daemon - I haven't had much of a chance to do so, since my networking capabilities are somewhat limited right now (no job, no money, no new computer...)

Above all, put it through regular and irregular use, and see what happens - it's as important to report if problems don't happen, as it is to report those problems that do still exist - that way, I'm not worried about fixing old bugs that are already gone.

How this section will appear in final run: