mirror of
https://github.com/netbirdio/netbird.git
synced 2025-03-03 09:21:12 +01:00
[client] Fix udp forwarder deadline (#3364)
This commit is contained in:
parent
b307298b2f
commit
a74208abac
@ -245,33 +245,29 @@ func (c *udpPacketConn) copy(ctx context.Context, dst net.Conn, src net.Conn, bu
|
|||||||
defer bufPool.Put(bufp)
|
defer bufPool.Put(bufp)
|
||||||
buffer := *bufp
|
buffer := *bufp
|
||||||
|
|
||||||
if err := src.SetReadDeadline(time.Now().Add(udpTimeout)); err != nil {
|
|
||||||
return fmt.Errorf("set read deadline: %w", err)
|
|
||||||
}
|
|
||||||
if err := src.SetWriteDeadline(time.Now().Add(udpTimeout)); err != nil {
|
|
||||||
return fmt.Errorf("set write deadline: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
for {
|
for {
|
||||||
select {
|
if ctx.Err() != nil {
|
||||||
case <-ctx.Done():
|
|
||||||
return ctx.Err()
|
return ctx.Err()
|
||||||
default:
|
|
||||||
n, err := src.Read(buffer)
|
|
||||||
if err != nil {
|
|
||||||
if isTimeout(err) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
return fmt.Errorf("read from %s: %w", direction, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = dst.Write(buffer[:n])
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("write to %s: %w", direction, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
c.updateLastSeen()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := src.SetDeadline(time.Now().Add(udpTimeout)); err != nil {
|
||||||
|
return fmt.Errorf("set read deadline: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
n, err := src.Read(buffer)
|
||||||
|
if err != nil {
|
||||||
|
if isTimeout(err) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
return fmt.Errorf("read from %s: %w", direction, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = dst.Write(buffer[:n])
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("write to %s: %w", direction, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
c.updateLastSeen()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user