Implements UPnP via the IGD protocol. The usage of IGD is an implementation detail and is planned to be extended to support NATpnp.
Resolves: #3903.
Pull-Request: #4156.
Configuration files generated by Kubo <= v0.22 list both `/quic` and `/quic-v1` listen addresses with the same UDP port. Given that we enable draft-29, the two addresses are treated the same by rust-libp2p's QUIC implementation. Though calling `listen_on` with both results in an "Address already in use" error by the OS on the second call. To prevent this from happening filter out `/quic` addresses in favor of `/quic-v1`.
Pull-Request: #4467.
This PR adds a delay to ping connection handler after exceeding the failure rate to prevent opening a outbound stream right after an error.
Resolves#4410.
Pull-Request: #4423.
When we moved our examples, the hole-punching docs were not updated for the new names of the binaries. We adjust them such that the tutorial works again.
Pull-Request: #4458.
This PR replaces our home-grown `cargo semver-checks` action with the official one: https://github.com/obi1kenobi/cargo-semver-checks-action/issues/47.
This action has support for cargo workspaces and will automatically check all crates that have `publish` set to `true`. This removes a big time component for our CI checks and introduces one that runs in parallel with all others. I hope to reduce the effective CI time through that, plus it means we need to maintain less code.
The official action would download the latest release of cargo-semver-checks. This might result in a non-reproducible CI. To avoid this, we retain the one-line download statement from our home-grown action.
Pull-Request: #3923.
This commit reverts the previous metrics behavior. Namely:
- adhering to --metrics-path flag
- listening on 0.0.0.0:8888 instead of 127.0.0.1:8080
Note that 8888 is the default IPFS debug (aka. metrics) port.
See https://github.com/mxinden/rust-libp2p-server/blob/master/src/metric_server.rs for previous behavior.
Pull-Request: #4392.
Previously, only the clippy job was denying warnings. We have many other CI jobs that compile our library in all sorts of configurations. All of them should be free of warnings.
Pull-Request: #4384.
One needs to specify a version of `libp2p` dependeny in `misc/server/Cargo.toml` or import as a workspace dependency, in order to publish to crates.io.
This commit does the latter for the sake of consistency with the other libp2p-* dependencies.
Pull-Request: #4391.