diff options
Diffstat (limited to 'client.go')
| -rw-r--r-- | client.go | 53 |
1 files changed, 0 insertions, 53 deletions
@@ -4,7 +4,6 @@ import ( "context" "crypto/tls" "crypto/x509" - "io" "net" "net/url" "time" @@ -221,55 +220,3 @@ func punycodeHostname(hostname string) (string, error) { } return idna.Lookup.ToASCII(hostname) } - -type contextReader struct { - ctx context.Context - done <-chan struct{} - cancel func() - rc io.ReadCloser -} - -func (r *contextReader) Read(p []byte) (int, error) { - select { - case <-r.done: - r.rc.Close() - return 0, r.ctx.Err() - default: - } - n, err := r.rc.Read(p) - if err != nil { - r.cancel() - } - return n, err -} - -func (r *contextReader) Close() error { - r.cancel() - return r.rc.Close() -} - -type contextWriter struct { - ctx context.Context - done <-chan struct{} - cancel func() - wc io.WriteCloser -} - -func (w *contextWriter) Write(b []byte) (int, error) { - select { - case <-w.done: - w.wc.Close() - return 0, w.ctx.Err() - default: - } - n, err := w.wc.Write(b) - if err != nil { - w.cancel() - } - return n, err -} - -func (w *contextWriter) Close() error { - w.cancel() - return w.wc.Close() -} |