aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277>2003-12-19 10:37:52 +0000
committerbug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277>2003-12-19 10:37:52 +0000
commitc9116d12f1bf8254bc642019ce66e480b3b2b24e (patch)
tree12e72ddce6c6d4aa3f98c02a84176d40486482c3
parenteb6d922f6275f05c639df544619aa9791cb3b077 (diff)
downloadbusybox-w32-c9116d12f1bf8254bc642019ce66e480b3b2b24e.tar.gz
busybox-w32-c9116d12f1bf8254bc642019ce66e480b3b2b24e.tar.bz2
busybox-w32-c9116d12f1bf8254bc642019ce66e480b3b2b24e.zip
Use getopt_ulflags
git-svn-id: svn://busybox.net/trunk/busybox@8121 69ca8d6d-28ef-0310-b511-8ec308f3f277
-rw-r--r--networking/ftpgetput.c54
1 files changed, 23 insertions, 31 deletions
diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c
index 2fd50e4c4..8724739b5 100644
--- a/networking/ftpgetput.c
+++ b/networking/ftpgetput.c
@@ -287,11 +287,25 @@ static int ftp_send(ftp_host_info_t *server, FILE *control_stream,
287} 287}
288#endif 288#endif
289 289
290#define FTPGETPUT_OPT_CONTINUE 1
291#define FTPGETPUT_OPT_VERBOSE 2
292#define FTPGETPUT_OPT_USER 4
293#define FTPGETPUT_OPT_PASSWORD 8
294#define FTPGETPUT_OPT_PORT 16
295
296static const struct option ftpgetput_long_options[] = {
297 {"continue", 1, NULL, 'c'},
298 {"verbose", 0, NULL, 'v'},
299 {"username", 1, NULL, 'u'},
300 {"password", 1, NULL, 'p'},
301 {"port", 1, NULL, 'P'},
302 {0, 0, 0, 0}
303};
304
290int ftpgetput_main(int argc, char **argv) 305int ftpgetput_main(int argc, char **argv)
291{ 306{
292 /* content-length of the file */ 307 /* content-length of the file */
293 int option_index = -1; 308 unsigned long opt;
294 int opt;
295 309
296 /* socket to ftp server */ 310 /* socket to ftp server */
297 FILE *control_stream; 311 FILE *control_stream;
@@ -302,15 +316,6 @@ int ftpgetput_main(int argc, char **argv)
302 316
303 int (*ftp_action)(ftp_host_info_t *, FILE *, const char *, char *) = NULL; 317 int (*ftp_action)(ftp_host_info_t *, FILE *, const char *, char *) = NULL;
304 318
305 struct option long_options[] = {
306 {"username", 1, NULL, 'u'},
307 {"password", 1, NULL, 'p'},
308 {"port", 1, NULL, 'P'},
309 {"continue", 1, NULL, 'c'},
310 {"verbose", 0, NULL, 'v'},
311 {0, 0, 0, 0}
312 };
313
314#ifdef CONFIG_FTPPUT 319#ifdef CONFIG_FTPPUT
315 if (bb_applet_name[3] == 'p') { 320 if (bb_applet_name[3] == 'p') {
316 ftp_action = ftp_send; 321 ftp_action = ftp_send;
@@ -330,26 +335,13 @@ int ftpgetput_main(int argc, char **argv)
330 * Decipher the command line 335 * Decipher the command line
331 */ 336 */
332 server->port = "21"; 337 server->port = "21";
333 while ((opt = getopt_long(argc, argv, "u:p:P:cv", long_options, &option_index)) != EOF) { 338 bb_applet_long_options = ftpgetput_long_options;
334 switch(opt) { 339 opt = bb_getopt_ulflags(argc, argv, "cvu:p:P:", &server->user, &server->password, &server->port);
335 case 'c': 340 if (opt & FTPGETPUT_OPT_CONTINUE) {
336 do_continue = 1; 341 do_continue = 1;
337 break; 342 }
338 case 'u': 343 if (opt & FTPGETPUT_OPT_VERBOSE) {
339 server->user = optarg; 344 verbose_flag = 1;
340 break;
341 case 'p':
342 server->password = optarg;
343 break;
344 case 'P':
345 server->port = optarg;
346 break;
347 case 'v':
348 verbose_flag = 1;
349 break;
350 default:
351 bb_show_usage();
352 }
353 } 345 }
354 346
355 /* 347 /*