diff --git a/datalogtool/src/main/native/cpp/Sftp.cpp b/datalogtool/src/main/native/cpp/Sftp.cpp index 42f2d039ac..fe418d4e4c 100644 --- a/datalogtool/src/main/native/cpp/Sftp.cpp +++ b/datalogtool/src/main/native/cpp/Sftp.cpp @@ -75,25 +75,6 @@ size_t File::Read(void* buf, uint32_t count) { return rv; } -File::AsyncId File::AsyncReadBegin(uint32_t len) const { - int rv = sftp_async_read_begin(m_handle, len); - if (rv < 0) { - throw Exception{m_handle->sftp}; - } - return rv; -} - -size_t File::AsyncRead(void* data, uint32_t len, AsyncId id) { - auto rv = sftp_async_read(m_handle, data, len, id); - if (rv == SSH_ERROR) { - throw Exception{ssh_get_error(m_handle->sftp->session)}; - } - if (rv == SSH_AGAIN) { - return 0; - } - return rv; -} - size_t File::Write(std::span data) { auto rv = sftp_write(m_handle, data.data(), data.size()); if (rv < 0) { diff --git a/datalogtool/src/main/native/cpp/Sftp.h b/datalogtool/src/main/native/cpp/Sftp.h index e033c65d2e..d2ad809784 100644 --- a/datalogtool/src/main/native/cpp/Sftp.h +++ b/datalogtool/src/main/native/cpp/Sftp.h @@ -47,11 +47,7 @@ class File { void SetNonblocking() { sftp_file_set_nonblocking(m_handle); } void SetBlocking() { sftp_file_set_blocking(m_handle); } - using AsyncId = uint32_t; - size_t Read(void* buf, uint32_t count); - AsyncId AsyncReadBegin(uint32_t len) const; - size_t AsyncRead(void* data, uint32_t len, AsyncId id); size_t Write(std::span data); void Seek(uint64_t offset); diff --git a/roborioteamnumbersetter/src/main/native/cpp/SshSession.cpp b/roborioteamnumbersetter/src/main/native/cpp/SshSession.cpp index e20da94d45..8da62444b6 100644 --- a/roborioteamnumbersetter/src/main/native/cpp/SshSession.cpp +++ b/roborioteamnumbersetter/src/main/native/cpp/SshSession.cpp @@ -86,7 +86,13 @@ void SshSession::Execute(std::string_view cmd) { ssh_channel_free(channel); throw SshException(ssh_get_error(m_session)); } - INFO("{} {}", ssh_channel_get_exit_status(channel), cmd); + uint32_t exitCode = 0; +#if LIBSSH_VERSION_MAJOR == 0 && LIBSSH_VERSION_MINOR >= 11 + ssh_channel_get_exit_state(channel, &exitCode, nullptr, nullptr); +#else + exitCode = ssh_channel_get_exit_status(channel); +#endif + INFO("{} {}", exitCode, cmd); // Log output. char buf[512]; @@ -136,11 +142,17 @@ std::string SshSession::ExecuteResult(std::string_view cmd, int* exitStatus) { ssh_channel_free(channel); throw SshException(ssh_get_error(m_session)); } - INFO("{} {}", ssh_channel_get_exit_status(channel), cmd); + uint32_t exitCode = 0; +#if LIBSSH_VERSION_MAJOR == 0 && LIBSSH_VERSION_MINOR >= 11 + ssh_channel_get_exit_state(channel, &exitCode, nullptr, nullptr); +#else + ssh_channel_get_exit_status(channel); +#endif + INFO("{} {}", exitCode, cmd); std::string result; if (exitStatus) { - *exitStatus = ssh_channel_get_exit_status(channel); + *exitStatus = exitCode; } // Log output.