#include <netinet/in.h>
#include "busybox.h"
-#ifdef CONFIG_FEATURE_AUTOWIDTH
-# include <sys/ioctl.h>
-#endif
-
#if 0
static const int DOTRACE = 1;
#endif
extern int telnet_main(int argc, char** argv)
{
- char *host;
- char *port;
int len;
+ struct sockaddr_in s_in;
#ifdef USE_POLL
struct pollfd ufds[2];
#else
#endif
#ifdef CONFIG_FEATURE_AUTOWIDTH
- struct winsize winp;
- if( ioctl(0, TIOCGWINSZ, &winp) == 0 ) {
- win_width = winp.ws_col;
- win_height = winp.ws_row;
- }
+ get_terminal_width_height(0, &win_width, &win_height);
#endif
#ifdef CONFIG_FEATURE_TELNET_TTYPE
G.termios_raw = G.termios_def;
cfmakeraw(&G.termios_raw);
- if (argc < 2) bb_show_usage();
- port = (argc > 2)? argv[2] : "23";
+ if (argc < 2)
+ bb_show_usage();
- host = argv[1];
+ bb_lookup_host(&s_in, argv[1]);
+ s_in.sin_port = bb_lookup_port((argc == 3) ? argv[2] : "telnet", "tcp", 23);
- G.netfd = xconnect(host, port);
+ G.netfd = xconnect(&s_in);
setsockopt(G.netfd, SOL_SOCKET, SO_KEEPALIVE, &one, sizeof one);