package main import "strings" // isAddrInUse reports whether err is an "address already in use" bind // failure. The errno check (platform files: addrinuse_unix.go / // addrinuse_windows.go) is authoritative; the string checks remain as a // fallback for errors that arrive with the errno wrapped away. String // matching alone was the original implementation and silently disabled the // bind retry on non-English Windows, where the system error text is // localized. func isAddrInUse(err error) bool { if err == nil { return false } if errnoIsAddrInUse(err) { return true } return strings.Contains(err.Error(), "address already in use") || strings.Contains(err.Error(), "Only one usage of each socket address") }