Commit 9dc58639 authored by Henry's avatar Henry

dont need coreos/semver yet

parent 78eb3493
......@@ -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")
}
......
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)
}
// 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,
}
func Compatible(a, b *SemVer) bool {
return *a.Major == *b.Major // protobuf fields are pointers
}
// 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
}
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 {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment