Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
go-libp2p
Commits
7eaeeaa9
Unverified
Commit
7eaeeaa9
authored
Oct 24, 2018
by
Steven Allen
Committed by
GitHub
Oct 24, 2018
Browse files
Merge pull request #461 from libp2p/fix/remove-protocol-version-check
don't disconnect on protocol version mismatch
parents
ddd5604b
dd7868a1
Changes
2
Show whitespace changes
Inline
Side-by-side
p2p/protocol/identify/id.go
View file @
7eaeeaa9
...
...
@@ -2,12 +2,10 @@ package identify
import
(
"context"
"strings"
"sync"
pb
"github.com/libp2p/go-libp2p/p2p/protocol/identify/pb"
semver
"github.com/coreos/go-semver/semver"
ggio
"github.com/gogo/protobuf/io"
logging
"github.com/ipfs/go-log"
ic
"github.com/libp2p/go-libp2p-crypto"
...
...
@@ -225,15 +223,6 @@ func (ids *IDService) consumeMessage(mes *pb.Identify, c inet.Conn) {
pv
:=
mes
.
GetProtocolVersion
()
av
:=
mes
.
GetAgentVersion
()
// version check. if we shouldn't talk, bail.
// TODO: at this point, we've already exchanged information.
// move this into a first handshake before the connection can open streams.
if
!
protocolVersionsAreCompatible
(
pv
,
LibP2PVersion
)
{
logProtocolMismatchDisconnect
(
c
,
pv
,
av
)
c
.
Close
()
return
}
ids
.
Host
.
Peerstore
()
.
Put
(
p
,
"ProtocolVersion"
,
pv
)
ids
.
Host
.
Peerstore
()
.
Put
(
p
,
"AgentVersion"
,
av
)
...
...
@@ -406,31 +395,6 @@ func addrInAddrs(a ma.Multiaddr, as []ma.Multiaddr) bool {
return
false
}
// protocolVersionsAreCompatible checks that the two implementations
// can talk to each other. It will use semver, but for now while
// we're in tight development, we will return false for minor version
// changes too.
func
protocolVersionsAreCompatible
(
v1
,
v2
string
)
bool
{
if
strings
.
HasPrefix
(
v1
,
"ipfs/"
)
{
v1
=
v1
[
5
:
]
}
if
strings
.
HasPrefix
(
v2
,
"ipfs/"
)
{
v2
=
v2
[
5
:
]
}
v1s
,
err
:=
semver
.
NewVersion
(
v1
)
if
err
!=
nil
{
return
false
}
v2s
,
err
:=
semver
.
NewVersion
(
v2
)
if
err
!=
nil
{
return
false
}
return
v1s
.
Major
==
v2s
.
Major
&&
v1s
.
Minor
==
v2s
.
Minor
}
// netNotifiee defines methods to be used with the IpfsDHT
type
netNotifiee
IDService
...
...
package.json
View file @
7eaeeaa9
...
...
@@ -8,11 +8,6 @@
"goversion"
:
"1.5.2"
},
"gxDependencies"
:
[
{
"hash"
:
"QmcrrEpx3VMUbrbgVroH3YiYyUS5c4YAykzyPJWKspUYLa"
,
"name"
:
"go-semver"
,
"version"
:
"0.0.0"
},
{
"hash"
:
"QmekaTKpWkYGcn4ZEC5PwJDRCQHapwugmmG86g2Xpz5GBH"
,
"name"
:
"mdns"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment