Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/ftp_get_buffer.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 38 by hirohitohigashi, Sun Mar 1 15:51:51 2009 UTC revision 44 by hirohitohigashi, Tue Mar 3 15:06:37 2009 UTC
# Line 10  Line 10 
10  /***** Feature test switches ************************************************/  /***** Feature test switches ************************************************/
11  /***** System headers *******************************************************/  /***** System headers *******************************************************/
12  #include <unistd.h>  #include <unistd.h>
13    #include <string.h>
14  #include <sys/types.h>  #include <sys/types.h>
15  #include <sys/socket.h>  #include <sys/socket.h>
 #include <string.h>  
 #include <errno.h>  
16    
17    
18  /***** Local headers ********************************************************/  /***** Local headers ********************************************************/
# Line 32  Line 31 
31  /***** Global variables *****************************************************/  /***** Global variables *****************************************************/
32  /***** Signal catching functions ********************************************/  /***** Signal catching functions ********************************************/
33  /***** Local functions ******************************************************/  /***** Local functions ******************************************************/
 /***** Global functions *****************************************************/  
34    
35  /****************************************************************************/  /****************************************************************************/
36  /*! バッファへファイル取得  /*! バッファへリスト取得 作業ルーチン
37   *   *
38   *@param        ftp     LIBOFTPへのポインタ。   *@param        ftp     LIBOFTPへのポインタ。
39   *@param        fname   サーバ上のファイル名   *@param        cmd     コマンド (RETR|LIST|NLST)
40     *@param        fname   ファイル名または、グロブ。
41   *@param        buf     バッファへのポインタ   *@param        buf     バッファへのポインタ
42   *@param        bufsiz  バッファサイズ   *@param        bufsiz  バッファサイズ
43   *@retval       int     取得したバイト数 マイナス値ならエラーコード   *@retval       int     取得したバイト数 マイナス値ならエラーコード
44   *@note   *@note
45   */   */
46  int ftp_get_buffer( LIBOFTP *ftp, const char *fname, char *buf, int bufsiz )  static int ftp_get_buffer_main( LIBOFTP *ftp, const char *cmd, const char *fname, char *buf, int bufsiz )
47  {  {
48      int data_socket;      int data_socket;
49      char *p = buf;      char *p = buf;
# Line 54  int ftp_get_buffer( LIBOFTP *ftp, const Line 53  int ftp_get_buffer( LIBOFTP *ftp, const
53       * 受信準備       * 受信準備
54       */       */
55      if( ftp->flag_passive ) {      if( ftp->flag_passive ) {
56          data_socket = ftp_getready_pasv( ftp, "RETR", fname );          data_socket = ftp_getready_pasv( ftp, cmd, fname );
57      } else {      } else {
58          data_socket = ftp_getready_active( ftp, "RETR", fname );          data_socket = ftp_getready_active( ftp, cmd, fname );
59      }      }
60      if( data_socket < 0 ) {      if( data_socket < 0 ) {
61          return data_socket;          return data_socket;
# Line 136  int ftp_get_buffer( LIBOFTP *ftp, const Line 135  int ftp_get_buffer( LIBOFTP *ftp, const
135          return LIBOFTP_ERROR_BUFFER;          return LIBOFTP_ERROR_BUFFER;
136      }      }
137  }  }
138    
139    
140    
141    /***** Global functions *****************************************************/
142    
143    /****************************************************************************/
144    /*! バッファへファイル取得
145     *
146     *@param        ftp     LIBOFTPへのポインタ。
147     *@param        fname   サーバ上のファイル名
148     *@param        buf     バッファへのポインタ
149     *@param        bufsiz  バッファサイズ
150     *@retval       int     取得したバイト数 マイナス値ならエラーコード
151     *@note
152     */
153    int ftp_get_buffer( LIBOFTP *ftp, const char *fname, char *buf, int bufsiz )
154    {
155        return ftp_get_buffer_main( ftp, "RETR", fname, buf, bufsiz );
156    }
157    
158    
159    
160    /****************************************************************************/
161    /*! ディレクトリリスト(LIST) 取得
162     *
163     *@param        ftp     LIBOFTPへのポインタ。
164     *@param        fglob   ファイルリストグロブ (ex: *.txt) or NULL
165     *@param        buf     バッファへのポインタ
166     *@param        bufsiz  バッファサイズ
167     *@retval       int     エラーコード
168     *@note
169     */
170    int ftp_list( LIBOFTP *ftp, const char *fglob, char *buf, int bufsiz )
171    {
172        int ret;
173    
174        ret = ftp_get_buffer_main( ftp, "LIST", fglob, buf, bufsiz );
175        if( ret > 0 ) {
176            buf[ret] = 0;
177            return LIBOFTP_NOERROR;
178        }
179    
180        return ret;
181    }
182    
183    
184    
185    /****************************************************************************/
186    /*! ディレクトリリスト(NLST) 取得
187     *
188     *@param        ftp     LIBOFTPへのポインタ。
189     *@param        fglob   ファイルリストグロブ (ex: *.txt) or NULL
190     *@param        buf     バッファへのポインタ
191     *@param        bufsiz  バッファサイズ
192     *@retval       int     エラーコード
193     *@note
194     */
195    int ftp_nlist( LIBOFTP *ftp, const char *fglob, char *buf, int bufsiz )
196    {
197        int ret;
198    
199        ret = ftp_get_buffer_main( ftp, "NLST", fglob, buf, bufsiz );
200        if( ret > 0 ) {
201            buf[ret] = 0;
202            return LIBOFTP_NOERROR;
203        }
204    
205        return ret;
206    }

Legend:
Removed from v.38  
changed lines
  Added in v.44

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26