Hi.
I'm new to this product and have a tiny problem here. Connected a SFTP component with a SSH client. For testing purposes, I've disabled SSH support on my ftp server. As soon as I try to connect to that server, I've got an error message:
"Server does not support SFTP protocol"
That's fine, but why does the OnError event from the SFTP-component isn't triggered?
Then, I've tryed to catch all errors inside a "Try/Except" block -> works. But how do I get the last error-code from the ftp/ssh-client to be able to translate this codes to my own messages (german)?
Regards,
Marc
Get last Error / ErrorCode
Re: Get last Error / ErrorCode
The OnError event occurs when the SFTP server returns an error on executing some operation with files.
In your case SSH server just closes the connection and doesn't return any code error, therefore the OnError event is not raised.
To solve the problem you can process the TScSFTPClient.OnDisconnect event handler and display your own message.
In your case SSH server just closes the connection and doesn't return any code error, therefore the OnError event is not raised.
To solve the problem you can process the TScSFTPClient.OnDisconnect event handler and display your own message.
Re: Get last Error / ErrorCode
Hi,
hmm...OnDisconnect doesn't return any messaage to be able to translate. I need german error messages instead of english ones, so it would be cool to be able to retrieve the last occured error in a further release.
For now, I've a "CheckFTPConnection" procedure where the statement "SSHClient.Connect" is surrounded by a try-except block and the following code:
Using a string parser isn't the best methode here, cause I don't know, which other errors could occur, too.
Regards,
Marc
hmm...OnDisconnect doesn't return any messaage to be able to translate. I need german error messages instead of english ones, so it would be cool to be able to retrieve the last occured error in a further release.
For now, I've a "CheckFTPConnection" procedure where the statement "SSHClient.Connect" is surrounded by a try-except block and the following code:
Code: Select all
try
...
except
{ catch all errors }
on e: Exception do
begin
{ close ssh connection }
SSHClient.Disconnect;
{ set result }
Result := False;
{ translate message? }
AMessage := e.Message;
if TNXStrings.Search('SFTP protocol', AMessage, True) > 0 then
AMessage := S_SSH_ERROR_PROTOCOL;
if TNXStrings.Search('Host key not', AMessage, True) > 0 then
AMessage := S_SSH_ERROR_HOSTKEY;
if TNXStrings.Search('Wrong host', AMessage, True) > 0 then
AMessage := S_SSH_ERROR_HOSTNAME;
if TNXStrings.Search('Socket error', AMessage, True) > 0 then
AMessage := S_SSH_ERROR_SOCKET;
if TNXStrings.Search('Authentication', AMessage, True) > 0 then
AMessage := S_SSH_ERROR_AUTHENTICATION;
if TNXStrings.Search('Timeout', AMessage, True) > 0 then
AMessage := S_SSH_ERROR_TIMEOUT;
{ show error message }
xpExclamMessageFmt(S_FTP_CONNECTION_ERROR, [AMessage]);
end;
Regards,
Marc
Re: Get last Error / ErrorCode
Thank you for your inquiry. We will investigate the possibility of adding this functionality in the future. As soon as we solve this question we will let you know.
Re: Get last Error / ErrorCode
Hi.
Thank you - that would be great.
Regards & marry x-mas,
Marc
Thank you - that would be great.
Regards & marry x-mas,
Marc
Re: Get last Error / ErrorCode
The new SecureBridge build including the EScError.ErrorCode property is available for download now.