Disconnect Event Firing before DataReceived event (General questions)
I'm working on a class that needs to execute a program on a server over an ssh connection. The problem I'm having is that the Disconnected event fires before I receive the data in the DataReceived event. If I set breakpoints in the code I can see that the DataReceived event fires, I just can't get access to it since the Disconnected event has already returned me back from my class. I would use the DataReceived event to capture the data, but some of the commands require 2 or 3 receive events before all of the data is received.
The code that I'm using is:
Private WithEvents ssh as New ssh()
Public Sub RunCommand()
with ssh
.Hostname = host
.Login = login
.Password = password
.Command = command
.Protocol = SupportedProtocols.SSHAuto
.Encryption = EncryptionMethods.Auto
.Connect
End With
do
'Don't do anything i just want to give the thread time to complete
until ssh.State = States.Disconnected
End Sub
In the Receive event I set a module level variable to the results of the command then raise an even in the disconnect event that returns the result to the calling app.
Private Sub ssh_DataReceivedEvent(ByVal Sender As Object, ByVal Args As WeOnlyDo.Client.SSH.DataReceivedArgs) Handles ssh.DataReceivedEvent) handles ssh.DataReceivedEvent
dim s as string = ssh.receive()
m_Results &= s
End Sub
Private Sub ssh_DisconnectedEvent(ByVal Sender As Object, ByVal Args As System.EventArgs) Handles ssh.DisconnectedEvent
RaiseEvent CommandComplete(m_Results, m_Command)
m_Results =
End Sub
Any help would be appreciated.