ftp.h
上传用户:pycemail
上传日期:2007-01-04
资源大小:329k
文件大小:6k
源码类别:

Ftp客户端

开发平台:

Unix_Linux

  1. /*
  2.  * ProFTPD - FTP server daemon
  3.  * Copyright (c) 1997, 1998 Public Flood Software
  4.  *  
  5.  * This program is free software; you can redistribute it and/or modify
  6.  * it under the terms of the GNU General Public License as published by
  7.  * the Free Software Foundation; either version 2 of the License, or
  8.  * (at your option) any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.
  18.  */
  19. /* FTP commands and responses (may not all be implemented)
  20.  *
  21.  * $Id: ftp.h,v 1.1.1.1 1998/10/18 02:24:41 flood Exp $
  22.  */
  23. #ifndef __FTP_H
  24. #define __FTP_H
  25. /* Commands (minimum required supported level) */
  26. #define C_USER "USER" /* Specify a username */
  27. #define C_PASS "PASS" /* Specify a password */
  28. #define C_ACCT "ACCT" /* Specify an account (not implemented) */
  29. #define C_CWD "CWD" /* Change working directory */
  30. #define C_XCWD "XCWD" /* Change working directory */
  31. #define C_CDUP "CDUP" /* Change CWD up one level */
  32. #define C_XCUP "XCUP" /* Change CWD up one level */
  33. #define C_SMNT "SMNT" /* Mount different file system data structure (not implemented) */
  34. #define C_REIN "REIN" /* Reinitialize account information (not supported) */
  35. #define C_QUIT "QUIT" /* Close control connection and logout (if no transfer pending) */
  36. #define C_PORT "PORT" /* PORT h1,h2,h3,h4,p1,p2 (specify User address/port for data connection) */
  37. #define C_PASV "PASV" /* Next transfer data connection is from client to server */
  38. #define C_TYPE "TYPE" /* A = ASCII, E = EBCDIC, I = Image, L<byte size> = Local byte size */
  39. #define C_STRU "STRU" /* File structure (not implemented) */
  40. #define C_MODE "MODE" /* Transfer Mode (S - Stream, B - Block, C - Compressed (not supported) */
  41. #define C_RETR "RETR" /* Retrieve a file (RETR name) */
  42. #define C_STOR "STOR" /* Store a file (STOR name) */
  43. #define C_STOU "STOU" /* Store unique */
  44. #define C_APPE "APPE" /* Append to the end of a file */
  45. #define C_ALLO "ALLO" /* Allocate storage space (not used) */
  46. #define C_REST "REST" /* Restart a transfer (REST marker) */
  47. #define C_RNFR "RNFR" /* Rename from (RNFR filename) */
  48. #define C_RNTO "RNTO" /* Rename to (RNTO filename) */
  49. #define C_ABOR "ABOR" /* Abort current operation */
  50. #define C_DELE "DELE" /* Delete a file */
  51. #define C_MDTM "MDTM" /* Modification time, NOT in RFC959. */
  52. #define C_RMD "RMD" /* Remove a directory */
  53. #define C_XRMD "XRMD" /* Remove a directory */
  54. #define C_MKD "MKD" /* Create a directory */
  55. #define C_XMKD "XMKD" /* Create a directory */
  56. #define C_PWD "PWD" /* Return current working directory */
  57. #define C_XPWD "XPWD" /* Return current working directory */
  58. #define C_SIZE "SIZE" /* Return the number of octets in a file */
  59. #define C_LIST "LIST" /* Return contents of PWD or specified dir */
  60. #define C_NLST "NLST" /* As list but returns names only */
  61. #define C_SITE "SITE" /* Site specific command */
  62. #define C_SYST "SYST" /* The type of OS (UNIX Type: L8) */
  63. #define C_STAT "STAT" /* Status */
  64. #define C_HELP "HELP" /* Help */
  65. #define C_NOOP "NOOP" /* Returns 200 and does nothing */
  66. #define C_ANY "*" /* Special "wildcard" matching command */
  67. /* Command groupings */
  68. #define G_NONE NULL
  69. #define G_DIRS "DIRS" /* LIST, NLST */
  70. #define G_READ "READ" /* RETR, etc */
  71. #define G_WRITE "WRITE" /* WRITE, etc */
  72. /* Responses */
  73. #define R_110 "110" /* Restart marker reply (MARK yyyy = mmmm) */
  74. #define R_120 "120" /* Svc ready in nnn minutes */
  75. #define R_125 "125" /* Data connection already open; starting */
  76. #define R_150 "150" /* File status ok; opening data conn */
  77. #define R_200 "200" /* 'Generic' command ok */
  78. #define R_202 "202" /* Command not implemented, superflous at this site */
  79. #define R_211 "211" /* System status or system help reply */
  80. #define R_212 "212" /* Directory status */
  81. #define R_213 "213" /* File status */
  82. #define R_214 "214" /* Help message (how to use server or non-standard command) */
  83. #define R_215 "215" /* NAME system type.  NAME == Official system name */
  84. #define R_220 "220" /* Service ready for new user. */
  85. #define R_221 "221" /* Service closing control connection, as per normal */
  86. #define R_225 "225" /* Data connection open; no transfer in progress */
  87. #define R_226 "226" /* Closing data connection.  File transfer/abort successful */
  88. #define R_227 "227" /* Entering passive mode (h1,h2,h3,h4,p1,p2) */
  89. #define R_230 "230" /* User logged in, proceed */
  90. #define R_250 "250" /* Requested file action okay, completed. */
  91. #define R_257 "257" /* "PATHNAME" created. */
  92. #define R_331 "331" /* User name okay, need password. */
  93. #define R_332 "332" /* Need account for login. */
  94. #define R_350 "350" /* Requested file action pending further info */
  95. #define R_421 "421" /* Service not available, closing control connection (service is about to be shutdown) */
  96. #define R_425 "425" /* Can't open data connection */
  97. #define R_426 "426" /* Connection closed; transfer aborted */
  98. #define R_450 "450" /* Requested file action not taken (file unavailable; busy) */
  99. #define R_451 "451" /* Requested action aborted; local error in processing */
  100. #define R_452 "452" /* Requested action not taken; insufficient storage space */
  101. #define R_500 "500" /* Syntax error, command unrecognized */
  102. #define R_501 "501" /* Syntax error in parameters or arguments */
  103. #define R_502 "502" /* Command not implemented */
  104. #define R_503 "503" /* Bad sequence of commands */
  105. #define R_504 "504" /* Command not implemented for that parameter */
  106. #define R_530 "530" /* Not logged in */
  107. #define R_532 "532" /* Need account for storing files */
  108. #define R_550 "550" /* Requested action not taken. No access, etc */
  109. #define R_551 "551" /* Requested action not taken, page type unknown */
  110. #define R_552 "552" /* Requested file action aborted, exceeding storage allocation */
  111. #define R_553 "553" /* Requested action not taken, file name not allowed */
  112. #define R_DUP NULL /* Duplicate last numeric in ml response */
  113. #endif /* __FTP_H */