mirror of
https://github.com/netbirdio/netbird.git
synced 2025-08-25 05:26:55 +02:00
Fix msg delivery timeouts
This commit is contained in:
@@ -13,6 +13,10 @@ import (
|
||||
"nhooyr.io/websocket"
|
||||
)
|
||||
|
||||
const (
|
||||
writeTimeout = 10 * time.Second
|
||||
)
|
||||
|
||||
type Conn struct {
|
||||
*websocket.Conn
|
||||
lAddr *net.TCPAddr
|
||||
@@ -50,8 +54,14 @@ func (c *Conn) Read(b []byte) (n int, err error) {
|
||||
return n, err
|
||||
}
|
||||
|
||||
// Write writes a binary message with the given payload.
|
||||
// It does not block until fill the internal buffer.
|
||||
// If the buffer filled up, wait until the buffer is drained or timeout.
|
||||
func (c *Conn) Write(b []byte) (int, error) {
|
||||
err := c.Conn.Write(c.ctx, websocket.MessageBinary, b)
|
||||
ctx, ctxCancel := context.WithTimeout(c.ctx, writeTimeout)
|
||||
defer ctxCancel()
|
||||
|
||||
err := c.Conn.Write(ctx, websocket.MessageBinary, b)
|
||||
return len(b), err
|
||||
}
|
||||
|
||||
|
@@ -29,7 +29,6 @@ func NewListener(address string) listener.Listener {
|
||||
}
|
||||
}
|
||||
|
||||
// Listen todo: prevent multiple call
|
||||
func (l *Listener) Listen(acceptFn func(conn net.Conn)) error {
|
||||
l.acceptFn = acceptFn
|
||||
mux := http.NewServeMux()
|
||||
|
@@ -16,8 +16,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
bufferSize = 8820
|
||||
maxHandshakeSize = 90
|
||||
bufferSize = 8820
|
||||
)
|
||||
|
||||
type Server struct {
|
||||
@@ -135,7 +134,6 @@ func (r *Server) accept(conn net.Conn) {
|
||||
peer.Log.Errorf("failed to update transport message: %s", err)
|
||||
continue
|
||||
}
|
||||
peer.Log.Infof("write transport msg!!!!")
|
||||
_, err = dp.conn.Write(msg)
|
||||
if err != nil {
|
||||
peer.Log.Errorf("failed to write transport message to: %s", dp.String())
|
||||
@@ -168,7 +166,7 @@ func (r *Server) sendCloseMsgs() {
|
||||
}
|
||||
|
||||
func handShake(conn net.Conn) (*Peer, error) {
|
||||
buf := make([]byte, maxHandshakeSize)
|
||||
buf := make([]byte, messages.MaxHandshakeSize)
|
||||
n, err := conn.Read(buf)
|
||||
if err != nil {
|
||||
log.Errorf("failed to read message: %s", err)
|
||||
|
Reference in New Issue
Block a user