| 1 |
#include <stdio.h> |
| 2 |
#include <stdlib.h> |
| 3 |
|
| 4 |
#include "liboftp.h" |
| 5 |
|
| 6 |
|
| 7 |
#define HOSTNAME "YOUR FTP HOSTNAME HERE" |
| 8 |
#define USERNAME "USER NAME HERE" |
| 9 |
#define PASSWORD "PASSWORD HERE" |
| 10 |
|
| 11 |
|
| 12 |
int total_err = 0; |
| 13 |
|
| 14 |
void err_handle( int err, LIBOFTP *ftp ) |
| 15 |
{ |
| 16 |
printf( "===> error code %d", err ); |
| 17 |
if( err < 0 ) { |
| 18 |
total_err++; |
| 19 |
printf( " : %s", ftp->error_message ); |
| 20 |
} |
| 21 |
printf( "\n\n" ); |
| 22 |
} |
| 23 |
|
| 24 |
|
| 25 |
|
| 26 |
int main() |
| 27 |
{ |
| 28 |
LIBOFTP ftp; |
| 29 |
int err; |
| 30 |
|
| 31 |
ftp_initialize( &ftp ); |
| 32 |
|
| 33 |
printf( "=====[ Connect and login ]=====\n" ); |
| 34 |
printf( "<=== Trying ftp_open()\n" ); |
| 35 |
err = ftp_open( &ftp, HOSTNAME, 0 ); |
| 36 |
err_handle( err, &ftp ); |
| 37 |
|
| 38 |
printf( "<=== Trying ftp_user()\n" ); |
| 39 |
err = ftp_user( &ftp, USERNAME, PASSWORD ); |
| 40 |
err_handle( err, &ftp ); |
| 41 |
|
| 42 |
err = ftp_passive( &ftp, 1 ); |
| 43 |
|
| 44 |
printf( "<=== Trying ftp_type()\n" ); |
| 45 |
err = ftp_type( &ftp, "image" ); |
| 46 |
err_handle( err, &ftp ); |
| 47 |
|
| 48 |
|
| 49 |
printf( "=====[ List directory ]=====\n" ); |
| 50 |
printf( "<=== Trying ftp_list()\n" ); |
| 51 |
{ |
| 52 |
char buf[10240]; |
| 53 |
err = ftp_list( &ftp, 0, buf, sizeof(buf) ); |
| 54 |
printf( "directry list: '%s'\n", buf ); |
| 55 |
} |
| 56 |
err_handle( err, &ftp ); |
| 57 |
printf( "<=== Trying ftp_nlist()\n" ); |
| 58 |
{ |
| 59 |
char buf[10240]; |
| 60 |
err = ftp_nlist( &ftp, 0, buf, sizeof(buf) ); |
| 61 |
printf( "directry nlist: '%s'\n", buf ); |
| 62 |
} |
| 63 |
err_handle( err, &ftp ); |
| 64 |
|
| 65 |
|
| 66 |
printf( "=====[ put/get commands ]=====\n" ); |
| 67 |
printf( "<=== Trying ftp_put_buffer()\n" ); |
| 68 |
{ |
| 69 |
char buf[] = "The quick brown fox jumps over the lazy dogs.\n"; |
| 70 |
err = ftp_put_buffer( &ftp, buf, sizeof(buf)-1, "test.txt" ); |
| 71 |
} |
| 72 |
err_handle( err, &ftp ); |
| 73 |
|
| 74 |
printf( "<=== Trying ftp_append_buffer()\n" ); |
| 75 |
{ |
| 76 |
char buf[] = "Boz Scaggs. Live at great american music hall, San Fransisco.\n"; |
| 77 |
err = ftp_append_buffer( &ftp, buf, sizeof(buf)-1, "test.txt" ); |
| 78 |
} |
| 79 |
err_handle( err, &ftp ); |
| 80 |
|
| 81 |
printf( "<=== Trying ftp_get_buffer()\n" ); |
| 82 |
{ |
| 83 |
char buf[1024]; |
| 84 |
err = ftp_get_buffer( &ftp, "test.txt", buf, sizeof(buf) ); |
| 85 |
} |
| 86 |
err_handle( err, &ftp ); |
| 87 |
|
| 88 |
printf( "<=== Trying ftp_get_file()\n" ); |
| 89 |
err = ftp_get_file( &ftp, "test.txt", "test1.txt" ); |
| 90 |
err_handle( err, &ftp ); |
| 91 |
|
| 92 |
printf( "<=== Trying ftp_put_file()\n" ); |
| 93 |
err = ftp_put_file( &ftp, "test1.txt", "test2.txt" ); |
| 94 |
err_handle( err, &ftp ); |
| 95 |
|
| 96 |
|
| 97 |
printf( "=====[ Directory commands ]=====\n" ); |
| 98 |
printf( "<=== Trying ftp_pwd()\n" ); |
| 99 |
{ |
| 100 |
char buf[512]; |
| 101 |
err = ftp_pwd( &ftp, buf, sizeof(buf) ); |
| 102 |
if( err == 0 ) printf( "Current Directory is '%s'\n", buf ); |
| 103 |
} |
| 104 |
err_handle( err, &ftp ); |
| 105 |
|
| 106 |
printf( "<=== Trying ftp_mkdir()\n" ); |
| 107 |
err = ftp_mkdir( &ftp, "testdir" ); |
| 108 |
err_handle( err, &ftp ); |
| 109 |
|
| 110 |
printf( "<=== Trying ftp_cd()\n" ); |
| 111 |
err = ftp_cd( &ftp, "testdir" ); |
| 112 |
err_handle( err, &ftp ); |
| 113 |
err = ftp_cd( &ftp, ".." ); |
| 114 |
err_handle( err, &ftp ); |
| 115 |
|
| 116 |
printf( "<=== Trying ftp_rmdir()\n" ); |
| 117 |
err = ftp_rmdir( &ftp, "testdir" ); |
| 118 |
err_handle( err, &ftp ); |
| 119 |
|
| 120 |
|
| 121 |
|
| 122 |
printf( "=====[ Other commands ]=====\n" ); |
| 123 |
printf( "<=== Trying ftp_rename()\n" ); |
| 124 |
err = ftp_rename( &ftp, "test.txt", "test1.txt" ); |
| 125 |
err_handle( err, &ftp ); |
| 126 |
|
| 127 |
printf( "<=== Trying ftp_site()\n" ); |
| 128 |
err = ftp_site( &ftp, "chmod 700 test1.txt" ); |
| 129 |
err_handle( err, &ftp ); |
| 130 |
|
| 131 |
printf( "<=== Trying ftp_delete()\n" ); |
| 132 |
err = ftp_delete( &ftp, "test1.txt" ); |
| 133 |
err_handle( err, &ftp ); |
| 134 |
|
| 135 |
|
| 136 |
|
| 137 |
printf( "<=== Trying ftp_quit()\n" ); |
| 138 |
err = ftp_quit( &ftp ); |
| 139 |
err_handle( err, &ftp ); |
| 140 |
|
| 141 |
printf( "Total error(s): %d\n", total_err ); |
| 142 |
|
| 143 |
return 0; |
| 144 |
} |