These are the replys that may be sent from the FTP Server to an FTP Client.

Text enclosed in square brackets (such as [(guest access)]) may optionally
appear in the output stream.

Text enclosed within percent signs (such as %user_name%) are placeholders for
run-time dependent values (such as keithmo).  These values are:

        %anonymous_id%

                This is the identification sent as a "password"
                when an anonymous user logs in.

        %b1,b2,b3,b4,p1,p2%

                This is part of the response from a request to
                enter passive mode.  b1-b4 specify the local IP
                address for the passive data socket.  p1-p2
                specify the local port for the passive data
                socket.  All values are in network byte order.

        %command_name%

                The name of a command sent by the FTP client.

        %command_text%

                The entire text of a command sent by the FTP
                client.

        %connection_timeout%

                The idle-user timeout value (in seconds).

        %current_directory_name%

                A user's current directory.

        %custom_exit_message%

                The custom single-line exit message to send
                when a client QUITs.

        %custom_greeting_line_x%

                The custom multi-line greeting message to send
                when a new client connects.

        %directory_name%

                A directory name.

        %file_name%

                A file name.

        %form%

                A transfer form type.  This will always be
                "Nonprint".

        %host_name%

                The name of the local FTP Server host.

        %long_directory_listing%

                A long format directory listing.

        %major_ftp_server_version%

                The major FTP Server version number.

        %minor_ftp_server_version%

                The minor FTP Server version number.

        %ftp_server_version%

                %major_ftp_server_version%.%minor_ftp_server_version%

        %major_windows_version%

                The major Windows NT version number.

        %minor_windows_version%

                The minor Windows NT version number.

        %mode_type%

                A transfer mode type.  This will always be
                "STREAM".

        %struct%

                A transfer structure type.  This will always be
                "File".

        %type%

                A transfer type.  This will be either "ASCII" or
                "BINARY".

        %users_host_name%

                The connected FTP client's host name.

        %users_ip_address%

                The connected FTP client's IP address (in dot
                notation).

        %user_name%

                The connected users's name.

        %win32_error_text%

                A string of text from WINERROR.MC that describes
                a specific Win32 error condition (such as "Access
                is denied.").


*************************************
***                               ***
***  POSITIVE PRELIMINARY REPLIES ***
***                               ***
*************************************

125 Data connection already open; transfer starting.

        Indicates that a passive mode transfer has been initiated.

150 Opening %mode_type% mode data connection for %file_name%.

        Indicates that the server is opening a new data
        connection for the transfer of %file_name%.  Whenever a
        directory listing is requested, this message is sent with
        %file_name% set to "file list".

************************************
***                              ***
***  POSITIVE COMPLETION REPLIES ***
***                              ***
************************************

200 NOOP command successful.

        The NOOP command completed.

200 PORT command successful.

        The NOOP command completed.

200 Type set to %type%.

        The transfer type was set.

200 STRU %struct% ok.

        The transfer structure type was set.

200 MODE %mode_type% ok.

        The transfer mode was set.

200 ALLO command successful.

        The ALLO command completed.

202 ACCT command not implemented.

        The ACCT command is superfluous at this site.

202 SMNT command not implemented.

        The SMNT command is superfluous at this site.

202 SITE command not implemented.

        The SITE command is superfluous at this site.

211-%host_name% Windows NT FTP Server status:
    Version %major_ftp_server_version%.%minor_ftp_server_version%
    Connected to %users_host_name or %users_ip_address%
    Logged in as %user_name%
    TYPE: %type%, FORM: %form%, STRUcture: %struct%, transfer MODE: %mode_type%
    {No data connection or Data connection established}
211 End of status.

        This multi-line reply is sent whenever a STAT command is
        received with no arguments.  It indicates the general
        status of the FTP server and the current connection.

213-status of %file_or_directory_name%
%long_directory_listing%
213 End of Status.

        This multi-line reply is sent whenever a STAT command is
        received with an argument.  This functions similarly to
        DIR {arg}, except that the directory listing is sent over
        the command socket; a new data transfer socket is not
        created for the listing.

214-The following commands are recognized (* =>'s unimplemented).
   USER    PASS    ACCT    CWD     XCWD    CDUP    XCUP    SMNT
   QUIT    REIN    PORT    PASV    TYPE    STRU    MODE    RETR
   STOR    STOU    APPE    ALLO    REST*   RNFR    RNTO    ABOR*
   DELE    RMD     XRMD    MKD     XMKD    PWD     XPWD    LIST
   NLST    SITE    SYST    STAT    HELP    NOOP
214 HELP command successful.

        This multi-line reply is sent whenever a HELP command is
        received with no arguments.  It lists all available
        FTP Server commands.

214 Syntax: USER <sp> username

        This reply is sent whenever a HELP USER command is
        received.

214 Syntax: PASS <sp> password

        This reply is sent whenever a HELP PASS command is
        received.

214 Syntax: ACCT (specify account)

        This reply is sent whenever a HELP ACCT command is
        received.

214 Syntax: CWD [ <sp> directory-name ]

        This reply is sent whenever a HELP CWD command is
        received.

214 Syntax: XCWD [ <sp> directory-name ]

        This reply is sent whenever a HELP XCWD command is
        received.

214 Syntax: CDUP change to parent directory

        This reply is sent whenever a HELP CDUP command is
        received.

214 Syntax: XCUP change to parent directory

        This reply is sent whenever a HELP XCUP command is
        received.

214 Syntax: SMNT <sp> pathname

        This reply is sent whenever a HELP SMNT command is
        received.

214 Syntax: QUIT (terminate service)

        This reply is sent whenever a HELP QUIT command is
        received.

214 Syntax: REIN (reinitialize server state)

        This reply is sent whenever a HELP REIN command is
        received.

214 Syntax: PORT <sp> b0,b1,b2,b3,b4,b5

        This reply is sent whenever a HELP PORT command is
        received.

214 Syntax: PASV (set server in passive mode)

        This reply is sent whenever a HELP PASV command is
        received.

214 Syntax: TYPE <sp> [ A | E | I | L ]

        This reply is sent whenever a HELP TYPE command is
        received.

214 Syntax: STRU (specify file structure)

        This reply is sent whenever a HELP STRU command is
        received.

214 Syntax: MODE (specify transfer mode)

        This reply is sent whenever a HELP MODE command is
        received.

214 Syntax: RETR <sp> file-name

        This reply is sent whenever a HELP RETR command is
        received.

214 Syntax: STOR <sp> file-name

        This reply is sent whenever a HELP STOR command is received.


214 Syntax: STOU (store unique file)

        This reply is sent whenever a HELP STOU command is
        received.

214 Syntax: APPE <sp> file-name

        This reply is sent whenever a HELP APPE command is
        received.

214 Syntax: ALLO (allocate storage vacuously)

        This reply is sent whenever a HELP ALLO command is
        received.

214 Syntax: REST <sp> marker

        This reply is sent whenever a HELP REST command is
        received.

214 Syntax: RNFR <sp> file-name

        This reply is sent whenever a HELP RNFR command is
        received.

214 Syntax: RNTO <sp> file-name

        This reply is sent whenever a HELP RNTO command is
        received.

214 Syntax: ABOR (abort operation)

        This reply is sent whenever a HELP ABOR command is
        received.

214 Syntax: DELE <sp> file-name

        This reply is sent whenever a HELP DELE command is
        received.

214 Syntax: RMD <sp> path-name

        This reply is sent whenever a HELP RMD command is
        received.

214 Syntax: XRMD <sp> path-name

        This reply is sent whenever a HELP XRMD command is
        received.

214 Syntax: MKD <sp> path-name

        This reply is sent whenever a HELP MKD command is
        received.

214 Syntax: XMKD <sp> path-name

        This reply is sent whenever a HELP XMKD command is
        received.

214 Syntax: PWD (return current directory)

        This reply is sent whenever a HELP PWD command is
        received.

214 Syntax: XPWD (return current directory)

        This reply is sent whenever a HELP XPWD command is
        received.

214 Syntax: LIST [ <sp> path-name ]

        This reply is sent whenever a HELP LIST command is
        received.

214 Syntax: NLST [ <sp> path-name ]

        This reply is sent whenever a HELP NLST command is
        received.

214 Syntax: SITE (site-specific commands)

        This reply is sent whenever a HELP SITE command is
        received.

214 Syntax: SYST (get operating system type)

        This reply is sent whenever a HELP SYST command is
        received.

214 Syntax: STAT (get server status)

        This reply is sent whenever a HELP STAT command is
        received.

214 Syntax: HELP [ <sp> <string> ]

        This reply is sent whenever a HELP HELP command is
        received.

214 Syntax: NOOP

        This reply is sent whenever a HELP NOOP command is
        received.

214-The following SITE commands are recognized (* =>'s unimplemented).
   DIRSTYLE    CKM         HELP
214 HELP command successful.

        This multi-line reply is sent whenever a SITE HELP command is
        received with no arguments.  It lists all available
        site-specific FTP Server commands.

214 Syntax: SITE DIRSTYLE (toggle directory format)

        This reply is sent whenever a SITE HELP DIRSTYLE command
        is received.

214 Syntax: SITE CKM (toggle directory comments)

        This reply is sent whenever a SITE HELP CKM command
        is received.

214 Syntax: SITE HELP [ <sp> <string>]

        This reply is sent whenever a SITE HELP HELP command
        is received.

215 Windows_NT version %major_windows_version%.%minor_windows_version%

        This is sent as a response to the SYST command.

220-%host_name% Windows NT FTP Server (%ftp_server_version%)
 %custom_greeting_line_1%
 %custom_greeting_line_2%
            .
            .
            .
 %custom_greeting_line_N%
220 Service ready for new user.

        This multi-line reply is sent whenever a new FTP client
        connects to the server.  The custom greeting, if any,
        comes from the registry.

220 Service ready for new user.

        This single-line reply is sent after a connection has
        been reinitialized via the REIN command.

221 Goodbye.

        This is the default exit message sent in response to a
        QUIT command.

221 %custom_exit_message%

        This is the custom exit message sent in response to a
        QUIT command.

226 Transfer complete.

        This is sent after a successful data transfer.

227 Entering passive mode %b1,b2,b3,b4,p1,p2%

        This is sent after a PASV command has successfully
        created a new data socket.

230 Anonymous user logged in as %anonymous_id% [(guest access)].

        This indicates that an anonymous logon has succeeded.
        (guest access) will be displayed if the user has guest
        access.

230 User %user_name% logged in [(guest access)].

        This indicates that a non-anonymous logon has succeeded.
        (guest access) will be displayed if the user has guest
        access.

250 CWD command successful.

        Indicates the CWD command has completed.

250 RNTO command successful.

        Indicates the RNTO command has completed.

250 DELE command successful.

        Indicates the DELE command has completed.

250 RMD command successful.

        Indicates the RMD command has completed.

250 MKD command successful.

        Indicates the MKD command has completed.

257 "%current_directory_name%" is current directory.

        This is sent in response to a PWD command.


**************************************
***                                ***
***  POSITIVE INTERMEDIATE REPLIES ***
***                                ***
**************************************

331 Anonymous access allowed, send identity (e-mail name) as password.

        This indicates that a USER command with a user-name of
        "Anonymous" has been received and accepted.  This prompts
        the user to enter an identity (e-mail name) instead of
        a password.

331 Password required for %user_name%.

        This indicates that a USER command with a user-name other
        than "Anonymous" has been received and accepted.  This
        prompts the user to enter a password.

350 File exists, ready for destination name.

        Indicates that a RNFR command has completed.


**********************************************
***                                        ***
***  TRANSIENT NEGATIVE COMPLETION REPLIES ***
***                                        ***
**********************************************

421 Service not available, closing control connection.

        Indicates that the FTP Server is unable to accept new
        connections at this time.

421 Terminating connection.

        This is sent after a user has been forcibly disconnected.

421 Timeout (%connection_timeout% seconds): closing control connection.

        Indicates that the idle-user timeout period has expired
        for this connection.

425 Can't open data connection.

        Indicates that a new data connection could not be
        established to the FTP client.

426 Connection closed; transfer aborted.

        Indicates that an error occurred during a data transfer
        and the transfer was aborted.


**********************************************
***                                        ***
***  PERMANENT NEGATIVE COMPLETION REPLIES ***
***                                        ***
**********************************************

500 %command_text%: comamnd not understood.

        Either an unknown command was received by the FTP Server
        or the command had invalid parameters.

501 Unknown command %command_name%.

        A HELP command was received with a parameter specifying
        an unknown command.

502 %command_text% command not implemented.

        The specified command is not implemented by this
        FTP Server.

503 Bad sequence of commands.

        A RNTO command was received before a RNFR command.  A
        RNFR command must always preceed a RNTO command.

503 Login with USER first.

        A PASS command was received before a corresponding USER
        command.

504 Form must be N or T.

        An invalid form type was received in the TYPE command.

504 Type E not implemented.

        The E type was specified in a TYPE command.

504 Byte size must be 8.

        A byte size other than 8 was specified in a TYPE command.

504 Unimplemented STRU type.

        A structure type other than File was received in a STRU
        command.

504 Unimplemented MODE type.

        A mode type other than Stream was received in a MODE
        command.

530 Please login with USER and PASS.

        An unacceptable command was received before the user
        logged in.

530 User %user_name% cannot log in.

        The specified user cannot log in at this time.

530 User %user_name% cannot log in, home directory inaccessible.

        The specified user cannot log in because their home
        directory is inaccessible.

530 User %user_name% cannot log in, license quota exceeded.

        The specified user cannot log in due to license quota
        restrictions.

530 User %user_name% cannot log in, guest access not allowed.

        The specified user cannot log in because they provided a
        "guest" account, and guest access has been disabled.

550 %directory_name%: No such file or directory.

        The specified directory cannot be found.

550 %directory_name%: %win32_error_text%

        The specified directory cannot be accessed.

550 %file_name%: No such file or directory.

        The specified file cannot be found.

550 %file_name%: %win32_error_text%

        The specified file cannot be accessed.

