From 91c44420cb2634bb432616127c6e41eec3a481d2 Mon Sep 17 00:00:00 2001 From: Joel Wetzell Date: Wed, 24 Dec 2025 10:24:24 -0600 Subject: [PATCH] allow configuring buffer size for udp server --- internal/module/udp-server.go | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/internal/module/udp-server.go b/internal/module/udp-server.go index 5c0ec46..e6b6309 100644 --- a/internal/module/udp-server.go +++ b/internal/module/udp-server.go @@ -14,11 +14,12 @@ import ( ) type UDPServer struct { - Addr *net.UDPAddr - config config.ModuleConfig - ctx context.Context - router route.RouteIO - logger *slog.Logger + Addr *net.UDPAddr + BufferSize int + config config.ModuleConfig + ctx context.Context + router route.RouteIO + logger *slog.Logger } func init() { @@ -55,7 +56,19 @@ func init() { log.Fatalf("error resolving UDP address: %v", err) } - return &UDPServer{Addr: addr, config: config, ctx: ctx, router: router, logger: slog.Default().With("component", "module", "id", config.Id)}, nil + bufferSizeNum := 2048 + bufferSize, ok := params["bufferSize"] + + if ok { + bufferSizeFloat, ok := bufferSize.(float64) + + if !ok { + return nil, errors.New("net.udp.server bufferSize must be a number") + } + bufferSizeNum = int(bufferSizeFloat) + } + + return &UDPServer{Addr: addr, BufferSize: bufferSizeNum, config: config, ctx: ctx, router: router, logger: slog.Default().With("component", "module", "id", config.Id)}, nil }, }) } @@ -77,8 +90,7 @@ func (us *UDPServer) Run() error { defer listener.Close() - // TODO(jwetzell): make buffer size configurable - buffer := make([]byte, 65535) + buffer := make([]byte, us.BufferSize) for { select { case <-us.ctx.Done():