jwodder / confab Goto Github PK
View Code? Open in Web Editor NEWAsynchronous line-oriented interactive TCP client
License: MIT License
Asynchronous line-oriented interactive TCP client
License: MIT License
The outgoing socket can apparently be shut down with SinkExt::close()
, which (for Framed
) calls AsyncWriteExt::shutdown()
.
See also: the -N
and -q
options of OpenBSD's netcat(1)
:
-N
— Shutdown the socket after EOF on input-q <seconds>
— After EOF on input, wait <seconds>
and then quit; implies -N
Options:
-p/--source-port <port>
— Set source port-s/--source-ip <ip>
— Set source IP addressThis can be done via tokio::net::TcpSocket::bind()
.
Problem: Setting the source IP requires committing to either IPv4 or IPv6 and making a connection to one IP at a time, which means extra work when a domain name has multiple IPs. (Then again, std::net::TcpStream::connect()
handles domains with multiple IPs by just trying them one at at time.)
This calls AsyncWriteExt::shutdown()
.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates are awaiting their schedule. Click on a checkbox to get an update now.
Cargo.toml
anyhow 1.0.82
async-stream 0.3.5
bytes 1.6.0
cfg-if 1.0.0
clap 4.5.4
crossterm 0.28.1
futures-util 0.3.30
itertools 0.13.0
pin-project-lite 0.2.14
rustls-native-certs 0.7.0
rustls-pki-types 1.5.0
rustyline-async 0.4.3
thiserror 1.0.59
time 0.3.36
tokio 1.37.0
tokio-native-tls 0.3.1
tokio-rustls 0.26.0
tokio-util 0.7.11
unicode-general-category 0.6.0
assert_matches 1.5.0
expectrl 0.7.1
regex 1.10.4
rstest 0.22.0
serde 1.0.200
serde-jsonlines 0.6.0
serde_json 1.0.115
tempfile 3.10.1
time 0.3.36
tokio 1.37.0
tokio-stream 0.1.15
anyhow 1.0.82
cargo_metadata 0.18.1
semver 1.0.22
time 0.3.36
.github/workflows/test.yml
actions/checkout v4
Swatinem/rust-cache v2
actions/checkout v4
Swatinem/rust-cache v2
taiki-e/install-action v2
actions/checkout v4
Swatinem/rust-cache v2
taiki-e/install-action v2
codecov/codecov-action v4
actions/checkout v4
Swatinem/rust-cache v2
actions/checkout v4
EmbarkStudios/cargo-deny-action v2
actions/checkout v4
taiki-e/cache-cargo-install-action v2
Add the ability to configure the following on the command line:
Use IPv4 only
-4
, --ipv4
tokio::net::TcpSocket::new_v4()
Use IPv6 only
-6
, --ipv6
tokio::net::TcpSocket::new_v6()
TCP connection timeout in seconds
TCP read timeout?
TCP write timeout?
Set/unset TCP_NODELAY
?
Size of TCP receive buffer?
Size of TCP send buffer?
TTL/hop limit of outgoing packets?
Initial TCP keep alive timeout in seconds?
Interval for repeating TCP keep alive timeouts in seconds?
Number of times to repeat TCP keep alive packets?
Ask kernel to drop incoming packets whose TTL/hop limit is under a given value?
Some of these values may have to be set using https://docs.rs/socket2.
I have encountered the following problems while trying to test confab
on Windows, and they suggest that this program's support for Windows may currently be broken:
Trying to run the integration tests on GitHub Actions' Windows runners failed due to expectrl
being unable to capture any of confab
's output. This may be expectrl
's fault; see zhiburt/expectrl#52.
When I tried running confab
in a Windows VM (inside a git bash shell), pressing "Return" did not cause confab
to process or send any input or even to output the next prompt. This is presumably the fault of either the VM or rustyline-async
.
To Any Interested Windows Users: I would appreciate feedback on whether confab
works for you on your platform. Did you compile from source or download a release binary? If confab
doesn't work, does this test program work?
Only do this if a command-line option is given?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.