Skip to content

Commit 5da0272

Browse files
committed
Fix, Test issue of readPreferenceTags= in URI
GODRIVER-1078 If URI ends with readPreferenceTags= then we just ignore that additional tag. Tests added ensure that this additional element of the URI is ignored Change-Id: Ic3e1385c98156f831055da2570a8d908d95248b6
1 parent ff04022 commit 5da0272

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

x/network/connstring/connstring.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,6 +546,11 @@ func (p *parser) addOption(pair string) error {
546546
case "readpreference":
547547
p.ReadPreference = value
548548
case "readpreferencetags":
549+
if value == "" {
550+
// for when readPreferenceTags= at end of URI
551+
break
552+
}
553+
549554
tags := make(map[string]string)
550555
items := strings.Split(value, ",")
551556
for _, item := range items {

x/network/connstring/connstring_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,10 +282,13 @@ func TestReadPreferenceTags(t *testing.T) {
282282
expected []map[string]string
283283
err bool
284284
}{
285+
{s: "", expected: nil},
285286
{s: "readPreferenceTags=one:1", expected: []map[string]string{{"one": "1"}}},
286287
{s: "readPreferenceTags=one:1,two:2", expected: []map[string]string{{"one": "1", "two": "2"}}},
287288
{s: "readPreferenceTags=one:1&readPreferenceTags=two:2", expected: []map[string]string{{"one": "1"}, {"two": "2"}}},
288289
{s: "readPreferenceTags=one:1:3,two:2", err: true},
290+
{s: "readPreferenceTags=one:1&readPreferenceTags=two:2&readPreferenceTags=", expected: []map[string]string{{"one": "1"}, {"two": "2"}}},
291+
{s: "readPreferenceTags=", expected: nil},
289292
}
290293

291294
for _, test := range tests {

0 commit comments

Comments
 (0)