Skip to content

Commit 1bd76eb

Browse files
committed
Merge remote-tracking branch 'origin/marco/bring-go-nat-home' into debug-nat-port-mapping
* origin/marco/bring-go-nat-home: (75 commits) go mod tidy reference internal package for mockgen mod tidy test-plans Make changes to internal nat library ci: move to actions/upload-artifact@v4 (#3152) tcpreuse: fix rcmgr accounting when tcp metrics are enabled (#3142) fix(net/nat): data race problem of `extAddr` (#3140) test: fix failing test (#3141) quicreuse: make it possible to use an application-constructed quic.Transport (#3122) nat: ignore mapping if external port is 0 (#3094) tcpreuse: error on using tcpreuse with pnet (#3129) chore: Update contribution guidelines (#3134) tcp: fix metrics test build directive (#3052) webrtc: upgrade pion/webrtc to v4 (#3098) ci: get back on the main release track of release checker (#3117) webtransport: fix docstring comment for getCurrentBucketStartTime chore: release v0.38.1 (#3114) fix(httpauth): Correctly handle concurrent requests on server (#3111) ci: Install specific protoc version when generating protobufs (#3112) fix(autorelay): Move relayFinder peer disconnect cleanup to separate goroutine (#3105) ...
2 parents 9cbceb9 + 35088ba commit 1bd76eb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+1835
-650
lines changed

Diff for: .github/workflows/go-test-template.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ jobs:
109109
run: test_analysis ${{ env.GOTESTFLAGS }}
110110
- name: Upload test results
111111
if: always()
112-
uses: actions/upload-artifact@v3
112+
uses: actions/upload-artifact@v4
113113
with:
114114
name: ${{ matrix.os }}_${{ matrix.go }}_test_results.db
115115
path: ./test_results.db
@@ -131,7 +131,7 @@ jobs:
131131
run: test_analysis -race ${{ env.GORACEFLAGS }} ./...
132132
- name: Upload test results (Race)
133133
if: (steps.race.conclusion == 'success' || steps.race.conclusion == 'failure')
134-
uses: actions/upload-artifact@v3
134+
uses: actions/upload-artifact@v4
135135
with:
136136
name: ${{ matrix.os }}_${{ matrix.go }}_test_results_race.db
137137
path: ./test_results.db

Diff for: .github/workflows/release-check.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ concurrency:
1616

1717
jobs:
1818
release-check:
19-
uses: marcopolo/unified-github-workflows/.github/workflows/release-check.yml@e66cb9667a2e1148efda4591e29c56258eaf385b
19+
uses: ipdxco/unified-github-workflows/.github/workflows/release-check.yml@v1.0

Diff for: README.md

+14-1
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,25 @@ Guidelines:
6767
- ask questions or talk about things in our [discussion forums](https://discuss.libp2p.io), or open an [issue](https://github.com/libp2p/go-libp2p/issues) for bug reports, or #libp2p-implementers on [Filecoin slack](https://filecoin.io/slack).
6868
- ensure you are able to contribute (no legal issues please -- we use the DCO)
6969
- get in touch with @libp2p/go-libp2p-maintainers about how best to contribute
70+
- No drive-by contributions seeking to collect airdrops.
71+
- Many projects aim to reward contributors to common goods. Great. However,
72+
this creates an unfortunate incentive for low-effort PRs, submitted solely to
73+
claim rewards. These PRs consume maintainers’ time and energy to triage, with
74+
little to no impact on end users. If we suspect this is the intent of a PR,
75+
we may close it without comment. If you believe this was done in error,
76+
contact us via email. Reference this README section and explain why your PR
77+
is not a “drive-by contribution.”
7078
- have fun!
7179

7280
There's a few things you can do right now to help out:
73-
- Go through the modules below and **check out existing issues**. This would be especially useful for modules in active development. Some knowledge of IPFS/libp2p may be required, as well as the infrastructure behind it - for instance, you may need to read up on p2p and more complex operations like muxing to be able to help technically.
7481
- **Perform code reviews**.
7582
- **Add tests**. There can never be enough tests.
83+
- Go through the modules below and **check out existing issues**. This would
84+
be especially useful for modules in active development. Some knowledge of
85+
IPFS/libp2p may be required, as well as the infrastructure behind it - for
86+
instance, you may need to read up on p2p and more complex operations like
87+
muxing to be able to help technically.
88+
7689

7790
## Supported Go Versions
7891

Diff for: config/config.go

+29-5
Original file line numberDiff line numberDiff line change
@@ -446,12 +446,9 @@ func (cfg *Config) newBasicHost(swrm *swarm.Swarm, eventBus event.Bus) (*bhost.B
446446
return h, nil
447447
}
448448

449-
// NewNode constructs a new libp2p Host from the Config.
450-
//
451-
// This function consumes the config. Do not reuse it (really!).
452-
func (cfg *Config) NewNode() (host.Host, error) {
449+
func (cfg *Config) validate() error {
453450
if cfg.EnableAutoRelay && !cfg.Relay {
454-
return nil, fmt.Errorf("cannot enable autorelay; relay is not enabled")
451+
return fmt.Errorf("cannot enable autorelay; relay is not enabled")
455452
}
456453
// If possible check that the resource manager conn limit is higher than the
457454
// limit set in the conn manager.
@@ -462,6 +459,33 @@ func (cfg *Config) NewNode() (host.Host, error) {
462459
}
463460
}
464461

462+
if len(cfg.PSK) > 0 && cfg.ShareTCPListener {
463+
return errors.New("cannot use shared TCP listener with PSK")
464+
}
465+
466+
return nil
467+
}
468+
469+
// NewNode constructs a new libp2p Host from the Config.
470+
//
471+
// This function consumes the config. Do not reuse it (really!).
472+
func (cfg *Config) NewNode() (host.Host, error) {
473+
474+
validateErr := cfg.validate()
475+
if validateErr != nil {
476+
if cfg.ResourceManager != nil {
477+
cfg.ResourceManager.Close()
478+
}
479+
if cfg.ConnManager != nil {
480+
cfg.ConnManager.Close()
481+
}
482+
if cfg.Peerstore != nil {
483+
cfg.Peerstore.Close()
484+
}
485+
486+
return nil, validateErr
487+
}
488+
465489
if !cfg.DisableMetrics {
466490
rcmgr.MustRegisterWith(cfg.PrometheusRegisterer)
467491
}

Diff for: core/crypto/pb/crypto.pb.go

+10-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: core/peer/pb/peer_record.pb.go

+9-11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: core/record/pb/envelope.pb.go

+6-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: core/sec/insecure/pb/plaintext.pb.go

+6-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: go.mod

+32-29
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ module github.com/libp2p/go-libp2p
22

33
go 1.22.0
44

5-
toolchain go1.22.1
6-
75
retract v0.26.1 // Tag was applied incorrectly due to a bug in the release workflow.
86

97
retract v0.36.0 // Accidentally modified the tag.
@@ -17,28 +15,30 @@ require (
1715
github.com/gorilla/websocket v1.5.3
1816
github.com/hashicorp/golang-lru/arc/v2 v2.0.7
1917
github.com/hashicorp/golang-lru/v2 v2.0.7
18+
github.com/huin/goupnp v1.3.0
2019
github.com/ipfs/go-cid v0.4.1
2120
github.com/ipfs/go-datastore v0.6.0
2221
github.com/ipfs/go-ds-badger v0.3.0
2322
github.com/ipfs/go-ds-leveldb v0.5.0
2423
github.com/ipfs/go-log/v2 v2.5.1
24+
github.com/jackpal/go-nat-pmp v1.0.2
2525
github.com/jbenet/go-temp-err-catcher v0.1.0
2626
github.com/klauspost/compress v1.17.11
27+
github.com/koron/go-ssdp v0.0.4
2728
github.com/libp2p/go-buffer-pool v0.1.0
2829
github.com/libp2p/go-flow-metrics v0.2.0
2930
github.com/libp2p/go-libp2p-asn-util v0.4.1
3031
github.com/libp2p/go-libp2p-testing v0.12.0
3132
github.com/libp2p/go-msgio v0.3.0
32-
github.com/libp2p/go-nat v0.2.0
33-
github.com/libp2p/go-netroute v0.2.1
33+
github.com/libp2p/go-netroute v0.2.2
3434
github.com/libp2p/go-reuseport v0.4.0
3535
github.com/libp2p/go-yamux/v4 v4.0.1
3636
github.com/libp2p/zeroconf/v2 v2.2.0
3737
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd
3838
github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b
3939
github.com/mr-tron/base58 v1.2.0
4040
github.com/multiformats/go-base32 v0.1.0
41-
github.com/multiformats/go-multiaddr v0.13.0
41+
github.com/multiformats/go-multiaddr v0.14.0
4242
github.com/multiformats/go-multiaddr-dns v0.4.1
4343
github.com/multiformats/go-multiaddr-fmt v0.1.0
4444
github.com/multiformats/go-multibase v0.2.0
@@ -47,28 +47,28 @@ require (
4747
github.com/multiformats/go-multistream v0.6.0
4848
github.com/multiformats/go-varint v0.0.7
4949
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
50-
github.com/pion/datachannel v1.5.9
51-
github.com/pion/ice/v2 v2.3.36
50+
github.com/pion/datachannel v1.5.10
51+
github.com/pion/ice/v2 v2.3.37
5252
github.com/pion/logging v0.2.2
53-
github.com/pion/sctp v1.8.33
53+
github.com/pion/sctp v1.8.35
5454
github.com/pion/stun v0.6.1
55-
github.com/pion/webrtc/v3 v3.3.4
55+
github.com/pion/webrtc/v4 v4.0.7
5656
github.com/prometheus/client_golang v1.20.5
5757
github.com/prometheus/client_model v0.6.1
5858
github.com/quic-go/quic-go v0.48.2
5959
github.com/quic-go/webtransport-go v0.8.1-0.20241018022711-4ac2c9250e66
6060
github.com/raulk/go-watchdog v1.3.0
61-
github.com/stretchr/testify v1.9.0
61+
github.com/stretchr/testify v1.10.0
6262
go.uber.org/fx v1.23.0
6363
go.uber.org/goleak v1.3.0
6464
go.uber.org/mock v0.5.0
6565
go.uber.org/zap v1.27.0
66-
golang.org/x/crypto v0.28.0
67-
golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c
68-
golang.org/x/sync v0.8.0
69-
golang.org/x/sys v0.26.0
70-
golang.org/x/tools v0.26.0
71-
google.golang.org/protobuf v1.35.1
66+
golang.org/x/crypto v0.31.0
67+
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67
68+
golang.org/x/sync v0.10.0
69+
golang.org/x/sys v0.28.0
70+
golang.org/x/tools v0.28.0
71+
google.golang.org/protobuf v1.36.0
7272
)
7373

7474
require (
@@ -90,45 +90,48 @@ require (
9090
github.com/gogo/protobuf v1.3.2 // indirect
9191
github.com/golang/protobuf v1.5.3 // indirect
9292
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db // indirect
93-
github.com/google/pprof v0.0.0-20241017200806-017d972448fc // indirect
93+
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
9494
github.com/google/uuid v1.6.0 // indirect
95-
github.com/huin/goupnp v1.3.0 // indirect
96-
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
9795
github.com/jbenet/goprocess v0.1.4 // indirect
98-
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
99-
github.com/koron/go-ssdp v0.0.4 // indirect
96+
github.com/klauspost/cpuid/v2 v2.2.9 // indirect
10097
github.com/mattn/go-isatty v0.0.20 // indirect
10198
github.com/miekg/dns v1.1.62 // indirect
10299
github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect
103100
github.com/minio/sha256-simd v1.0.1 // indirect
104101
github.com/multiformats/go-base36 v0.2.0 // indirect
105102
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
106103
github.com/nxadm/tail v1.4.11 // indirect
107-
github.com/onsi/ginkgo/v2 v2.20.2 // indirect
104+
github.com/onsi/ginkgo/v2 v2.22.0 // indirect
108105
github.com/opencontainers/runtime-spec v1.2.0 // indirect
109106
github.com/pion/dtls/v2 v2.2.12 // indirect
107+
github.com/pion/dtls/v3 v3.0.4 // indirect
108+
github.com/pion/ice/v4 v4.0.3 // indirect
110109
github.com/pion/interceptor v0.1.37 // indirect
111110
github.com/pion/mdns v0.0.12 // indirect
111+
github.com/pion/mdns/v2 v2.0.7 // indirect
112112
github.com/pion/randutil v0.1.0 // indirect
113-
github.com/pion/rtcp v1.2.14 // indirect
114-
github.com/pion/rtp v1.8.9 // indirect
113+
github.com/pion/rtcp v1.2.15 // indirect
114+
github.com/pion/rtp v1.8.10 // indirect
115115
github.com/pion/sdp/v3 v3.0.9 // indirect
116-
github.com/pion/srtp/v2 v2.0.20 // indirect
116+
github.com/pion/srtp/v3 v3.0.4 // indirect
117+
github.com/pion/stun/v3 v3.0.0 // indirect
117118
github.com/pion/transport/v2 v2.2.10 // indirect
119+
github.com/pion/transport/v3 v3.0.7 // indirect
118120
github.com/pion/turn/v2 v2.1.6 // indirect
121+
github.com/pion/turn/v4 v4.0.0 // indirect
119122
github.com/pkg/errors v0.9.1 // indirect
120123
github.com/pmezard/go-difflib v1.0.0 // indirect
121-
github.com/prometheus/common v0.60.0 // indirect
124+
github.com/prometheus/common v0.61.0 // indirect
122125
github.com/prometheus/procfs v0.15.1 // indirect
123126
github.com/quic-go/qpack v0.5.1 // indirect
124127
github.com/spaolacci/murmur3 v1.1.0 // indirect
125128
github.com/syndtr/goleveldb v1.0.0 // indirect
126129
github.com/wlynxg/anet v0.0.5 // indirect
127130
go.uber.org/dig v1.18.0 // indirect
128131
go.uber.org/multierr v1.11.0 // indirect
129-
golang.org/x/mod v0.21.0 // indirect
130-
golang.org/x/net v0.30.0 // indirect
131-
golang.org/x/text v0.19.0 // indirect
132+
golang.org/x/mod v0.22.0 // indirect
133+
golang.org/x/net v0.32.0 // indirect
134+
golang.org/x/text v0.21.0 // indirect
132135
gopkg.in/yaml.v3 v3.0.1 // indirect
133136
lukechampine.com/blake3 v1.3.0 // indirect
134137
)

0 commit comments

Comments
 (0)