Question:
I am attempting to upgrade from ChilkatDotNet4.dll version 9.4.1.0 to 9.5.0.58 but the following code no longer works:
sshCK.SendReqExec(channelNum, "type \remote_host_Bshare_name$data.csv && echo Get_Complete"); sshCK.ChannelReceiveUntilMatch(channelNum, "Get_Complete", "ansi", false);
I am connecting to Windows host A via SSH and then having host A print the contents of a remote file on host B, and then append the keyword "Get_Complete" so I know where the data ends.
Here are my observations:
1) This works fine with 9.4.1.0 (i.e. ChannelReceiveUntilMatch() returns true) 2) If I ignore the error and call GetReceivedText(), the data that is returned is exactly what I expected to receive. 3) I tried playing around with ReadTimeoutMs, but regardless of its value the command always returns in about 25ms.
Has this command changed significantly since 9.4 and I just need to change my logic? Or is there a bug of some kind?
Thanks, Richard
Chilkat error: ChilkatLog: ChannelReceiveUntilMatch(16ms): DllDate: Jun 13 2016 ChilkatVersion: 9.5.0.58 UnlockPrefix: PETERLSSH Architecture: Little Endian; 64-bit Language: .NET 4.0 / x64 VerboseLogging: 1 channelReceiveUntilMatch(16ms): channel: 5 pattern: Get_Complete charset: ansi caseSensitive: 0 readChannelData(16ms): mType: IGNORE mType: CHANNEL_DATA dataLen: 80 clientWinSize: 327600 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 512 clientWinSize: 327088 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 1024 clientWinSize: 326064 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 1968 clientWinSize: 324096 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 512 clientWinSize: 323584 --readChannelData readChannelData: mType: IGNORE mType: CHANNEL_DATA dataLen: 80 clientWinSize: 323504 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 944 clientWinSize: 322560 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 512 clientWinSize: 322048 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 400 clientWinSize: 321648 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 512 clientWinSize: 321136 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 784 clientWinSize: 320352 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 80 clientWinSize: 320272 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 784 clientWinSize: 319488 --readChannelData readChannelData: mType: IGNORE mType: CHANNEL_DATA dataLen: 80 clientWinSize: 319408 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 1696 clientWinSize: 317712 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 784 clientWinSize: 316928 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 1344 clientWinSize: 315584 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 704 clientWinSize: 314880 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 912 clientWinSize: 313968 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 1104 clientWinSize: 312864 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 2746 clientWinSize: 310118 --readChannelData readChannelData: mType: CHANNEL_DATA dataLen: 14 clientWinSize: 310104 --readChannelData readChannelData: mType: IGNORE mType: CHANNEL_REQUEST Received CHANNEL REQUEST message requestType: exit-status wantReply: 0 exitStatusCode: 0 Received channel request --readChannelData readChannelData: mType: CHANNEL_EOF --readChannelData readChannelData: mType: CHANNEL_CLOSE Sent SSH Channel CLOSE --readChannelData Failed to receive until match. --channelReceiveUntilMatch Failed. --ChannelReceiveUntilMatch --ChilkatLog
This was a recent problem fixed just after the v9.5.0.58 release. Here's the new build w/ the patch:
32-bit Download: http://www.chilkatsoft.com/download/preRelease/ChilkatDotNet4-9.5.0-win32.zip
64-bit Download: http://www.chilkatsoft.com/download/preRelease/ChilkatDotNet4-9.5.0-x64.zip
Hi,
The following code has worked perfectly using ChilkatDotNet4-9.5.0.40
Yesterday I upgraded to ChilkatDotNet4-9.5.0.58 and found that _ChilkatSSH.ChannelReceiveUntilMatch fails to find the match string "AReady" (90 second timeout expired). If I skip over the error and look at the subsequent _ChilkatSSH.GetReceivedText, everything received is normal including the match string "AReady".
Seeing the above topic (a related bug?) and your replied patch, ChilkatDotNet4-9.5.0.59, I immediately downloaded and tried it.
Unfortunately, for me, .59 failed exactly as .58
Again, .40 works perfectly. .58 & .59 do not.
Please advise.
Thank you very much!
Regards, Peter
For i = 0 To MAX_CONNECTION_RETRIES
If _ChilkatSSH.Connect(pAApp_IPAddress, "22") Then Exit For
Threading.Thread.Sleep(4000)
Next
If (_ChilkatSSH.AuthenticatePw(pAApp_AMMI_I_Username, pAApp_AMMI_I_Password) <> True) Then Throw New System.Exception(_ChilkatSSH.LastErrorText & vbCrLf)
_Channel = _ChilkatSSH.OpenSessionChannel() 'Open a session channel. (It is possible to have multiple session channels open simultaneously.)
If (_Channel < 0) Then
Throw New System.Exception(_ChilkatSSH.LastErrorText & vbCrLf)
End If
' Create a dumb terminal with a call to Putty???
If (_ChilkatSSH.SendReqPty(_Channel, termType, widthInChars, heightInChars, pixWidth, pixHeight) <> True) Then Throw New System.Exception(_ChilkatSSH.LastErrorText & vbCrLf)
' Start a shell on the channel:
If (_ChilkatSSH.SendReqShell(_Channel) <> True) Then Throw New System.Exception(_ChilkatSSH.LastErrorText & vbCrLf)
If (_ChilkatSSH.ChannelReceiveUntilMatch(_Channel, "AReady", "ansi", True) <> True) Then Throw New System.Exception(_ChilkatSSH.LastErrorText & vbCrLf)
pAApp_AMMI_I_Output = _ChilkatSSH.GetReceivedText(_Channel, "ansi")
_Details &= "SendReqShell:" & pAApp_AMMI_I_Output
If (pAApp_AMMI_I_Output = vbNullString) Then
Throw New System.Exception(_ChilkatSSH.LastErrorText & vbCrLf)
End If
Please check to see if this new build fixes it:
32-bit Download: http://www.chilkatsoft.com/download/preRelease/ChilkatDotNet4-9.5.0-win32.zip
64-bit Download: http://www.chilkatsoft.com/download/preRelease/ChilkatDotNet4-9.5.0-x64.zip
Thank you, rkroehl and Chilkat.
Patch ChilkatDotNet4-9.5.0.59 is working. Based on rkroehl's suggestion, surrounding the match string with asterisks works. I then modified all of my existing source appropriately.
Thank you again for your help!
Regards, Peter