[BusyBox] scriptable telnet

bugouzhi Wang bugouzhi at gmail.com
Thu Nov 18 19:33:50 UTC 2004


Hi,
thanks for clearing things up with the telnet. I am not really familiar with 
these stuffs, just another question how do i install the patch? 

Thanks 

Jian


On Thu, 18 Nov 2004 12:10:03 -0500, Paul Fox <pgf at brightstareng.com> wrote:
>  >  I am actually using busybox on a Sharp Zaurus PDA, and i had trouble
>  > getting expect installed on it.  I am trying to telnet to a daemon running
>  > on the PDA to continuously get some information from it, the daemon
>  > only support the telnet protocol. It doesn't require any login stufff, i just
>  > need to telnet to it, and run a few command and save its output to a file.
>  > Is there any other ways to do it beside expect? I guess now i will wait
>  > for Rob's netcat and see what happens.
> 
> with some telnet programs you can do something like this:
> 
>     (
>      sleep 2
>      echo username
>      sleep 2
>      echo somepassword
>      sleep 2
>      echo date
>      sleep 2
>     ) | telnet somehost > session.log
> 
> there's no error checking, and no synchronization.  but for a
> quick and dirty solution it can be handy.
> 
> this doesn't work in busybox because busybox telnet exits if stdion
> is not a terminal.  the following patch (only quickly tested)
> makes this work.
> 
> paul
> 
> --- busybox-1.00.orig/networking/telnet.c       2004-09-14 13:24:58.000000000 -0400
> +++ busybox-1.00/networking/telnet.c    2004-11-18 12:06:30.000000000 -0500
> @@ -101,6 +101,7 @@
>         short   iaclen; /* could even use byte */
>         struct termios termios_def;
>         struct termios termios_raw;
> +       char    do_termios;
>  } G;
> 
>  #define xUSE_GLOBALVAR_PTR /* xUSE... -> don't use :D (makes smaller code) */
> @@ -616,12 +617,12 @@
> 
>  static void rawmode(void)
>  {
> -       tcsetattr(0, TCSADRAIN, &G.termios_raw);
> +       if (G.do_termios) tcsetattr(0, TCSADRAIN, &G.termios_raw);
>  }
> 
>  static void cookmode(void)
>  {
> -       tcsetattr(0, TCSADRAIN, &G.termios_def);
> +       if (G.do_termios) tcsetattr(0, TCSADRAIN, &G.termios_def);
>  }
> 
>  extern int telnet_main(int argc, char** argv)
> @@ -649,11 +650,12 @@
> 
>         memset(&G, 0, sizeof G);
> 
> -       if (tcgetattr(0, &G.termios_def) < 0)
> -               exit(1);
> +       if (tcgetattr(0, &G.termios_def) >= 0) {
> +               G.do_termios = 1;
> 
> -       G.termios_raw = G.termios_def;
> -       cfmakeraw(&G.termios_raw);
> +               G.termios_raw = G.termios_def;
> +               cfmakeraw(&G.termios_raw);
> +       }
> 
>         if (argc < 2)
>                 bb_show_usage();
> 
> =---------------------
>  paul fox, pgf at brightstareng.com
> 
> 
> _______________________________________________
> busybox mailing list
> busybox at mail.busybox.net
> http://busybox.net/mailman/listinfo/busybox
> 
> 
>



More information about the busybox mailing list