fix udp transfer
This commit is contained in:
parent
6d0efaeb07
commit
b0f02179f8
18
gost.go
18
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))))
|
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) {
|
|||||||
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) {
|
|||||||
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) {
|
|||||||
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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user