Skip to content

Commit c097317

Browse files
feat: add strings function
1 parent 002143f commit c097317

File tree

2 files changed

+11
-18
lines changed

2 files changed

+11
-18
lines changed

cluster.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -233,19 +233,14 @@ func setupClusterQueryParams(u *url.URL, o *ClusterOptions) (*ClusterOptions, er
233233
}
234234

235235
// addr can be specified as many times as needed
236-
addr := q.string("addr")
237-
for addr != "" {
236+
addrs := q.strings("addr")
237+
for _, addr := range addrs {
238238
h, p, err := net.SplitHostPort(addr)
239239
if err != nil || h == "" || p == "" {
240240
return nil, fmt.Errorf("redis: unable to parse addr param: %s", addr)
241241
}
242242

243243
o.Addrs = append(o.Addrs, net.JoinHostPort(h, p))
244-
245-
addr = q.string("addr")
246-
if q.err != nil {
247-
return nil, q.err
248-
}
249244
}
250245

251246
// any parameters left?

options.go

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -301,20 +301,18 @@ type queryOptions struct {
301301
}
302302

303303
func (o *queryOptions) string(name string) string {
304-
if len(o.q[name]) == 0 {
304+
vs := o.q[name]
305+
if len(vs) == 0 {
305306
return ""
306307
}
307-
// get the first item from the array to return
308-
// and remove it so it isn't processed again
309-
param := o.q[name][0]
310-
o.q[name] = o.q[name][1:]
311-
312-
// remove the key to enable detection of unknown params
313-
if len(o.q[name]) == 0 {
314-
delete(o.q, name)
315-
}
308+
delete(o.q, name) // enable detection of unknown parameters
309+
return vs[len(vs)-1]
310+
}
316311

317-
return param
312+
func (o *queryOptions) strings(name string) []string {
313+
vs := o.q[name]
314+
delete(o.q, name)
315+
return vs
318316
}
319317

320318
func (o *queryOptions) int(name string) int {

0 commit comments

Comments
 (0)