From 64a5f96780a6a507c577629a5697cdbb53f7bc9b Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Thu, 10 Nov 2005 22:37:40 +0000 Subject: telnetd -b (bind to specific address) support from Iuri Gomes Diniz. --- networking/telnetd.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'networking/telnetd.c') diff --git a/networking/telnetd.c b/networking/telnetd.c index b3d0a1166..d5de8903c 100644 --- a/networking/telnetd.c +++ b/networking/telnetd.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -390,13 +391,14 @@ telnetd_main(int argc, char **argv) #ifndef CONFIG_FEATURE_TELNETD_INETD int on = 1; int portnbr = 23; + struct in_addr bind_addr = { .s_addr = 0x0 }; #endif /* CONFIG_FEATURE_TELNETD_INETD */ int c; static const char options[] = #ifdef CONFIG_FEATURE_TELNETD_INETD "f:l:"; #else /* CONFIG_EATURE_TELNETD_INETD */ - "f:l:p:"; + "f:l:p:b:"; #endif /* CONFIG_FEATURE_TELNETD_INETD */ int maxlen, w, r; @@ -418,6 +420,10 @@ telnetd_main(int argc, char **argv) case 'p': portnbr = atoi(optarg); break; + case 'b': + if (inet_aton(optarg, &bind_addr) == 0) + bb_show_usage(); + break; #endif /* CONFIG_FEATURE_TELNETD_INETD */ default: bb_show_usage(); @@ -452,9 +458,11 @@ telnetd_main(int argc, char **argv) #ifdef CONFIG_FEATURE_IPV6 sa.sin6_family = AF_INET6; sa.sin6_port = htons(portnbr); + /* sa.sin6_addr = bind_addr6; */ #else sa.sin_family = AF_INET; sa.sin_port = htons(portnbr); + sa.sin_addr = bind_addr; #endif if (bind(master_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) { -- cgit v1.2.3