Make sure stdlib.h is always included before dmalloc.h to avoid problems
[oweals/busybox.git] / networking / telnet.c
index 88607f6531e5e6aacf7d91972d39116d3768ea86..1b71bf26ab93867e5a89fcc5e64ee14b73bf75c0 100644 (file)
 #include <netinet/in.h>
 #include "busybox.h"
 
-#ifdef CONFIG_FEATURE_AUTOWIDTH
-#   include <sys/ioctl.h>
-#endif
-
 #if 0
 static const int DOTRACE = 1;
 #endif
@@ -574,9 +570,8 @@ static void cookmode(void)
 
 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  
@@ -585,11 +580,7 @@ extern int telnet_main(int argc, char** argv)
 #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
@@ -604,12 +595,13 @@ extern int telnet_main(int argc, char** argv)
        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);