dont need coreos/semver yet
Henry committed
Oct 16, 2014 at 13:00 UTC
9dc58639faec99ffa3ea6d5d4c4ef28bd000cd7e
3 files changed
+19
-38
net/swarm/conn.go
+1
-1
@@ -215,7 +215,7 @@ func (s *Swarm) connVersionExchange(remote *conn.Conn) error {
215
}
216
}
217
218
- if !version.Compatible(myVersion.Convert(), remoteVersion.Convert()) {
218
+ if !version.Compatible(myVersion, remoteVersion) {
219
remote.Close()
220
return errors.New("protocol missmatch")
221
}
net/version/version.go
+12
-27
@@ -1,38 +1,23 @@
1
package version
2
3
-import semver "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/coreos/go-semver/semver"
4
-
5
-var currentVersion = &semver.Version{
6
- Major: 0,
7
- Minor: 1,
8
- Patch: 0,
9
-}
3
+// currentVersion holds the current protocol version for a client running this code
4
+var currentVersion = NewSemVer(0, 0, 1)
5
6
// Current returns the current protocol version as a protobuf message
7
func Current() *SemVer {
13
- return toPBSemVer(currentVersion)
8
+ return currentVersion
9
}
10
11
// Compatible checks wether two versions are compatible
17
-func Compatible(a, b semver.Version) bool {
18
- return !a.LessThan(b)
19
-}
20
-
21
-// toPBSemVar converts a coreos/semver to our protobuf SemVer
22
-func toPBSemVer(in *semver.Version) (out *SemVer) {
23
-
24
- return &SemVer{
25
- Major: &in.Major,
26
- Minor: &in.Minor,
27
- Patch: &in.Patch,
28
- }
12
+func Compatible(a, b *SemVer) bool {
13
+ return *a.Major == *b.Major // protobuf fields are pointers
14
}
15
31
-// Convert our protobuf SemVer to a coreos/semver
32
-func (in SemVer) Convert() semver.Version {
33
- return semver.Version{
34
- Major: *in.Major,
35
- Minor: *in.Minor,
36
- Patch: *in.Patch,
37
- }
16
+// NewSemVer constructs a new protobuf SemVer
17
+func NewSemVer(major, minor, patch int64) *SemVer {
18
+ s := new(SemVer)
19
+ s.Major = &major
20
+ s.Minor = &minor
21
+ s.Patch = &patch
22
+ return s
23
}
net/version/version_test.go
+6
-10
@@ -1,20 +1,16 @@
1
package version
2
3
-import (
4
- "testing"
5
-
6
- semver "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/coreos/go-semver/semver"
7
-)
3
+import "testing"
4
5
func TestCompatible(t *testing.T) {
6
tcases := []struct {
11
- a, b semver.Version
7
+ a, b *SemVer
8
expected bool
9
}{
14
- {semver.Version{Major: 0}, semver.Version{Major: 0}, true},
15
- {semver.Version{Major: 1}, semver.Version{Major: 0}, true},
16
- {semver.Version{Major: 1}, semver.Version{Major: 1}, true},
17
- {semver.Version{Major: 0}, semver.Version{Major: 1}, false},
10
+ {NewSemVer(0, 0, 0), NewSemVer(0, 0, 0), true},
11
+ {NewSemVer(0, 0, 0), NewSemVer(1, 0, 0), false},
12
+ {NewSemVer(1, 0, 0), NewSemVer(0, 0, 0), false},
13
+ {NewSemVer(1, 0, 0), NewSemVer(1, 0, 0), true},
14
}
15
16
for i, tcase := range tcases {