:tocdepth: 3

base/protocols/ftp/utils-commands.bro
=====================================
.. bro:namespace:: FTP


:Namespace: FTP
:Source File: :download:`/scripts/base/protocols/ftp/utils-commands.bro`

Summary
~~~~~~~
Options
#######
================================================================= ===========================================================
:bro:id:`FTP::cmd_reply_code`: :bro:type:`set` :bro:attr:`&redef` Possible response codes for a wide variety of FTP commands.
================================================================= ===========================================================

Types
#####
=============================================== ====================================================================
:bro:type:`FTP::CmdArg`: :bro:type:`record`     
:bro:type:`FTP::PendingCmds`: :bro:type:`table` Structure for tracking pending commands in the event that the client
                                                sends a large number of commands before the server has a chance to 
                                                reply.
=============================================== ====================================================================


Detailed Interface
~~~~~~~~~~~~~~~~~~
Options
#######
.. bro:id:: FTP::cmd_reply_code

   :Type: :bro:type:`set` [:bro:type:`string`, :bro:type:`count`]
   :Attributes: :bro:attr:`&redef`
   :Default:

   ::

      {
         ["STOR", 550] ,
         ["STOR", 110] ,
         ["PASV", 530] ,
         ["DELE", 450] ,
         ["CDUP", 250] ,
         ["APPE", 426] ,
         ["SYST", 501] ,
         ["MLSD", 150] ,
         ["APPE", 125] ,
         ["RNFR", 501] ,
         ["RETR", 125] ,
         ["MDTM", 550] ,
         ["LPRT", 500] ,
         ["USER", 501] ,
         ["STAT", 211] ,
         ["MDTM", 501] ,
         ["SIZE", 213] ,
         ["MLSD", 226] ,
         ["APPE", 553] ,
         ["USER", 331] ,
         ["STOU", 450] ,
         ["RNTO", 421] ,
         ["MODE", 421] ,
         ["LIST", 226] ,
         ["ACCT", 230] ,
         ["CWD", 250] ,
         ["APPE", 425] ,
         ["APPE", 502] ,
         ["NLST", 501] ,
         ["CDUP", 501] ,
         ["FEAT", 211] ,
         ["CDUP", 550] ,
         ["ALLO", 504] ,
         ["ALLO", 421] ,
         ["RETR", 530] ,
         ["QUIT", 0] ,
         ["STOU", 501] ,
         ["HELP", 200] ,
         ["RNFR", 550] ,
         ["MLSD", 550] ,
         ["MODE", 200] ,
         ["SMNT", 502] ,
         ["SITE", 202] ,
         ["MACB", 550] ,
         ["RNFR", 500] ,
         ["MKD", 421] ,
         ["SMNT", 500] ,
         ["STOR", 150] ,
         ["OPTS", 200] ,
         ["DELE", 502] ,
         ["RMD", 500] ,
         ["ABOR", 500] ,
         ["SMNT", 202] ,
         ["<init>", 220] ,
         ["LIST", 500] ,
         ["RETR", 110] ,
         ["STAT", 421] ,
         ["APPE", 500] ,
         ["RNTO", 250] ,
         ["RMD", 502] ,
         ["CDUP", 502] ,
         ["<init>", 0] ,
         ["REIN", 421] ,
         ["STAT", 500] ,
         ["NLST", 530] ,
         ["STRU", 501] ,
         ["LIST", 426] ,
         ["LIST", 125] ,
         ["APPE", 226] ,
         ["RETR", 226] ,
         ["ABOR", 225] ,
         ["MLSD", 500] ,
         ["REIN", 120] ,
         ["PASV", 501] ,
         ["TYPE", 530] ,
         ["OPTS", 501] ,
         ["RETR", 426] ,
         ["RNTO", 553] ,
         ["NLST", 426] ,
         ["STOR", 553] ,
         ["RETR", 250] ,
         ["STOR", 530] ,
         ["HELP", 501] ,
         ["CLNT", 200] ,
         ["CWD", 502] ,
         ["APPE", 550] ,
         ["STOU", 226] ,
         ["SITE", 214] ,
         ["USER", 500] ,
         ["APPE", 501] ,
         ["QUIT", 500] ,
         ["USER", 421] ,
         ["LIST", 502] ,
         ["MLSD", 501] ,
         ["NOOP", 500] ,
         ["NLST", 421] ,
         ["PORT", 421] ,
         ["NLST", 125] ,
         ["APPE", 150] ,
         ["SMNT", 250] ,
         ["STOU", 553] ,
         ["ALLO", 202] ,
         ["RNTO", 532] ,
         ["RNFR", 450] ,
         ["SITE", 530] ,
         ["OPTS", 451] ,
         ["APPE", 451] ,
         ["SYST", 500] ,
         ["LIST", 421] ,
         ["NOOP", 421] ,
         ["MDTM", 213] ,
         ["ACCT", 530] ,
         ["MKD", 530] ,
         ["ALLO", 501] ,
         ["PWD", 500] ,
         ["MLST", 501] ,
         ["STOR", 552] ,
         ["PASV", 421] ,
         ["HELP", 421] ,
         ["PASS", 501] ,
         ["TYPE", 501] ,
         ["STOU", 552] ,
         ["MKD", 257] ,
         ["STOU", 452] ,
         ["ACCT", 501] ,
         ["CDUP", 500] ,
         ["MLST", 250] ,
         ["RMD", 250] ,
         ["FEAT", 500] ,
         ["MACB", 200] ,
         ["PASS", 421] ,
         ["RETR", 150] ,
         ["RETR", 500] ,
         ["MODE", 530] ,
         ["PORT", 500] ,
         ["PWD", 502] ,
         ["DELE", 501] ,
         ["RNTO", 502] ,
         ["STOR", 450] ,
         ["STOU", 110] ,
         ["STOU", 425] ,
         ["CDUP", 200] ,
         ["QUIT", 221] ,
         ["APPE", 552] ,
         ["NLST", 550] ,
         ["STOU", 421] ,
         ["EPSV", 501] ,
         ["STOU", 451] ,
         ["RMD", 530] ,
         ["MODE", 500] ,
         ["MLST", 500] ,
         ["STOU", 125] ,
         ["PASS", 202] ,
         ["MLST", 226] ,
         ["MKD", 502] ,
         ["<init>", 120] ,
         ["STOR", 532] ,
         ["PASS", 500] ,
         ["SYST", 421] ,
         ["TYPE", 421] ,
         ["STAT", 213] ,
         ["STRU", 500] ,
         ["RMD", 421] ,
         ["STRU", 421] ,
         ["CDUP", 530] ,
         ["PASS", 332] ,
         ["LIST", 250] ,
         ["CWD", 550] ,
         ["FEAT", 502] ,
         ["MDTM", 500] ,
         ["ALLO", 200] ,
         ["REIN", 500] ,
         ["STRU", 504] ,
         ["HELP", 502] ,
         ["SMNT", 501] ,
         ["APPE", 450] ,
         ["STOU", 551] ,
         ["NLST", 226] ,
         ["MODE", 502] ,
         ["RETR", 550] ,
         ["STOU", 250] ,
         ["SITE", 502] ,
         ["STRU", 530] ,
         ["MLST", 550] ,
         ["STOR", 421] ,
         ["RNFR", 530] ,
         ["EPSV", 500] ,
         ["SMNT", 530] ,
         ["PWD", 550] ,
         ["STAT", 502] ,
         ["STOR", 426] ,
         ["ABOR", 226] ,
         ["MLSD", 250] ,
         ["SITE", 200] ,
         ["MACB", 500] ,
         ["ALLO", 500] ,
         ["STOR", 451] ,
         ["<missing>", 0] ,
         ["REST", 421] ,
         ["PORT", 530] ,
         ["TYPE", 200] ,
         ["RNTO", 500] ,
         ["REIN", 502] ,
         ["NLST", 450] ,
         ["DELE", 530] ,
         ["USER", 230] ,
         ["RNTO", 503] ,
         ["LIST", 450] ,
         ["REST", 502] ,
         ["HELP", 211] ,
         ["EPRT", 500] ,
         ["RMD", 501] ,
         ["STOU", 532] ,
         ["NLST", 425] ,
         ["SITE", 500] ,
         ["CWD", 421] ,
         ["STOR", 125] ,
         ["SMNT", 550] ,
         ["APPE", 530] ,
         ["ABOR", 501] ,
         ["RNTO", 530] ,
         ["REST", 501] ,
         ["SIZE", 550] ,
         ["MODE", 504] ,
         ["STOU", 426] ,
         ["APPE", 551] ,
         ["SYST", 530] ,
         ["ALLO", 530] ,
         ["STAT", 212] ,
         ["REST", 350] ,
         ["DELE", 500] ,
         ["EPSV", 229] ,
         ["CLNT", 500] ,
         ["MKD", 550] ,
         ["STOU", 500] ,
         ["APPE", 250] ,
         ["RETR", 451] ,
         ["CWD", 501] ,
         ["PASS", 230] ,
         ["ACCT", 503] ,
         ["PASV", 227] ,
         ["PASS", 530] ,
         ["USER", 332] ,
         ["REST", 500] ,
         ["RMD", 550] ,
         ["ACCT", 202] ,
         ["DELE", 250] ,
         ["STOR", 551] ,
         ["SYST", 215] ,
         ["STOU", 550] ,
         ["STAT", 450] ,
         ["LIST", 501] ,
         ["LIST", 425] ,
         ["RETR", 501] ,
         ["MKD", 501] ,
         ["TYPE", 500] ,
         ["RETR", 425] ,
         ["STOR", 250] ,
         ["REST", 200] ,
         ["STAT", 530] ,
         ["HELP", 214] ,
         ["SITE", 501] ,
         ["NLST", 451] ,
         ["STOR", 501] ,
         ["SIZE", 501] ,
         ["EPRT", 522] ,
         ["SIZE", 500] ,
         ["LPRT", 501] ,
         ["PWD", 501] ,
         ["NLST", 502] ,
         ["LIST", 150] ,
         ["NLST", 500] ,
         ["SYST", 502] ,
         ["PWD", 257] ,
         ["LIST", 550] ,
         ["EPRT", 501] ,
         ["NOOP", 200] ,
         ["RETR", 450] ,
         ["CWD", 500] ,
         ["APPE", 421] ,
         ["ACCT", 421] ,
         ["PASV", 502] ,
         ["REIN", 220] ,
         ["NLST", 250] ,
         ["CWD", 530] ,
         ["RNTO", 501] ,
         ["RETR", 421] ,
         ["ACCT", 500] ,
         ["ABOR", 421] ,
         ["MODE", 501] ,
         ["TYPE", 504] ,
         ["RNFR", 350] ,
         ["STOR", 226] ,
         ["<init>", 421] ,
         ["REST", 530] ,
         ["LPRT", 521] ,
         ["PWD", 421] ,
         ["APPE", 532] ,
         ["STOR", 452] ,
         ["STOU", 530] ,
         ["PASV", 500] ,
         ["RNFR", 421] ,
         ["STRU", 200] ,
         ["PORT", 200] ,
         ["STOR", 425] ,
         ["STAT", 501] ,
         ["DELE", 421] ,
         ["RNFR", 502] ,
         ["LIST", 451] ,
         ["STOR", 500] ,
         ["USER", 530] ,
         ["EPRT", 200] ,
         ["APPE", 452] ,
         ["CDUP", 421] ,
         ["NLST", 150] ,
         ["SMNT", 421] ,
         ["PORT", 501] ,
         ["DELE", 550] ,
         ["MLST", 150] ,
         ["ABOR", 502] ,
         ["MKD", 500] ,
         ["HELP", 500] ,
         ["STOU", 150] ,
         ["PASS", 503] ,
         ["LIST", 530] 
      }

   Possible response codes for a wide variety of FTP commands.

Types
#####
.. bro:type:: FTP::CmdArg

   :Type: :bro:type:`record`

      ts: :bro:type:`time`
         Time when the command was sent.

      cmd: :bro:type:`string` :bro:attr:`&default` = ``"<unknown>"`` :bro:attr:`&optional`
         Command.

      arg: :bro:type:`string` :bro:attr:`&default` = ``""`` :bro:attr:`&optional`
         Argument for the command if one was given.

      seq: :bro:type:`count` :bro:attr:`&default` = ``0`` :bro:attr:`&optional`
         Counter to track how many commands have been executed.


.. bro:type:: FTP::PendingCmds

   :Type: :bro:type:`table` [:bro:type:`count`] of :bro:type:`FTP::CmdArg`

   Structure for tracking pending commands in the event that the client
   sends a large number of commands before the server has a chance to 
   reply.


