diff options
author | Josh Bleecher Snyder <josh@tailscale.com> | 2020-12-22 10:08:25 -0800 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-01-07 14:49:44 +0100 |
commit | a1c265b0c5bea2c1c4a62acac0045fe93cd691cd (patch) | |
tree | a29303936a5013dede0ad65df1f1738bd26e1967 | |
parent | 25b01723ddc8bcd2993eb4b21e4e61164f55fa95 (diff) |
device: simplify UAPI helper methods
bufio is not required.
strings.Builder is cheaper than bytes.Buffer for constructing strings.
io.Writer is more flexible than io.StringWriter,
and just as cheap (when used with io.WriteString).
Run gofmt.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
-rw-r--r-- | device/uapi.go | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/device/uapi.go b/device/uapi.go index 2843a4c..370ad4e 100644 --- a/device/uapi.go +++ b/device/uapi.go @@ -7,7 +7,6 @@ package device import ( "bufio" - "bytes" "errors" "fmt" "io" @@ -33,7 +32,7 @@ func (s IPCError) ErrorCode() int64 { return s.int64 } -func (device *Device) IpcGetOperation(w io.StringWriter) error { +func (device *Device) IpcGetOperation(w io.Writer) error { lines := make([]string, 0, 100) send := func(line string) { lines = append(lines, line) @@ -99,7 +98,7 @@ func (device *Device) IpcGetOperation(w io.StringWriter) error { // send lines (does not require resource locks) for _, line := range lines { - _, err := w.WriteString(line + "\n") + _, err := io.WriteString(w, line+"\n") if err != nil { return &IPCError{ipc.IpcErrorIO} } @@ -397,22 +396,16 @@ func (device *Device) IpcSetOperation(r io.Reader) error { return nil } - - func (device *Device) IpcGet() (string, error) { - buf := new(bytes.Buffer) - writer := bufio.NewWriter(buf) - if err := device.IpcGetOperation(writer); err != nil { - return "", err - } - if err := writer.Flush(); err != nil { + buf := new(strings.Builder) + if err := device.IpcGetOperation(buf); err != nil { return "", err } return buf.String(), nil } func (device *Device) IpcSet(uapiConf string) error { - return device.IpcSetOperation(bufio.NewReader(strings.NewReader(uapiConf))) + return device.IpcSetOperation(strings.NewReader(uapiConf)) } func (device *Device) IpcHandle(socket net.Conn) { |