Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/ftp_rename.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 50 - (show annotations) (download) (as text)
Wed Dec 2 15:13:30 2009 UTC (14 years, 3 months ago) by hirohitohigashi
File MIME type: text/x-csrc
File size: 2737 byte(s)
add error check
1 /*
2 liboftp: this is an FTP library to simplify the work to a Developer
3 who want to work with FTP servers (RFC 959).
4
5 Copyright (c) 2009 hirohito higashi. All rights reserved.
6 This file is distributed under BSD license.
7 */
8
9
10 /***** Feature test switches ************************************************/
11 /***** System headers *******************************************************/
12 #include <stdio.h>
13
14
15 /***** Local headers ********************************************************/
16 #include "liboftp.h"
17 #include "sub.h"
18
19
20 /***** Constat values *******************************************************/
21 /***** Macros ***************************************************************/
22 /***** Typedefs *************************************************************/
23 /***** Function prototypes **************************************************/
24 /***** Local variables ******************************************************/
25 /***** Global variables *****************************************************/
26 /***** Signal catching functions ********************************************/
27 /***** Local functions ******************************************************/
28 /***** Global functions *****************************************************/
29
30 /****************************************************************************/
31 /*! ������������������������
32 *
33 *@param ftp LIBOFTP���������������������
34 *@param from ���������������������
35 *@param to ������������������������
36 *@retval int ������������������
37 *@note
38 */
39 int ftp_rename( LIBOFTP *ftp, const char *from, const char *to )
40 {
41 char str1[512];
42 int res;
43
44 if( ftp->socket < 0 ) return LIBOFTP_ERROR;
45
46 /*
47 * send RNFR command
48 */
49 snprintf( str1, sizeof(str1)-1, "RNFR %s\r\n", from );
50 if( ftp_send_command( ftp, str1 ) < 0 ) {
51 DEBUGPRINT1( "RNFR command sending error. %s\n", str1 );
52 return LIBOFTP_ERROR_OS;
53 }
54
55 res = ftp_receive_response( ftp, ftp->error_message, sizeof(ftp->error_message)-1 );
56 if( res != 350 ) { /* 350: Requested file action pending further information */
57 DEBUGPRINT1( "RNFR command response error. %d\n", res );
58 return res < 0? res: LIBOFTP_ERROR_PROTOCOL;
59 }
60
61 /*
62 * send RNTO command
63 */
64 snprintf( str1, sizeof(str1)-1, "RNTO %s\r\n", to );
65 if( ftp_send_command( ftp, str1 ) < 0 ) {
66 DEBUGPRINT1( "rename: RNTO command sending error. %s\n", str1 );
67 return LIBOFTP_ERROR_OS;
68 }
69
70 res = ftp_receive_response( ftp, ftp->error_message, sizeof(ftp->error_message)-1 );
71 if( res != 250 ) { /* 250: Requested file action okay, completed. */
72 DEBUGPRINT1( "RNTO command response error. %d\n", res );
73 return res < 0? res: LIBOFTP_ERROR_PROTOCOL;
74 }
75
76 return LIBOFTP_NOERROR;
77 }

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