| ... | ... |
@@ -30,7 +30,7 @@ func NewTCPProxy(frontendAddr, backendAddr *net.TCPAddr) (*TCPProxy, error) {
|
| 30 | 30 |
func (proxy *TCPProxy) clientLoop(client *net.TCPConn, quit chan bool) {
|
| 31 | 31 |
backend, err := net.DialTCP("tcp", nil, proxy.backendAddr)
|
| 32 | 32 |
if err != nil {
|
| 33 |
- log.Printf("Can't forward traffic to backend tcp/%v: %v\n", proxy.backendAddr, err.Error())
|
|
| 33 |
+ log.Printf("Can't forward traffic to backend tcp/%v: %s\n", proxy.backendAddr, err)
|
|
| 34 | 34 |
client.Close() |
| 35 | 35 |
return |
| 36 | 36 |
} |
| ... | ... |
@@ -49,7 +49,6 @@ func (proxy *TCPProxy) clientLoop(client *net.TCPConn, quit chan bool) {
|
| 49 | 49 |
event <- written |
| 50 | 50 |
} |
| 51 | 51 |
|
| 52 |
- log.Printf("Forwarding traffic between tcp/%v and tcp/%v", client.RemoteAddr(), backend.RemoteAddr())
|
|
| 53 | 52 |
go broker(client, backend) |
| 54 | 53 |
go broker(backend, client) |
| 55 | 54 |
|
| ... | ... |
@@ -65,23 +64,20 @@ func (proxy *TCPProxy) clientLoop(client *net.TCPConn, quit chan bool) {
|
| 65 | 65 |
for ; i < 2; i++ {
|
| 66 | 66 |
transferred += <-event |
| 67 | 67 |
} |
| 68 |
- goto done |
|
| 68 |
+ return |
|
| 69 | 69 |
} |
| 70 | 70 |
} |
| 71 | 71 |
client.Close() |
| 72 | 72 |
backend.Close() |
| 73 |
-done: |
|
| 74 |
- log.Printf("%v bytes transferred between tcp/%v and tcp/%v", transferred, client.RemoteAddr(), backend.RemoteAddr())
|
|
| 75 | 73 |
} |
| 76 | 74 |
|
| 77 | 75 |
func (proxy *TCPProxy) Run() {
|
| 78 | 76 |
quit := make(chan bool) |
| 79 | 77 |
defer close(quit) |
| 80 |
- log.Printf("Starting proxy on tcp/%v for tcp/%v", proxy.frontendAddr, proxy.backendAddr)
|
|
| 81 | 78 |
for {
|
| 82 | 79 |
client, err := proxy.listener.Accept() |
| 83 | 80 |
if err != nil {
|
| 84 |
- log.Printf("Stopping proxy on tcp/%v for tcp/%v (%v)", proxy.frontendAddr, proxy.backendAddr, err.Error())
|
|
| 81 |
+ log.Printf("Stopping proxy on tcp/%v for tcp/%v (%s)", proxy.frontendAddr, proxy.backendAddr, err)
|
|
| 85 | 82 |
return |
| 86 | 83 |
} |
| 87 | 84 |
go proxy.clientLoop(client.(*net.TCPConn), quit) |
| ... | ... |
@@ -66,7 +66,6 @@ func (proxy *UDPProxy) replyLoop(proxyConn *net.UDPConn, clientAddr *net.UDPAddr |
| 66 | 66 |
proxy.connTrackLock.Lock() |
| 67 | 67 |
delete(proxy.connTrackTable, *clientKey) |
| 68 | 68 |
proxy.connTrackLock.Unlock() |
| 69 |
- log.Printf("Done proxying between udp/%v and udp/%v", clientAddr.String(), proxy.backendAddr.String())
|
|
| 70 | 69 |
proxyConn.Close() |
| 71 | 70 |
}() |
| 72 | 71 |
|
| ... | ... |
@@ -92,24 +91,20 @@ func (proxy *UDPProxy) replyLoop(proxyConn *net.UDPConn, clientAddr *net.UDPAddr |
| 92 | 92 |
return |
| 93 | 93 |
} |
| 94 | 94 |
i += written |
| 95 |
- log.Printf("Forwarded %v/%v bytes to udp/%v", i, read, clientAddr.String())
|
|
| 96 | 95 |
} |
| 97 | 96 |
} |
| 98 | 97 |
} |
| 99 | 98 |
|
| 100 | 99 |
func (proxy *UDPProxy) Run() {
|
| 101 | 100 |
readBuf := make([]byte, UDPBufSize) |
| 102 |
- log.Printf("Starting proxy on udp/%v for udp/%v", proxy.frontendAddr, proxy.backendAddr)
|
|
| 103 | 101 |
for {
|
| 104 | 102 |
read, from, err := proxy.listener.ReadFromUDP(readBuf) |
| 105 | 103 |
if err != nil {
|
| 106 | 104 |
// NOTE: Apparently ReadFrom doesn't return |
| 107 | 105 |
// ECONNREFUSED like Read do (see comment in |
| 108 | 106 |
// UDPProxy.replyLoop) |
| 109 |
- if isClosedError(err) {
|
|
| 110 |
- log.Printf("Stopping proxy on udp/%v for udp/%v (socket was closed)", proxy.frontendAddr, proxy.backendAddr)
|
|
| 111 |
- } else {
|
|
| 112 |
- log.Printf("Stopping proxy on udp/%v for udp/%v (%v)", proxy.frontendAddr, proxy.backendAddr, err.Error())
|
|
| 107 |
+ if !isClosedError(err) {
|
|
| 108 |
+ log.Printf("Stopping proxy on udp/%v for udp/%v (%s)", proxy.frontendAddr, proxy.backendAddr, err)
|
|
| 113 | 109 |
} |
| 114 | 110 |
break |
| 115 | 111 |
} |
| ... | ... |
@@ -120,7 +115,7 @@ func (proxy *UDPProxy) Run() {
|
| 120 | 120 |
if !hit {
|
| 121 | 121 |
proxyConn, err = net.DialUDP("udp", nil, proxy.backendAddr)
|
| 122 | 122 |
if err != nil {
|
| 123 |
- log.Printf("Can't proxy a datagram to udp/%s: %v\n", proxy.backendAddr.String(), err)
|
|
| 123 |
+ log.Printf("Can't proxy a datagram to udp/%s: %s\n", proxy.backendAddr, err)
|
|
| 124 | 124 |
continue |
| 125 | 125 |
} |
| 126 | 126 |
proxy.connTrackTable[*fromKey] = proxyConn |
| ... | ... |
@@ -130,11 +125,10 @@ func (proxy *UDPProxy) Run() {
|
| 130 | 130 |
for i := 0; i != read; {
|
| 131 | 131 |
written, err := proxyConn.Write(readBuf[i:read]) |
| 132 | 132 |
if err != nil {
|
| 133 |
- log.Printf("Can't proxy a datagram to udp/%s: %v\n", proxy.backendAddr.String(), err)
|
|
| 133 |
+ log.Printf("Can't proxy a datagram to udp/%s: %s\n", proxy.backendAddr, err)
|
|
| 134 | 134 |
break |
| 135 | 135 |
} |
| 136 | 136 |
i += written |
| 137 |
- log.Printf("Forwarded %v/%v bytes to udp/%v", i, read, proxy.backendAddr.String())
|
|
| 138 | 137 |
} |
| 139 | 138 |
} |
| 140 | 139 |
} |