1
0
Fork 0

Merge pull request #13 from stbuehler/feature-half-close-interface

half-close all connections supporting `CloseWrite() error`
logger
Armon Dadgar 2016-09-02 11:38:53 -07:00 committed by GitHub
commit 770e040d1c
1 changed files with 5 additions and 1 deletions

View File

@ -340,11 +340,15 @@ func sendReply(w io.Writer, resp uint8, addr *AddrSpec) error {
return err
}
type closeWriter interface {
CloseWrite() error
}
// proxy is used to suffle data from src to destination, and sends errors
// down a dedicated channel
func proxy(dst io.Writer, src io.Reader, errCh chan error) {
_, err := io.Copy(dst, src)
if tcpConn, ok := dst.(*net.TCPConn); ok {
if tcpConn, ok := dst.(closeWriter); ok {
tcpConn.CloseWrite()
}
errCh <- err