diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-09-22 08:50:29 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-09-22 08:50:29 +0000 |
commit | 0e87d347e8298c76d689eae1aabcee5aba313072 (patch) | |
tree | e92c12311db90333cd792290155c065bc8f1edc4 /networking/telnetd.c | |
parent | 109d21fe7420fedbda7e1cd7ceb6ff2f3b59b8f1 (diff) | |
download | busybox-w32-0e87d347e8298c76d689eae1aabcee5aba313072.tar.gz busybox-w32-0e87d347e8298c76d689eae1aabcee5aba313072.tar.bz2 busybox-w32-0e87d347e8298c76d689eae1aabcee5aba313072.zip |
telnetd: getopt_ulflags'isation
Diffstat (limited to 'networking/telnetd.c')
-rw-r--r-- | networking/telnetd.c | 44 |
1 files changed, 12 insertions, 32 deletions
diff --git a/networking/telnetd.c b/networking/telnetd.c index 890e58466..9fa8faf66 100644 --- a/networking/telnetd.c +++ b/networking/telnetd.c | |||
@@ -362,23 +362,16 @@ free_session(struct tsession *ts) | |||
362 | int | 362 | int |
363 | telnetd_main(int argc, char **argv) | 363 | telnetd_main(int argc, char **argv) |
364 | { | 364 | { |
365 | #ifndef CONFIG_FEATURE_TELNETD_INETD | 365 | unsigned long opt; |
366 | sockaddr_type sa; | ||
367 | int master_fd; | ||
368 | #endif /* CONFIG_FEATURE_TELNETD_INETD */ | ||
369 | fd_set rdfdset, wrfdset; | 366 | fd_set rdfdset, wrfdset; |
370 | int selret; | 367 | int selret; |
371 | #ifndef CONFIG_FEATURE_TELNETD_INETD | 368 | #ifndef CONFIG_FEATURE_TELNETD_INETD |
369 | sockaddr_type sa; | ||
370 | int master_fd; | ||
372 | int on = 1; | 371 | int on = 1; |
373 | int portnbr = 23; | 372 | int portnbr = 23; |
374 | struct in_addr bind_addr = { .s_addr = 0x0 }; | 373 | struct in_addr bind_addr = { .s_addr = 0x0 }; |
375 | #endif /* CONFIG_FEATURE_TELNETD_INETD */ | 374 | char *opt_portnbr, *opt_bindaddr; |
376 | int c; | ||
377 | static const char options[] = | ||
378 | #ifdef CONFIG_FEATURE_TELNETD_INETD | ||
379 | "f:l:"; | ||
380 | #else /* CONFIG_EATURE_TELNETD_INETD */ | ||
381 | "f:l:p:b:"; | ||
382 | #endif /* CONFIG_FEATURE_TELNETD_INETD */ | 375 | #endif /* CONFIG_FEATURE_TELNETD_INETD */ |
383 | int maxlen, w, r; | 376 | int maxlen, w, r; |
384 | 377 | ||
@@ -394,29 +387,16 @@ telnetd_main(int argc, char **argv) | |||
394 | openlog(bb_applet_name, 0, LOG_USER); | 387 | openlog(bb_applet_name, 0, LOG_USER); |
395 | logmode = LOGMODE_SYSLOG; | 388 | logmode = LOGMODE_SYSLOG; |
396 | 389 | ||
397 | for (;;) { | 390 | opt = bb_getopt_ulflags(argc, argv, "f:l:" USE_FEATURE_TELNETD_INETD("p:b:"), |
398 | c = getopt( argc, argv, options); | 391 | &issuefile, &loginpath |
399 | if (c == EOF) break; | 392 | SKIP_FEATURE_TELNETD_INETD(, &opt_portnbr, &opt_bindaddr)); |
400 | switch (c) { | 393 | //if (opt & 1) // -f |
401 | case 'f': | 394 | //if (opt & 2) // -l |
402 | issuefile = optarg; | ||
403 | break; | ||
404 | case 'l': | ||
405 | loginpath = optarg; | ||
406 | break; | ||
407 | #ifndef CONFIG_FEATURE_TELNETD_INETD | 395 | #ifndef CONFIG_FEATURE_TELNETD_INETD |
408 | case 'p': | 396 | if (opt & 4) portnbr = atoi(opt_portnbr); // -p |
409 | portnbr = atoi(optarg); | 397 | if (opt & 8) // -b |
410 | break; | 398 | if (inet_aton(opt_bindaddr, &bind_addr) == 0) bb_show_usage(); |
411 | case 'b': | ||
412 | if (inet_aton(optarg, &bind_addr) == 0) | ||
413 | bb_show_usage(); | ||
414 | break; | ||
415 | #endif /* CONFIG_FEATURE_TELNETD_INETD */ | 399 | #endif /* CONFIG_FEATURE_TELNETD_INETD */ |
416 | default: | ||
417 | bb_show_usage(); | ||
418 | } | ||
419 | } | ||
420 | 400 | ||
421 | if (access(loginpath, X_OK) < 0) { | 401 | if (access(loginpath, X_OK) < 0) { |
422 | bb_error_msg_and_die("'%s' unavailable", loginpath); | 402 | bb_error_msg_and_die("'%s' unavailable", loginpath); |