MCPcopy
hub / github.com/redis/go-redis / setupConnParams

Function setupConnParams

options.go:662–715  ·  view source on GitHub ↗

setupConnParams converts query parameters in u to option value in o.

(u *url.URL, o *Options)

Source from the content-addressed store, hash-verified

660
661// setupConnParams converts query parameters in u to option value in o.
662func setupConnParams(u *url.URL, o *Options) (*Options, error) {
663 q := queryOptions{q: u.Query()}
664
665 // compat: a future major release may use q.int("db")
666 if tmp := q.string("db"); tmp != "" {
667 db, err := strconv.Atoi(tmp)
668 if err != nil {
669 return nil, fmt.Errorf("redis: invalid database number: %w", err)
670 }
671 o.DB = db
672 }
673
674 o.Protocol = q.int("protocol")
675 o.ClientName = q.string("client_name")
676 o.MaxRetries = q.int("max_retries")
677 o.MinRetryBackoff = q.duration("min_retry_backoff")
678 o.MaxRetryBackoff = q.duration("max_retry_backoff")
679 o.DialTimeout = q.duration("dial_timeout")
680 o.ReadTimeout = q.duration("read_timeout")
681 o.WriteTimeout = q.duration("write_timeout")
682 o.PoolFIFO = q.bool("pool_fifo")
683 o.PoolSize = q.int("pool_size")
684 o.PoolTimeout = q.duration("pool_timeout")
685 o.MinIdleConns = q.int("min_idle_conns")
686 o.MaxIdleConns = q.int("max_idle_conns")
687 o.MaxActiveConns = q.int("max_active_conns")
688 o.MaxConcurrentDials = q.int("max_concurrent_dials")
689 if q.has("conn_max_idle_time") {
690 o.ConnMaxIdleTime = q.duration("conn_max_idle_time")
691 } else {
692 o.ConnMaxIdleTime = q.duration("idle_timeout")
693 }
694 if q.has("conn_max_lifetime") {
695 o.ConnMaxLifetime = q.duration("conn_max_lifetime")
696 } else {
697 o.ConnMaxLifetime = q.duration("max_conn_age")
698 }
699 if q.has("conn_max_lifetime_jitter") {
700 o.ConnMaxLifetimeJitter = min(q.duration("conn_max_lifetime_jitter"), o.ConnMaxLifetime)
701 }
702 if q.err != nil {
703 return nil, q.err
704 }
705 if o.TLSConfig != nil && q.has("skip_verify") {
706 o.TLSConfig.InsecureSkipVerify = q.bool("skip_verify")
707 }
708
709 // any parameters left?
710 if r := q.remaining(); len(r) > 0 {
711 return nil, fmt.Errorf("redis: unexpected option: %s", strings.Join(r, ", "))
712 }
713
714 return o, nil
715}
716
717func getUserPassword(u *url.URL) (string, string) {
718 var user, password string

Callers 2

setupTCPConnFunction · 0.85
setupUnixConnFunction · 0.85

Calls 6

stringMethod · 0.95
intMethod · 0.95
durationMethod · 0.95
boolMethod · 0.95
hasMethod · 0.95
remainingMethod · 0.95

Tested by

no test coverage detected