diff options
author | Mike Baker <mbm@openwrt.org> | 2005-02-06 01:32:23 +0000 |
---|---|---|
committer | Mike Baker <mbm@openwrt.org> | 2005-02-06 01:32:23 +0000 |
commit | 449d4bcaa360b2c09f18cf01fb8bf31385259555 (patch) | |
tree | 22f03486b2b455489391ecb58b6a63276ff0ce4d /package/busybox/patches/110-telnetd.patch | |
parent | 93b40a26e0c35b2e0ca256647e5ab21f6817e196 (diff) | |
download | upstream-449d4bcaa360b2c09f18cf01fb8bf31385259555.tar.gz upstream-449d4bcaa360b2c09f18cf01fb8bf31385259555.tar.bz2 upstream-449d4bcaa360b2c09f18cf01fb8bf31385259555.zip |
*** empty log message ***
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@213 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/busybox/patches/110-telnetd.patch')
-rw-r--r-- | package/busybox/patches/110-telnetd.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/package/busybox/patches/110-telnetd.patch b/package/busybox/patches/110-telnetd.patch new file mode 100644 index 0000000000..e95757ee4e --- /dev/null +++ b/package/busybox/patches/110-telnetd.patch @@ -0,0 +1,53 @@ +diff -urN busybox-1.00-pre8/networking/telnetd.c busybox-1.00-pre8-openwrt/networking/telnetd.c +--- busybox-1.00-pre8/networking/telnetd.c 2004-02-22 03:45:57.000000000 -0600 ++++ busybox-1.00-pre8-openwrt/networking/telnetd.c 2004-03-05 01:32:57.000000000 -0600 +@@ -44,6 +44,8 @@ + #include <arpa/telnet.h> + #include <ctype.h> + #include <sys/syslog.h> ++#include <net/if.h> ++ + + #include "busybox.h" + +@@ -384,11 +386,13 @@ + int portnbr = 23; + #endif /* CONFIG_FEATURE_TELNETD_INETD */ + int c; ++ char *interface_name = NULL; ++ struct ifreq interface; + static const char options[] = + #ifdef CONFIG_FEATURE_TELNETD_INETD +- "f:l:"; +-#else /* CONFIG_EATURE_TELNETD_INETD */ +- "f:l:p:"; ++ "i:f:l:"; ++#else /* CONFIG_FEATURE_TELNETD_INETD */ ++ "i:f:l:p:"; + #endif /* CONFIG_FEATURE_TELNETD_INETD */ + int maxlen, w, r; + +@@ -403,6 +407,9 @@ + case 'f': + issuefile = strdup (optarg); + break; ++ case 'i': ++ interface_name = strdup(optarg); ++ break; + case 'l': + loginpath = strdup (optarg); + break; +@@ -442,6 +449,13 @@ + sa.sin_family = AF_INET; + sa.sin_port = htons(portnbr); + ++ /* Set it to listen on the specified interface */ ++ if (interface_name) { ++ strncpy(interface.ifr_ifrn.ifrn_name, interface_name, IFNAMSIZ); ++ (void)setsockopt(master_fd, SOL_SOCKET, ++ SO_BINDTODEVICE, &interface, sizeof(interface)); ++ } ++ + if (bind(master_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) { + bb_perror_msg_and_die("bind"); + } |