hedrick@athos.rutgers.edu (Charles Hedrick) (07/19/90)
I've responded directly via email, but I thought I'd make a more general comment as well. I can certainly think of cases where macros could be useful. But many things that people use macros for are better handled by making the terminal server handle telnet options intelligently. E.g. this message suggests something like define ibm set term halfduplex; connect ibm This should not be necessary, and isn't on a cisco terminal server. When you connect to a host, it should use telnet negotiations to set up parameters for the session optimally. In fact IBM telnet implements do typically do this, and terminal servers that implement options correctly will go into halfduplex automatically when they connect to an IBM host. We had at one point considering needing something like this to control flow control. On systems where you run emacs, you probably don't want any flow control. ^S is an emacs command, so you don't want it to be taken as XOFF. But on other systems you may really need flow control. However rather than finding a way for the user to specify this, and then wrapping it up in a macro, we found that a better solution was to have use a telnet negotiation to turn off flow control when you enter emacs. This is now an RFC, and is implemented by cisco (and I believe by the latest version of Berkeley's telnetd). "line mode telnet" carries this sort of thing even farther. I have no problem with macros when they are being used to automate communications tasks. E.g. if you need to retrieve the current version of some file once a day I can see making a kermit macro that automatically logs in and retrieves this file. I don't immediately see anything like this that I'd want to do from a terminal server, but I can certainly imagine people who have such needs. But I do have a problem with macros that are used to define special modes needed to communicate with an individual host. The problem is that it leads to an N square combinatorial explosion. Every terminal server needs a macro for every host. You should think very hard before doing such a macro, to see whether the host can't do something via the telnet option mechanism to make things work right. For cases where cisco terminal servers are used in reverse to front-end hosts, you can configure specific ports to negotiate telnet options in special ways for an incoming connection. The main option is to get it to refuse the request to go into full duplex. (Half duplex is the default for telnet.) This is appropriate when you're front ending a half duplex machine. You can also configure it to "speed match", and there may be some other options as well.