fix: Increase scanner buffer size to 5MB and add error logging to prevent silent capture failures

This commit is contained in:
Jose Luis Montañes Ojados
2026-01-19 16:17:28 +01:00
parent ee0e827b78
commit 1344b730af
2 changed files with 23 additions and 0 deletions

View File

@@ -125,6 +125,11 @@ func (c *LocalCapturer) Close() error {
func (c *LocalCapturer) processStream(r io.Reader) {
scanner := bufio.NewScanner(r)
// Increase buffer size to handle large packets (default is 64KB)
const maxCapacity = 5 * 1024 * 1024 // 5MB
buf := make([]byte, 0, 64*1024)
scanner.Buffer(buf, maxCapacity)
var buffer strings.Builder
inSIPMessage := false
var msgNetInfo *NetInfo
@@ -199,6 +204,13 @@ func (c *LocalCapturer) processStream(r io.Reader) {
if buffer.Len() > 0 {
c.parseAndEmit(buffer.String(), msgNetInfo)
}
if err := scanner.Err(); err != nil {
logger.Error("Scanner error: %v", err)
if c.OnError != nil {
c.OnError(fmt.Errorf("scanner error: %w", err))
}
}
}
func (c *LocalCapturer) processErrors(r io.Reader) {