浏览代码

Fix peer.version length validation.

Versions can have 2 or 3 parts.
Muir Manders 9 年之前
父节点
当前提交
3be4c82e76
共有 2 个文件被更改,包括 8 次插入6 次删除
  1. 7 5
      cassandra_test.go
  2. 1 1
      host_source.go

+ 7 - 5
cassandra_test.go

@@ -78,10 +78,7 @@ func TestEmptyHosts(t *testing.T) {
 }
 
 func TestInvalidPeerEntry(t *testing.T) {
-	cluster := createCluster()
-	cluster.PoolConfig.HostSelectionPolicy = TokenAwareHostPolicy(RoundRobinHostPolicy())
-	session := createSessionFromCluster(cluster, t)
-	defer session.Close()
+	session := createSession(t)
 
 	// rack, release_version, schema_version, tokens are all null
 	query := session.Query("INSERT into system.peers (peer, data_center, host_id, rpc_address) VALUES (?, ?, ?, ?)",
@@ -91,13 +88,18 @@ func TestInvalidPeerEntry(t *testing.T) {
 		"169.254.235.45",
 	)
 
+	// clean up naughty peer
+	defer session.Query("DELETE from system.peers where peer == ?", "169.254.235.45").Exec()
+
 	if err := query.Exec(); err != nil {
 		t.Fatal(err)
 	}
 
 	session.Close()
 
-	session = createSession(t)
+	cluster := createCluster()
+	cluster.PoolConfig.HostSelectionPolicy = TokenAwareHostPolicy(RoundRobinHostPolicy())
+	session = createSessionFromCluster(cluster, t)
 	defer session.Close()
 
 	// check we can perform a query

+ 1 - 1
host_source.go

@@ -47,7 +47,7 @@ func (c *cassVersion) unmarshal(data []byte) error {
 	version = strings.TrimPrefix(version, "v")
 	v := strings.Split(version, ".")
 
-	if len(v) < 3 {
+	if len(v) < 2 {
 		return fmt.Errorf("invalid version string: %s", data)
 	}