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

@@ -15,6 +15,7 @@ import (
type UDPServer struct { type UDPServer struct {
Addr *net.UDPAddr Addr *net.UDPAddr
BufferSize int
config config.ModuleConfig config config.ModuleConfig
ctx context.Context ctx context.Context
router route.RouteIO router route.RouteIO
@@ -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():