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

Function isMovedError

error.go:227–262  ·  view source on GitHub ↗
(err error)

Source from the content-addressed store, hash-verified

225}
226
227func isMovedError(err error) (moved bool, ask bool, addr string) {
228 // Check for typed MovedError
229 if movedErr, ok := proto.IsMovedError(err); ok {
230 addr = movedErr.Addr()
231 addr = internal.GetAddr(addr)
232 return true, false, addr
233 }
234
235 // Check for typed AskError
236 if askErr, ok := proto.IsAskError(err); ok {
237 addr = askErr.Addr()
238 addr = internal.GetAddr(addr)
239 return false, true, addr
240 }
241
242 // Fallback to string checking for backward compatibility
243 s := err.Error()
244 if strings.HasPrefix(s, "MOVED ") {
245 // Parse: MOVED 3999 127.0.0.1:6381
246 parts := strings.Split(s, " ")
247 if len(parts) == 3 {
248 addr = internal.GetAddr(parts[2])
249 return true, false, addr
250 }
251 }
252 if strings.HasPrefix(s, "ASK ") {
253 // Parse: ASK 3999 127.0.0.1:6381
254 parts := strings.Split(s, " ")
255 if len(parts) == 3 {
256 addr = internal.GetAddr(parts[2])
257 return false, true, addr
258 }
259 }
260
261 return false, false, ""
262}
263
264func isLoadingError(err error) bool {
265 return proto.IsLoadingError(err)

Callers 4

processMethod · 0.85
checkMovedErrMethod · 0.85
WatchMethod · 0.85

Calls 5

IsMovedErrorFunction · 0.92
GetAddrFunction · 0.92
IsAskErrorFunction · 0.92
AddrMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected