mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-24 20:07:45 +08:00
dont need coreos/semver yet
This commit is contained in:
parent
78eb349360
commit
9dc58639fa
@ -215,7 +215,7 @@ func (s *Swarm) connVersionExchange(remote *conn.Conn) error {
|
||||
}
|
||||
}
|
||||
|
||||
if !version.Compatible(myVersion.Convert(), remoteVersion.Convert()) {
|
||||
if !version.Compatible(myVersion, remoteVersion) {
|
||||
remote.Close()
|
||||
return errors.New("protocol missmatch")
|
||||
}
|
||||
|
||||
@ -1,38 +1,23 @@
|
||||
package version
|
||||
|
||||
import semver "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/coreos/go-semver/semver"
|
||||
|
||||
var currentVersion = &semver.Version{
|
||||
Major: 0,
|
||||
Minor: 1,
|
||||
Patch: 0,
|
||||
}
|
||||
// currentVersion holds the current protocol version for a client running this code
|
||||
var currentVersion = NewSemVer(0, 0, 1)
|
||||
|
||||
// Current returns the current protocol version as a protobuf message
|
||||
func Current() *SemVer {
|
||||
return toPBSemVer(currentVersion)
|
||||
return currentVersion
|
||||
}
|
||||
|
||||
// Compatible checks wether two versions are compatible
|
||||
func Compatible(a, b semver.Version) bool {
|
||||
return !a.LessThan(b)
|
||||
func Compatible(a, b *SemVer) bool {
|
||||
return *a.Major == *b.Major // protobuf fields are pointers
|
||||
}
|
||||
|
||||
// toPBSemVar converts a coreos/semver to our protobuf SemVer
|
||||
func toPBSemVer(in *semver.Version) (out *SemVer) {
|
||||
|
||||
return &SemVer{
|
||||
Major: &in.Major,
|
||||
Minor: &in.Minor,
|
||||
Patch: &in.Patch,
|
||||
}
|
||||
}
|
||||
|
||||
// Convert our protobuf SemVer to a coreos/semver
|
||||
func (in SemVer) Convert() semver.Version {
|
||||
return semver.Version{
|
||||
Major: *in.Major,
|
||||
Minor: *in.Minor,
|
||||
Patch: *in.Patch,
|
||||
}
|
||||
// NewSemVer constructs a new protobuf SemVer
|
||||
func NewSemVer(major, minor, patch int64) *SemVer {
|
||||
s := new(SemVer)
|
||||
s.Major = &major
|
||||
s.Minor = &minor
|
||||
s.Patch = &patch
|
||||
return s
|
||||
}
|
||||
|
||||
@ -1,20 +1,16 @@
|
||||
package version
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
semver "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/coreos/go-semver/semver"
|
||||
)
|
||||
import "testing"
|
||||
|
||||
func TestCompatible(t *testing.T) {
|
||||
tcases := []struct {
|
||||
a, b semver.Version
|
||||
a, b *SemVer
|
||||
expected bool
|
||||
}{
|
||||
{semver.Version{Major: 0}, semver.Version{Major: 0}, true},
|
||||
{semver.Version{Major: 1}, semver.Version{Major: 0}, true},
|
||||
{semver.Version{Major: 1}, semver.Version{Major: 1}, true},
|
||||
{semver.Version{Major: 0}, semver.Version{Major: 1}, false},
|
||||
{NewSemVer(0, 0, 0), NewSemVer(0, 0, 0), true},
|
||||
{NewSemVer(0, 0, 0), NewSemVer(1, 0, 0), false},
|
||||
{NewSemVer(1, 0, 0), NewSemVer(0, 0, 0), false},
|
||||
{NewSemVer(1, 0, 0), NewSemVer(1, 0, 0), true},
|
||||
}
|
||||
|
||||
for i, tcase := range tcases {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user