From b0f02179f8d6cf0474332956f1b2cd4b1d8b24ed Mon Sep 17 00:00:00 2001 From: "rui.zheng" Date: Wed, 25 Mar 2015 16:24:17 +0800 Subject: [PATCH] fix udp transfer --- gost.go | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/gost.go b/gost.go index b9d1230..fcf1124 100644 --- a/gost.go +++ b/gost.go @@ -353,13 +353,12 @@ func tunnelUdp(conn net.Conn, uconn *net.UDPConn, rawUdp bool) (err error) { addr, err := net.ResolveUDPAddr("udp", net.JoinHostPort(up.Addr, strconv.Itoa(int(up.Port)))) if err != nil { - rChan <- err - return + log.Println(err) + continue } if rawUdp { if _, err = uconn.WriteTo(up.Data, addr); err != nil { - rChan <- err - return + log.Println(err) } log.Println("r", up) } else { @@ -367,8 +366,7 @@ func tunnelUdp(conn net.Conn, uconn *net.UDPConn, rawUdp bool) (err error) { buf := &bytes.Buffer{} up.Write(buf) if _, err := uconn.WriteTo(buf.Bytes(), raddr); err != nil { - rChan <- err - return + log.Println(err) } log.Println("r", up) } @@ -380,8 +378,8 @@ func tunnelUdp(conn net.Conn, uconn *net.UDPConn, rawUdp bool) (err error) { b := make([]byte, 65797) n, addr, err := uconn.ReadFrom(b) if err != nil { - wChan <- err - return + log.Println(err) + continue } raddr = addr @@ -400,8 +398,8 @@ func tunnelUdp(conn net.Conn, uconn *net.UDPConn, rawUdp bool) (err error) { rbuf := bytes.NewReader(b[:n]) up, err := ReadUdpPayload(rbuf) if err != nil { - wChan <- err - return + log.Println(err) + continue } up.Rsv = uint16(len(up.Data)) if err := up.Write(conn); err != nil {