summaryrefslogtreecommitdiff
path: root/networking/ftpgetput.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-01-11 16:50:23 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-01-11 16:50:23 +0000
commit8e9ccba371480fb1fb3da9235fabdbb7861523c3 (patch)
tree369636a4a765a571e1c6a6ecf2a52ca0131cc90e /networking/ftpgetput.c
parent085231fbbad159d2275cbd5ecdcf4732512bb80f (diff)
downloadbusybox-w32-8e9ccba371480fb1fb3da9235fabdbb7861523c3.tar.gz
busybox-w32-8e9ccba371480fb1fb3da9235fabdbb7861523c3.tar.bz2
busybox-w32-8e9ccba371480fb1fb3da9235fabdbb7861523c3.zip
ipv6-ization efforts continue. Few bugs are found,
unknown number likely introduced...
Diffstat (limited to 'networking/ftpgetput.c')
-rw-r--r--networking/ftpgetput.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c
index 9e64ff98a..9086cb126 100644
--- a/networking/ftpgetput.c
+++ b/networking/ftpgetput.c
@@ -19,7 +19,7 @@
19typedef struct ftp_host_info_s { 19typedef struct ftp_host_info_s {
20 char *user; 20 char *user;
21 char *password; 21 char *password;
22 struct sockaddr_in *s_in; 22 struct len_and_sockaddr *lsa;
23} ftp_host_info_t; 23} ftp_host_info_t;
24 24
25static char verbose_flag; 25static char verbose_flag;
@@ -88,8 +88,8 @@ static int xconnect_ftpdata(ftp_host_info_t *server, char *buf)
88 *buf_ptr = '\0'; 88 *buf_ptr = '\0';
89 port_num += xatoul_range(buf_ptr + 1, 0, 255) * 256; 89 port_num += xatoul_range(buf_ptr + 1, 0, 255) * 256;
90 90
91 server->s_in->sin_port = htons(port_num); 91 set_port(server->lsa, htons(port_num));
92 return xconnect_tcp_v4(server->s_in); 92 return xconnect_stream(server->lsa);
93} 93}
94 94
95static FILE *ftp_login(ftp_host_info_t *server) 95static FILE *ftp_login(ftp_host_info_t *server)
@@ -98,9 +98,9 @@ static FILE *ftp_login(ftp_host_info_t *server)
98 char buf[512]; 98 char buf[512];
99 99
100 /* Connect to the command socket */ 100 /* Connect to the command socket */
101 control_stream = fdopen(xconnect_tcp_v4(server->s_in), "r+"); 101 control_stream = fdopen(xconnect_stream(server->lsa), "r+");
102 if (control_stream == NULL) { 102 if (control_stream == NULL) {
103 /* Extremely unlikely */ 103 /* fdopen failed - extremely unlikely */
104 bb_perror_nomsg_and_die(); 104 bb_perror_nomsg_and_die();
105 } 105 }
106 106
@@ -304,7 +304,6 @@ int ftpgetput_main(int argc, char **argv)
304 const char *port = "ftp"; 304 const char *port = "ftp";
305 /* socket to ftp server */ 305 /* socket to ftp server */
306 FILE *control_stream; 306 FILE *control_stream;
307 struct sockaddr_in s_in;
308 /* continue previous transfer (-c) */ 307 /* continue previous transfer (-c) */
309 ftp_host_info_t *server; 308 ftp_host_info_t *server;
310 309
@@ -347,12 +346,10 @@ int ftpgetput_main(int argc, char **argv)
347 /* We want to do exactly _one_ DNS lookup, since some 346 /* We want to do exactly _one_ DNS lookup, since some
348 * sites (i.e. ftp.us.debian.org) use round-robin DNS 347 * sites (i.e. ftp.us.debian.org) use round-robin DNS
349 * and we want to connect to only one IP... */ 348 * and we want to connect to only one IP... */
350 server->s_in = &s_in; 349 server->lsa = host2sockaddr(argv[0], bb_lookup_port(port, "tcp", 21));
351 bb_lookup_host(&s_in, argv[0]);
352 s_in.sin_port = bb_lookup_port(port, "tcp", 21);
353 if (verbose_flag) { 350 if (verbose_flag) {
354 printf("Connecting to %s[%s]:%d\n", 351 printf("Connecting to %s [%s]\n", argv[0],
355 argv[0], inet_ntoa(s_in.sin_addr), ntohs(s_in.sin_port)); 352 xmalloc_sockaddr2dotted(&server->lsa->sa, server->lsa->len));
356 } 353 }
357 354
358 /* Connect/Setup/Configure the FTP session */ 355 /* Connect/Setup/Configure the FTP session */