doar
asked on
answerback in unix login, to pass terminal type through telnet
How do I query what the answerback setting is so I can set the TERM environmental variable through a telnet? UNIX.
Thanks.
Thanks.
How to query the "answerback" and what the reponse is elicited is highly dependant on what the terminal is. When dumb terminals were more popular, I remember a number of programs being posted to various Usenet groups that intelligently interrogated a terminal to determine what it was. They are probably still around somewhere on ftp.uu.net, but I can't remember any of the names.
ASKER
To be specific, I have a remote terminal, running a version of MS DOS, and using a tcp/ip program to connect. And I want to be able to distinguish between this terminal and normal terminals (due to its small screen). The tcp/ip software has a place to set the "answerback" and I was told that could be used to give a terminal type of something like: wy60small or whatever I choose...I'll check that site to see if it has my answer...anyone else know the answer would be helpfull...
If you only have this one terminal to deal with and it has a fixed IP, you could key off of where the remote session originates from. That wouldn't even require answerback. Something along the lines of:
`who | grep special-host >/dev/null`
if [ $? = 0 ]; then
TERM=wy60small
export TERM
fi
in your shell init script should do it.
`who | grep special-host >/dev/null`
if [ $? = 0 ]; then
TERM=wy60small
export TERM
fi
in your shell init script should do it.
Another way to do this, if the dos terminal does support answerback, is just send the ENQ character '\005' to the terminal on login and capture what the terminal says back.
ASKER
Jlevies comment is a good idea, however since I will be having a bunch of these (all with fixed ip's), I would have to manage a list of IP's.
Kiffney, your soln seems to be what I am looking for, however I do not know how to send an ENQ to the dos terminal, could you enclose a code snippet, and ill put it in the .profile of the unix box login to try it.
Kiffney, your soln seems to be what I am looking for, however I do not know how to send an ENQ to the dos terminal, could you enclose a code snippet, and ill put it in the .profile of the unix box login to try it.
ASKER
Jlevies comment is a good idea, however since I will be having a bunch of these (all with fixed ip's), I would have to manage a list of IP's.
Kiffney, your soln seems to be what I am looking for, however I do not know how to send an ENQ to the dos terminal, could you enclose a code snippet, and ill put it in the .profile of the unix box login to try it.
Kiffney, your soln seems to be what I am looking for, however I do not know how to send an ENQ to the dos terminal, could you enclose a code snippet, and ill put it in the .profile of the unix box login to try it.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks guys for the help, I "avoided" the keyboard input buffer thingy by a
kind of work around:
awk 'BEGIN {
eh = sprintf("echo -n \"\005\" ")
system("stty -icanon min 0 time 1")
system(eh)
getline bah
printf("%s\n",bah)
system("stty icanon")
}'
It may not be the best solution but it does what I want, so basically I am
able to read the answerback with this, and hand it to the TERM environmental
variable. The only problem with this is that it echo's the 005 as a command
to the shell if there is no answerback, and gets some command not found or
something harmless. (btw there isn't a -e for the echo in my unix
environment Unixware). Ok, thanks again guys!
kind of work around:
awk 'BEGIN {
eh = sprintf("echo -n \"\005\" ")
system("stty -icanon min 0 time 1")
system(eh)
getline bah
printf("%s\n",bah)
system("stty icanon")
}'
It may not be the best solution but it does what I want, so basically I am
able to read the answerback with this, and hand it to the TERM environmental
variable. The only problem with this is that it echo's the 005 as a command
to the shell if there is no answerback, and gets some command not found or
something harmless. (btw there isn't a -e for the echo in my unix
environment Unixware). Ok, thanks again guys!