mirror of https://github.com/wolfSSL/wolfssh.git
Merge pull request #702 from JacobBarthelmeh/scp_example
adjust scp error return checking for closed channelspull/710/head
commit
524b5c6052
|
@ -325,8 +325,10 @@ THREAD_RETURN WOLFSSH_THREAD scp_client(void* args)
|
|||
WCLOSESOCKET(sockFd);
|
||||
wolfSSH_free(ssh);
|
||||
wolfSSH_CTX_free(ctx);
|
||||
if (ret != WS_SUCCESS && ret != WS_SOCKET_ERROR_E)
|
||||
if (ret != WS_SUCCESS && ret != WS_SOCKET_ERROR_E &&
|
||||
ret != WS_CHANNEL_CLOSED) {
|
||||
err_sys("Closing scp stream failed. Connection could have been closed by peer");
|
||||
}
|
||||
|
||||
ClientFreeBuffers(pubKeyName, privKeyName, NULL);
|
||||
#if !defined(WOLFSSH_NO_ECC) && defined(FP_ECC) && defined(HAVE_THREAD_LS)
|
||||
|
|
|
@ -730,7 +730,11 @@ int DoScpRequest(WOLFSSH* ssh)
|
|||
/* Peer MUST send back a SSH_MSG_CHANNEL_CLOSE unless already
|
||||
sent*/
|
||||
ret = wolfSSH_stream_read(ssh, buf, 1);
|
||||
if (ret != WS_EOF) {
|
||||
if (ret == WS_SOCKET_ERROR_E || ret == WS_CHANNEL_CLOSED) {
|
||||
WLOG(WS_LOG_DEBUG, scpState, "Peer hung up, but SCP is done");
|
||||
ret = WS_SUCCESS;
|
||||
}
|
||||
else if (ret != WS_EOF) {
|
||||
WLOG(WS_LOG_DEBUG, scpState, "Did not receive EOF packet");
|
||||
}
|
||||
else {
|
||||
|
|
Loading…
Reference in New Issue