coder / coder/websocket

netConn and msgReader should return io.EOF identically instead of wrapped

Offen
#504 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
Go
Sterne
5.5k
Forks
372
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

[*bufio.Scanner](https://pkg.go.dev/bufio#Scanner) and other consumers of `io.Reader` interface expect to receive `io.EOF` identically when reading to the end of a file/stream.

From the io package:

> // EOF is the error returned by Read when no more input is available.
> // (Read must return EOF itself, not an error wrapping EOF,
> // because callers will test for EOF using ==.)
> // Functions should return EOF only to signal a graceful end of input.
> // If the EOF occurs unexpectedly in a structured data stream,
> // the appropriate error is either [ErrUnexpectedEOF] or some other error
> // giving more detail.
> var EOF = errors.New("EOF")

We currently wrap `EOF` along with any other error when reading from `netConn` or `msgReader`. Instead, we should return `io.EOF` identically to conform with the `io.Reader` spec.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Lokalisieren Sie die Implementierungen von netConn und msgReader und untersuchen Sie, wie sie am Ende der Eingabe Fehler melden. Vergleichen Sie ihr Verhalten mit der io.Reader-Anforderung, dass EOF identisch zurückgegeben wird, und überprüfen Sie anschließend, dass beide Reader io.EOF direkt statt eines gewrappten Fehlers zurückgeben.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
go
Bereich
networking
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
52/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.