Skip to content
This repository was archived by the owner on Sep 12, 2018. It is now read-only.

Commit b522fbd

Browse files
committed
Removes WrapReader boilerplate for updates to libchan
libchan now supports io.ReadCloser and io.WriteCloser, so we don't need io.ReadWriteCloser wrapping
1 parent 3e47385 commit b522fbd

File tree

3 files changed

+5
-30
lines changed

3 files changed

+5
-30
lines changed

storagedriver/ipc/client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ func (driver *StorageDriverClient) GetContent(path string) ([]byte, error) {
155155
func (driver *StorageDriverClient) PutContent(path string, contents []byte) error {
156156
receiver, remoteSender := libchan.Pipe()
157157

158-
params := map[string]interface{}{"Path": path, "Reader": WrapReader(bytes.NewReader(contents))}
158+
params := map[string]interface{}{"Path": path, "Reader": ioutil.NopCloser(bytes.NewReader(contents))}
159159
err := driver.sender.Send(&Request{Type: "PutContent", Parameters: params, ResponseChannel: remoteSender})
160160
if err != nil {
161161
return err
@@ -199,7 +199,7 @@ func (driver *StorageDriverClient) ReadStream(path string, offset uint64) (io.Re
199199
func (driver *StorageDriverClient) WriteStream(path string, offset, size uint64, reader io.ReadCloser) error {
200200
receiver, remoteSender := libchan.Pipe()
201201

202-
params := map[string]interface{}{"Path": path, "Offset": offset, "Size": size, "Reader": WrapReader(reader)}
202+
params := map[string]interface{}{"Path": path, "Offset": offset, "Size": size, "Reader": ioutil.NopCloser(reader)}
203203
err := driver.sender.Send(&Request{Type: "WriteStream", Parameters: params, ResponseChannel: remoteSender})
204204
if err != nil {
205205
return err

storagedriver/ipc/ipc.go

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
package ipc
22

33
import (
4-
"errors"
54
"fmt"
65
"io"
7-
"io/ioutil"
86
"reflect"
97

108
"github.com/docker/libchan"
@@ -18,29 +16,6 @@ type Request struct {
1816
ResponseChannel libchan.Sender
1917
}
2018

21-
// noWriteReadWriteCloser is a simple wrapper around an io.ReadCloser that implements the
22-
// io.ReadWriteCloser interface
23-
// Calls to Write are disallowed and will return an error
24-
type noWriteReadWriteCloser struct {
25-
io.ReadCloser
26-
}
27-
28-
func (r noWriteReadWriteCloser) Write(p []byte) (n int, err error) {
29-
return 0, errors.New("Write unsupported")
30-
}
31-
32-
// WrapReader wraps an io.Reader as an io.ReadWriteCloser with a nop Close and unsupported Write
33-
// Has no effect when an io.ReadWriteCloser is passed in
34-
func WrapReader(reader io.Reader) io.ReadWriteCloser {
35-
if readWriteCloser, ok := reader.(io.ReadWriteCloser); ok {
36-
return readWriteCloser
37-
} else if readCloser, ok := reader.(io.ReadCloser); ok {
38-
return noWriteReadWriteCloser{readCloser}
39-
} else {
40-
return noWriteReadWriteCloser{ioutil.NopCloser(reader)}
41-
}
42-
}
43-
4419
type responseError struct {
4520
Type string
4621
Message string
@@ -65,7 +40,7 @@ func (err *responseError) Error() string {
6540

6641
// ReadStreamResponse is a response for a ReadStream request
6742
type ReadStreamResponse struct {
68-
Reader io.ReadWriteCloser
43+
Reader io.ReadCloser
6944
Error *responseError
7045
}
7146

storagedriver/ipc/server.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func handleRequest(driver storagedriver.StorageDriver, request Request) {
6868
if err != nil {
6969
response = ReadStreamResponse{Error: ResponseError(err)}
7070
} else {
71-
response = ReadStreamResponse{Reader: WrapReader(bytes.NewReader(content))}
71+
response = ReadStreamResponse{Reader: ioutil.NopCloser(bytes.NewReader(content))}
7272
}
7373
err = request.ResponseChannel.Send(&response)
7474
if err != nil {
@@ -98,7 +98,7 @@ func handleRequest(driver storagedriver.StorageDriver, request Request) {
9898
if err != nil {
9999
response = ReadStreamResponse{Error: ResponseError(err)}
100100
} else {
101-
response = ReadStreamResponse{Reader: WrapReader(reader)}
101+
response = ReadStreamResponse{Reader: ioutil.NopCloser(reader)}
102102
}
103103
err = request.ResponseChannel.Send(&response)
104104
if err != nil {

0 commit comments

Comments
 (0)