Merge pull request #22 from jwetzell/feat/udp-server-buffersize

allow configuring buffer size for udp server
This commit is contained in:
Joel Wetzell
2025-12-24 10:27:14 -06:00
committed by GitHub

View File

@@ -14,11 +14,12 @@ import (
) )
type UDPServer struct { type UDPServer struct {
Addr *net.UDPAddr Addr *net.UDPAddr
config config.ModuleConfig BufferSize int
ctx context.Context config config.ModuleConfig
router route.RouteIO ctx context.Context
logger *slog.Logger router route.RouteIO
logger *slog.Logger
} }
func init() { func init() {
@@ -55,7 +56,19 @@ func init() {
log.Fatalf("error resolving UDP address: %v", err) 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() defer listener.Close()
// TODO(jwetzell): make buffer size configurable buffer := make([]byte, us.BufferSize)
buffer := make([]byte, 65535)
for { for {
select { select {
case <-us.ctx.Done(): case <-us.ctx.Done():