Visual FoxPro
Visual FoxPro
Set a TTY Mode for an SSH PTY Request
See more SSH Examples
Demonstrates the Chilkat Ssh.SetTtyMode method, which adds or updates one TTY mode to be included in a later SendReqPty request. The first argument is the mode name and the second is its integer value. Call it once per mode, before requesting the PTY.
Background: TTY modes are the terminal settings a PTY is created with — the same knobs
stty exposes. The classic use is SetTtyMode("ECHO", 0), which stops the terminal from echoing input; that is how a password prompt keeps typed characters off the screen. Modes accumulate on the object and are sent with the next PTY request.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loSsh
LOCAL lnSshPort
LOCAL lcPassword
LOCAL lnChannelNum
lnSuccess = 0
* Demonstrates the Ssh.SetTtyMode method, which adds or updates one TTY mode to be included in
* a later SendReqPty request. The 1st argument is the mode name and the 2nd is its integer
* value. Call it once per mode, before SendReqPty.
loSsh = CreateObject('Chilkat.Ssh')
lnSshPort = 22
lnSuccess = loSsh.Connect("ssh.example.com",lnSshPort)
IF (lnSuccess = 0) THEN
? loSsh.LastErrorText
RELEASE loSsh
CANCEL
ENDIF
* Normally you would not hard-code the password in source. You should instead obtain it
* from an interactive prompt, environment variable, or a secrets vault.
lcPassword = "mySshPassword"
lnSuccess = loSsh.AuthenticatePw("mySshLogin",lcPassword)
IF (lnSuccess = 0) THEN
? loSsh.LastErrorText
RELEASE loSsh
CANCEL
ENDIF
* Open a session channel. A negative return value indicates failure.
lnChannelNum = loSsh.OpenSessionChannel()
IF (lnChannelNum < 0) THEN
? loSsh.LastErrorText
RELEASE loSsh
CANCEL
ENDIF
* Request that the allocated terminal not echo input.
lnSuccess = loSsh.SetTtyMode("ECHO",0)
IF (lnSuccess = 0) THEN
? loSsh.LastErrorText
RELEASE loSsh
CANCEL
ENDIF
* The modes set above are included in the PTY request.
lnSuccess = loSsh.SendReqPty(lnChannelNum,"xterm",80,24,0,0)
IF (lnSuccess = 0) THEN
? loSsh.LastErrorText
RELEASE loSsh
CANCEL
ENDIF
lnSuccess = loSsh.SendReqShell(lnChannelNum)
IF (lnSuccess = 0) THEN
? loSsh.LastErrorText
RELEASE loSsh
CANCEL
ENDIF
loSsh.Disconnect()
RELEASE loSsh