Commit b0f02179 authored by rui.zheng's avatar rui.zheng

fix udp transfer

parent 6d0efaeb
...@@ -353,13 +353,12 @@ func tunnelUdp(conn net.Conn, uconn *net.UDPConn, rawUdp bool) (err error) { ...@@ -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)))) addr, err := net.ResolveUDPAddr("udp", net.JoinHostPort(up.Addr, strconv.Itoa(int(up.Port))))
if err != nil { if err != nil {
rChan <- err log.Println(err)
return continue
} }
if rawUdp { if rawUdp {
if _, err = uconn.WriteTo(up.Data, addr); err != nil { if _, err = uconn.WriteTo(up.Data, addr); err != nil {
rChan <- err log.Println(err)
return
} }
log.Println("r", up) log.Println("r", up)
} else { } else {
...@@ -367,8 +366,7 @@ func tunnelUdp(conn net.Conn, uconn *net.UDPConn, rawUdp bool) (err error) { ...@@ -367,8 +366,7 @@ func tunnelUdp(conn net.Conn, uconn *net.UDPConn, rawUdp bool) (err error) {
buf := &bytes.Buffer{} buf := &bytes.Buffer{}
up.Write(buf) up.Write(buf)
if _, err := uconn.WriteTo(buf.Bytes(), raddr); err != nil { if _, err := uconn.WriteTo(buf.Bytes(), raddr); err != nil {
rChan <- err log.Println(err)
return
} }
log.Println("r", up) log.Println("r", up)
} }
...@@ -380,8 +378,8 @@ func tunnelUdp(conn net.Conn, uconn *net.UDPConn, rawUdp bool) (err error) { ...@@ -380,8 +378,8 @@ func tunnelUdp(conn net.Conn, uconn *net.UDPConn, rawUdp bool) (err error) {
b := make([]byte, 65797) b := make([]byte, 65797)
n, addr, err := uconn.ReadFrom(b) n, addr, err := uconn.ReadFrom(b)
if err != nil { if err != nil {
wChan <- err log.Println(err)
return continue
} }
raddr = addr raddr = addr
...@@ -400,8 +398,8 @@ func tunnelUdp(conn net.Conn, uconn *net.UDPConn, rawUdp bool) (err error) { ...@@ -400,8 +398,8 @@ func tunnelUdp(conn net.Conn, uconn *net.UDPConn, rawUdp bool) (err error) {
rbuf := bytes.NewReader(b[:n]) rbuf := bytes.NewReader(b[:n])
up, err := ReadUdpPayload(rbuf) up, err := ReadUdpPayload(rbuf)
if err != nil { if err != nil {
wChan <- err log.Println(err)
return continue
} }
up.Rsv = uint16(len(up.Data)) up.Rsv = uint16(len(up.Data))
if err := up.Write(conn); err != nil { if err := up.Write(conn); err != nil {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment