forked from mirror/redis
feat: add strings function
This commit is contained in:
parent
002143fcee
commit
c097317875
|
@ -233,19 +233,14 @@ func setupClusterQueryParams(u *url.URL, o *ClusterOptions) (*ClusterOptions, er
|
|||
}
|
||||
|
||||
// addr can be specified as many times as needed
|
||||
addr := q.string("addr")
|
||||
for addr != "" {
|
||||
addrs := q.strings("addr")
|
||||
for _, addr := range addrs {
|
||||
h, p, err := net.SplitHostPort(addr)
|
||||
if err != nil || h == "" || p == "" {
|
||||
return nil, fmt.Errorf("redis: unable to parse addr param: %s", addr)
|
||||
}
|
||||
|
||||
o.Addrs = append(o.Addrs, net.JoinHostPort(h, p))
|
||||
|
||||
addr = q.string("addr")
|
||||
if q.err != nil {
|
||||
return nil, q.err
|
||||
}
|
||||
}
|
||||
|
||||
// any parameters left?
|
||||
|
|
18
options.go
18
options.go
|
@ -301,20 +301,18 @@ type queryOptions struct {
|
|||
}
|
||||
|
||||
func (o *queryOptions) string(name string) string {
|
||||
if len(o.q[name]) == 0 {
|
||||
vs := o.q[name]
|
||||
if len(vs) == 0 {
|
||||
return ""
|
||||
}
|
||||
// get the first item from the array to return
|
||||
// and remove it so it isn't processed again
|
||||
param := o.q[name][0]
|
||||
o.q[name] = o.q[name][1:]
|
||||
delete(o.q, name) // enable detection of unknown parameters
|
||||
return vs[len(vs)-1]
|
||||
}
|
||||
|
||||
// remove the key to enable detection of unknown params
|
||||
if len(o.q[name]) == 0 {
|
||||
func (o *queryOptions) strings(name string) []string {
|
||||
vs := o.q[name]
|
||||
delete(o.q, name)
|
||||
}
|
||||
|
||||
return param
|
||||
return vs
|
||||
}
|
||||
|
||||
func (o *queryOptions) int(name string) int {
|
||||
|
|
Loading…
Reference in New Issue