Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > Terminal Controll...

Reply
Thread Tools

Terminal Controll...

 
 
Brendan zerofor0je
Guest
Posts: n/a
 
      11-08-2003
Hello,

I've written a small reverse-telnet client that connects to a server that
handles all the clients.

the reverse telnet node ( whitch i will refer to as rtn from now on) works
by opening up a pty, and with a simple select() it passes data between the
sockets and the pty that /bin/sh runs on.

Meanwihle, the server program( that i will refer to as trc from now on)
sits and listens for nodes running rtn, once a node connects trc takes
controll over it; my problem?

once a rtn node connects to trc2, it works fine, but im having problems on
the input line ( i've tryed 'nc' in listen mode and it works fine, even
the mangled prompt )

Anyway, my problem is the terminal doesnt work properly for example tpying
on the trc prompt i get this undesired result;

hardk0re$ ls -lah /u lo bi mo ls -lah /usr/local/bin/mozilla
-rwxr-xr-x 1 root root 2.9k Jun 19 17:51
/usr/local/bin/mozilla hardk0re$

As you can see, when i type text it does not 'expand' but after i press
'enter' the desired output that i want on the terminal line is printed
out.

Zhivago from #C freenode aksed me to compile this small program;
---
#include <stdio.h>
#include <stdlib.h>

int main(){
int c;
c = getchar();
printf("%c\n",c);
}
---
As you would expect on a normal terminal ( not my cruddy trc ) it
prints out;
hardk0re$ ./a.out
m <- the letter you typed
m <- the letter printf'd back
hardk0re$

But on trc it behaves oddly,

hardk0re$ ./a.out
../a.out
m
m
m
hardk0re$

If anyone knows how to rememdy this i would be very pleased to hear it,
thank you in advance.
 
Reply With Quote
 
 
 
 
Fletcher Glenn
Guest
Posts: n/a
 
      11-08-2003
It sounds like you're using cbreak mode instead of raw mode.
Cbreak mode forces input to be delimited with newlines. Raw
mode allows you to handle things one character at a time, but
it also requires you to handle such things as backspaces and
other forms of input line editing.

--

Fletcher Glenn

Brendan zerofor0je wrote:
> Hello,
>
> I've written a small reverse-telnet client that connects to a server that
> handles all the clients.
>
> the reverse telnet node ( whitch i will refer to as rtn from now on) works
> by opening up a pty, and with a simple select() it passes data between the
> sockets and the pty that /bin/sh runs on.
>
> Meanwihle, the server program( that i will refer to as trc from now on)
> sits and listens for nodes running rtn, once a node connects trc takes
> controll over it; my problem?
>
> once a rtn node connects to trc2, it works fine, but im having problems on
> the input line ( i've tryed 'nc' in listen mode and it works fine, even
> the mangled prompt )
>
> Anyway, my problem is the terminal doesnt work properly for example tpying
> on the trc prompt i get this undesired result;
>
> hardk0re$ ls -lah /u lo bi mo ls -lah /usr/local/bin/mozilla
> -rwxr-xr-x 1 root root 2.9k Jun 19 17:51
> /usr/local/bin/mozilla hardk0re$
>
> As you can see, when i type text it does not 'expand' but after i press
> 'enter' the desired output that i want on the terminal line is printed
> out.
>
> Zhivago from #C freenode aksed me to compile this small program;
> ---
> #include <stdio.h>
> #include <stdlib.h>
>
> int main(){
> int c;
> c = getchar();
> printf("%c\n",c);
> }
> ---
> As you would expect on a normal terminal ( not my cruddy trc ) it
> prints out;
> hardk0re$ ./a.out
> m <- the letter you typed
> m <- the letter printf'd back
> hardk0re$
>
> But on trc it behaves oddly,
>
> hardk0re$ ./a.out
> ./a.out
> m
> m
> m
> hardk0re$
>
> If anyone knows how to rememdy this i would be very pleased to hear it,
> thank you in advance.


 
Reply With Quote
 
 
 
 
Brendan zerofor0je
Guest
Posts: n/a
 
      11-08-2003
On Sat, 08 Nov 2003 00:50:46 +0000, Fletcher Glenn wrote:

> It sounds like you're using cbreak mode instead of raw mode.
> Cbreak mode forces input to be delimited with newlines. Raw
> mode allows you to handle things one character at a time, but
> it also requires you to handle such things as backspaces and
> other forms of input line editing.
>
> --
>
> Fletcher Glenn
>
> Brendan zerofor0je wrote:
>> Hello,
>>
>> I've written a small reverse-telnet client that connects to a server that
>> handles all the clients.
>>
>> the reverse telnet node ( whitch i will refer to as rtn from now on) works
>> by opening up a pty, and with a simple select() it passes data between the
>> sockets and the pty that /bin/sh runs on.
>>
>> Meanwihle, the server program( that i will refer to as trc from now on)
>> sits and listens for nodes running rtn, once a node connects trc takes
>> controll over it; my problem?
>>
>> once a rtn node connects to trc2, it works fine, but im having problems on
>> the input line ( i've tryed 'nc' in listen mode and it works fine, even
>> the mangled prompt )
>>
>> Anyway, my problem is the terminal doesnt work properly for example tpying
>> on the trc prompt i get this undesired result;
>>
>> hardk0re$ ls -lah /u lo bi mo ls -lah /usr/local/bin/mozilla
>> -rwxr-xr-x 1 root root 2.9k Jun 19 17:51
>> /usr/local/bin/mozilla hardk0re$
>>
>> As you can see, when i type text it does not 'expand' but after i press
>> 'enter' the desired output that i want on the terminal line is printed
>> out.
>>
>> Zhivago from #C freenode aksed me to compile this small program;
>> ---
>> #include <stdio.h>
>> #include <stdlib.h>
>>
>> int main(){
>> int c;
>> c = getchar();
>> printf("%c\n",c);
>> }
>> ---
>> As you would expect on a normal terminal ( not my cruddy trc ) it
>> prints out;
>> hardk0re$ ./a.out
>> m <- the letter you typed
>> m <- the letter printf'd back
>> hardk0re$
>>
>> But on trc it behaves oddly,
>>
>> hardk0re$ ./a.out
>> ./a.out
>> m
>> m
>> m
>> hardk0re$
>>
>> If anyone knows how to rememdy this i would be very pleased to hear it,
>> thank you in advance.


Thanks, It worked!
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
v = vte.Terminal() AttributeError: 'module' object has no attribute 'Terminal' Steve Python 2 12-07-2010 05:48 PM
open a new terminal window from another terminal window in linux/unixsystem gaurav kashyap Python 3 10-31-2008 12:10 PM
Sun X-Terminal Mod bigal Case Modding 80 12-01-2005 11:35 PM



Advertisments