From 9dc58639faec99ffa3ea6d5d4c4ef28bd000cd7e Mon Sep 17 00:00:00 2001 From: Henry Date: Thu, 16 Oct 2014 13:00:43 +0200 Subject: [PATCH] dont need coreos/semver yet --- net/swarm/conn.go | 2 +- net/version/version.go | 39 ++++++++++++------------------------- net/version/version_test.go | 16 ++++++--------- 3 files changed, 19 insertions(+), 38 deletions(-) diff --git a/net/swarm/conn.go b/net/swarm/conn.go index 4e94fd05c..023be37b0 100644 --- a/net/swarm/conn.go +++ b/net/swarm/conn.go @@ -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") } diff --git a/net/version/version.go b/net/version/version.go index 7b9926aed..db9d3a12a 100644 --- a/net/version/version.go +++ b/net/version/version.go @@ -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 } diff --git a/net/version/version_test.go b/net/version/version_test.go index 97b60d9f8..c56334f22 100644 --- a/net/version/version_test.go +++ b/net/version/version_test.go @@ -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 {