MCPcopy
hub / github.com/CodisLabs/codis / setup

Method setup

pkg/proxy/proxy.go:105–158  ·  view source on GitHub ↗
(config *Config)

Source from the content-addressed store, hash-verified

103}
104
105func (s *Proxy) setup(config *Config) error {
106 proto := config.ProtoType
107 if l, err := net.Listen(proto, config.ProxyAddr); err != nil {
108 return errors.Trace(err)
109 } else {
110 s.lproxy = l
111
112 x, err := utils.ReplaceUnspecifiedIP(proto, l.Addr().String(), config.HostProxy)
113 if err != nil {
114 return err
115 }
116 s.model.ProtoType = proto
117 s.model.ProxyAddr = x
118 }
119
120 proto = "tcp"
121 if l, err := net.Listen(proto, config.AdminAddr); err != nil {
122 return errors.Trace(err)
123 } else {
124 s.ladmin = l
125
126 x, err := utils.ReplaceUnspecifiedIP(proto, l.Addr().String(), config.HostAdmin)
127 if err != nil {
128 return err
129 }
130 s.model.AdminAddr = x
131 }
132
133 s.model.Token = rpc.NewToken(
134 config.ProductName,
135 s.lproxy.Addr().String(),
136 s.ladmin.Addr().String(),
137 )
138 s.xauth = rpc.NewXAuth(
139 config.ProductName,
140 config.ProductAuth,
141 s.model.Token,
142 )
143
144 if config.JodisAddr != "" {
145 c, err := models.NewClient(config.JodisName, config.JodisAddr, config.JodisAuth, config.JodisTimeout.Duration())
146 if err != nil {
147 return err
148 }
149 if config.JodisCompatible {
150 s.model.JodisPath = filepath.Join("/zk/codis", fmt.Sprintf("db_%s", config.ProductName), "proxy", s.model.Token)
151 } else {
152 s.model.JodisPath = models.JodisPath(config.ProductName, s.model.Token)
153 }
154 s.jodis = NewJodis(c, s.model)
155 }
156
157 return nil
158}
159
160func (s *Proxy) Start() error {
161 s.mu.Lock()

Callers 1

NewFunction · 0.95

Calls 4

NewJodisFunction · 0.85
DurationMethod · 0.80
StringMethod · 0.45
AddrMethod · 0.45

Tested by

no test coverage detected