MCPcopy
hub / github.com/google/gopacket / Accept

Method Accept

examples/reassemblydump/main.go:336–374  ·  view source on GitHub ↗
(tcp *layers.TCP, ci gopacket.CaptureInfo, dir reassembly.TCPFlowDirection, nextSeq reassembly.Sequence, start *bool, ac reassembly.AssemblerContext)

Source from the content-addressed store, hash-verified

334}
335
336func (t *tcpStream) Accept(tcp *layers.TCP, ci gopacket.CaptureInfo, dir reassembly.TCPFlowDirection, nextSeq reassembly.Sequence, start *bool, ac reassembly.AssemblerContext) bool {
337 // FSM
338 if !t.tcpstate.CheckState(tcp, dir) {
339 Error("FSM", "%s: Packet rejected by FSM (state:%s)\n", t.ident, t.tcpstate.String())
340 stats.rejectFsm++
341 if !t.fsmerr {
342 t.fsmerr = true
343 stats.rejectConnFsm++
344 }
345 if !*ignorefsmerr {
346 return false
347 }
348 }
349 // Options
350 err := t.optchecker.Accept(tcp, ci, dir, nextSeq, start)
351 if err != nil {
352 Error("OptionChecker", "%s: Packet rejected by OptionChecker: %s\n", t.ident, err)
353 stats.rejectOpt++
354 if !*nooptcheck {
355 return false
356 }
357 }
358 // Checksum
359 accept := true
360 if *checksum {
361 c, err := tcp.ComputeChecksum()
362 if err != nil {
363 Error("ChecksumCompute", "%s: Got error computing checksum: %s\n", t.ident, err)
364 accept = false
365 } else if c != 0x0 {
366 Error("Checksum", "%s: Invalid checksum: 0x%x\n", t.ident, c)
367 accept = false
368 }
369 }
370 if !accept {
371 stats.rejectOpt++
372 }
373 return accept
374}
375
376func (t *tcpStream) ReassembledSG(sg reassembly.ScatterGather, ac reassembly.AssemblerContext) {
377 dir, start, end, skip := sg.Info()

Callers

nothing calls this directly

Calls 5

ErrorFunction · 0.85
CheckStateMethod · 0.80
ComputeChecksumMethod · 0.80
StringMethod · 0.65
AcceptMethod · 0.65

Tested by

no test coverage detected