From: Josh Bleecher Snyder Date: Mon, 25 Jan 2021 16:55:08 +0000 (-0800) Subject: device: simplify IpcHandle error handling X-Git-Tag: 0.0.20210212~81 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=37a239e7360dd38e513fd7d717ce50de6d8215ff;p=thirdparty%2Fwireguard-go.git device: simplify IpcHandle error handling Unify the handling of unexpected UAPI errors. The comment that says "should never happen" is incorrect; this could happen due to I/O errors. Correct it. Change error message capitalization for consistency. Signed-off-by: Josh Bleecher Snyder --- diff --git a/device/uapi.go b/device/uapi.go index 7d180bb..160806d 100644 --- a/device/uapi.go +++ b/device/uapi.go @@ -411,31 +411,22 @@ func (device *Device) IpcHandle(socket net.Conn) { } // handle operation - - var status *IPCError - switch op { case "set=1\n": err = device.IpcSetOperation(buffered.Reader) - if err != nil && !errors.As(err, &status) { - // should never happen - status = ipcErrorf(1, "invalid UAPI error: %w", err) - } - case "get=1\n": err = device.IpcGetOperation(buffered.Writer) - if err != nil && !errors.As(err, &status) { - // should never happen - status = ipcErrorf(1, "invalid UAPI error: %w", err) - } - default: - device.log.Error.Println("Invalid UAPI operation:", op) + device.log.Error.Println("invalid UAPI operation:", op) return } // write status - + var status *IPCError + if err != nil && !errors.As(err, &status) { + // I/O error, maybe something unexpected + status = ipcErrorf(1, "other UAPI error: %w", err) + } if status != nil { device.log.Error.Println(status) fmt.Fprintf(buffered, "errno=%d\n\n", status.ErrorCode())