aboutsummaryrefslogtreecommitdiff
path: root/networking/telnetd.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2006-09-22 08:50:29 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2006-09-22 08:50:29 +0000
commit0e87d347e8298c76d689eae1aabcee5aba313072 (patch)
treee92c12311db90333cd792290155c065bc8f1edc4 /networking/telnetd.c
parent109d21fe7420fedbda7e1cd7ceb6ff2f3b59b8f1 (diff)
downloadbusybox-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.c44
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)
362int 362int
363telnetd_main(int argc, char **argv) 363telnetd_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);