diff --git a/src/net/http/fs.go b/src/net/http/fs.go index a28ae85958f..57e731e481a 100644 --- a/src/net/http/fs.go +++ b/src/net/http/fs.go @@ -46,7 +46,7 @@ type Dir string // to a possibly better non-nil error. In particular, it turns OS-specific errors // about opening files in non-directories into fs.ErrNotExist. See Issue 18984. func mapDirOpenError(originalErr error, name string) error { - if os.IsNotExist(originalErr) || os.IsPermission(originalErr) { + if errors.Is(originalErr, fs.ErrNotExist) || errors.Is(originalErr, fs.ErrPermission) { return originalErr } @@ -670,10 +670,10 @@ func serveFile(w ResponseWriter, r *Request, fs FileSystem, name string, redirec // and historically Go's ServeContent always returned just "404 Not Found" for // all errors. We don't want to start leaking information in error messages. func toHTTPError(err error) (msg string, httpStatus int) { - if os.IsNotExist(err) { + if errors.Is(err, fs.ErrNotExist) { return "404 page not found", StatusNotFound } - if os.IsPermission(err) { + if errors.Is(err, fs.ErrPermission) { return "403 Forbidden", StatusForbidden } // Default: diff --git a/src/net/http/fs_test.go b/src/net/http/fs_test.go index 1bf207e0f75..b42ade1e8ac 100644 --- a/src/net/http/fs_test.go +++ b/src/net/http/fs_test.go @@ -1265,16 +1265,18 @@ func TestFileServerNotDirError(t *testing.T) { if err == nil { t.Fatal("err == nil; want != nil") } - if !os.IsNotExist(err) { - t.Errorf("err = %v; os.IsNotExist(err) = %v; want true", err, os.IsNotExist(err)) + if !errors.Is(err, fs.ErrNotExist) { + t.Errorf("err = %v; errors.Is(err, fs.ErrNotExist) = %v; want true", err, + errors.Is(err, fs.ErrNotExist)) } _, err = dir.Open("/index.html/not-a-dir/not-a-file") if err == nil { t.Fatal("err == nil; want != nil") } - if !os.IsNotExist(err) { - t.Errorf("err = %v; os.IsNotExist(err) = %v; want true", err, os.IsNotExist(err)) + if !errors.Is(err, fs.ErrNotExist) { + t.Errorf("err = %v; errors.Is(err, fs.ErrNotExist) = %v; want true", err, + errors.Is(err, fs.ErrNotExist)) } }) }