summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-01-18ChannelInner is Send + SyncWez Furlong
This allows Channel and Stream to be Send
2020-01-18Restore deleted Send implWez Furlong
Heh, I removed this by accident at the last minute before submitting the PR to the CI... restore it!
2020-01-18remove now-unused Binding traitWez Furlong
2020-01-18Make properly Send safeWez Furlong
In earlier iterations I accidentally removed Send from Session and then later restored it in an unsafe way. This commit restructures the bindings so that each of the objects holds a reference to the appropriate thing to keep everything alive safely, without awkward lifetimes to deal with. The key to this is that the underlying Session is tracked by an Arc<Mutex<>>, with the related objects ensuring that they lock this before they call into the underlying API. In order to make this work, I've had to adjust the API around iterating both known hosts and agent identities: previously these would iterate over internal references but with this shift there isn't a reasonable way to make that safe. The strategy is instead to return a copy of the host/identity data and then later look up the associated raw pointer when needed. The purist in me feels that the copy feels slightly wasteful, but the realist justifies this with the observation that the cardinality of both known hosts and identities is typically small enough that the cost of this is in the noise compared to actually doing the crypto+network ops. I've removed a couple of error code related helpers from some of the objects: those were really internal APIs and were redundant with methods exported by the Error type anyway. Fixes: https://github.com/alexcrichton/ssh2-rs/issues/154 Refs: https://github.com/alexcrichton/ssh2-rs/issues/137
2020-01-18rename unwrap_inner_or_err to get_innerbold
2020-01-18rename unwrap_raw_or_err to get_rawbold
2020-01-18simplify function signaturebold
2020-01-18eliminate conditionals when enforce blocking in destructorsbold
2020-01-18use take instead of as_refbold
2020-01-18set ssh2 to blocking when dropping sftp and filebold
2020-01-18make set_blocking and is_blocking available for inner sessionbold
2020-01-18add shutdown and close methodsbold
This commit exposes the `shutdown` method of `Sft` and `close` method of `File` to free resources. Previously this was done synchronously and therefor not usable in async wrappers. Whith the methods exposed they can be polled until success. If successful a flag is set to notify the destructor that no resources need to be freed anymore. However, if resources were not cleaned up by calling `close` or `shutdown` the destructor will clean up synchronously.
2020-01-18derive clone for sessionbold
2020-01-18derive Debug and Clone for PtyModesbold
2020-01-17macOS: use the set-env command to persist environment variablesYusuke Sasaki
2020-01-17use actions-rs/toolchain for Rust installationYusuke Sasaki
2020-01-14Bump libssh2-sys to 0.2.14Alex Crichton
2020-01-14Clarify licensesAlex Crichton
They've been present in `Cargo.toml` forever, add dedicated files as well
2020-01-11fix: define libssh2_socket_t using pointer width for aarch64 windowsHarrison Metzger
2020-01-11let compiler figure out the correct typebold
2020-01-11cargo fmtbold
2020-01-11let compiler figure out the correct typebold
2020-01-11simplify unwrap_or_else argumentbold
2020-01-11make retrieving last session error privatebold
2020-01-11return correct errorsbold
2020-01-03cargo fmtbold
2020-01-03export block directionsbold
2019-12-21use internal-sftp in sshd for testsbold
2019-12-08update systest ctest depsWez Furlong
2019-12-08update bitflags depWez Furlong
2019-12-08update readme for the imminent 0.6 releaseWez Furlong
2019-12-08map TIMEOUT -> std::io::ErrorKind::TimedOutWez Furlong
Closes: https://github.com/alexcrichton/ssh2-rs/issues/141
2019-12-08improve docsWez Furlong
2019-12-08A PtyModes helper for specifying terminal modesWez Furlong
Closes: https://github.com/alexcrichton/ssh2-rs/issues/145
2019-12-08CI: ugh, more problems with implicit shell on GH actions on windowsWez Furlong
2019-12-08CI: update GH actions for recent changes to defaultsWez Furlong
An unspecified shell now defaults to powershell, breaking config that was previously using cmd. This section was just for debugging purposes anyway, so remove it.
2019-11-06fix cargo doc linkWez Furlong
closes https://github.com/alexcrichton/ssh2-rs/issues/142
2019-10-20GH actions: maybe parameterize the rust toolchainWez Furlong
2019-10-20tests: disable UsePrivilegeSeparation for ubuntu 16Wez Furlong
2019-10-20dump server logWez Furlong
2019-10-20increase debugability of integration testsWez Furlong
2019-10-20Add linux build to GH actions CI configWez Furlong
2019-10-20make GH actions run on pushes to master too (fixes up badges)Wez Furlong
2019-10-20fixup links to GH actions workflowsWez Furlong
2019-10-20disable gh-pages deploy in travis configWez Furlong
It's not currently working and I don't think anyone uses the GH pages version of the docs.
2019-10-20fix warning in doc buildWez Furlong
2019-10-20add GH action badges to readmeWez Furlong
2019-10-20version bumpsWez Furlong
This is largely to accomodate making Session Send again, so go from 0.4 -> 0.5.
2019-10-20Make Session be `Send` againWez Furlong
Refs: https://github.com/alexcrichton/ssh2-rs/issues/137
2019-10-20complete deletion of src/test.rsWez Furlong
I think this was overlooked in c95e6ea1e74f82f1a889302978e37a7baf4073cf