fix: Increase scanner buffer size to 5MB and add error logging to prevent silent capture failures
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user