pkg/proxy: remove unused 'transfered' variable

That simplified code a bit

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
This commit is contained in:
Alexander Morozov 2016-05-10 12:24:43 -07:00
parent 3c6c907299
commit 9bcc9e6dc2

View file

@ -3,6 +3,7 @@ package proxy
import ( import (
"io" "io"
"net" "net"
"sync"
"syscall" "syscall"
"github.com/Sirupsen/logrus" "github.com/Sirupsen/logrus"
@ -39,10 +40,9 @@ func (proxy *TCPProxy) clientLoop(client *net.TCPConn, quit chan bool) {
return return
} }
event := make(chan int64) var wg sync.WaitGroup
var broker = func(to, from *net.TCPConn) { var broker = func(to, from *net.TCPConn) {
written, err := io.Copy(to, from) if _, err := io.Copy(to, from); err != nil {
if err != nil {
// If the socket we are writing to is shutdown with // If the socket we are writing to is shutdown with
// SHUT_WR, forward it to the other end of the pipe: // SHUT_WR, forward it to the other end of the pipe:
if err, ok := err.(*net.OpError); ok && err.Err == syscall.EPIPE { if err, ok := err.(*net.OpError); ok && err.Err == syscall.EPIPE {
@ -50,29 +50,26 @@ func (proxy *TCPProxy) clientLoop(client *net.TCPConn, quit chan bool) {
} }
} }
to.CloseRead() to.CloseRead()
event <- written wg.Done()
} }
wg.Add(2)
go broker(client, backend) go broker(client, backend)
go broker(backend, client) go broker(backend, client)
var transferred int64 finish := make(chan struct{})
for i := 0; i < 2; i++ { go func() {
wg.Wait()
close(finish)
}()
select { select {
case written := <-event:
transferred += written
case <-quit: case <-quit:
// Interrupt the two brokers and "join" them. case <-finish:
client.Close()
backend.Close()
for ; i < 2; i++ {
transferred += <-event
}
return
}
} }
client.Close() client.Close()
backend.Close() backend.Close()
<-finish
} }
// Run starts forwarding the traffic using TCP. // Run starts forwarding the traffic using TCP.