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

Method New

examples/reassemblydump/main.go:265–299  ·  view source on GitHub ↗
(net, transport gopacket.Flow, tcp *layers.TCP, ac reassembly.AssemblerContext)

Source from the content-addressed store, hash-verified

263}
264
265func (factory *tcpStreamFactory) New(net, transport gopacket.Flow, tcp *layers.TCP, ac reassembly.AssemblerContext) reassembly.Stream {
266 Debug("* NEW: %s %s\n", net, transport)
267 fsmOptions := reassembly.TCPSimpleFSMOptions{
268 SupportMissingEstablishment: *allowmissinginit,
269 }
270 stream := &tcpStream{
271 net: net,
272 transport: transport,
273 isDNS: tcp.SrcPort == 53 || tcp.DstPort == 53,
274 isHTTP: (tcp.SrcPort == 80 || tcp.DstPort == 80) && factory.doHTTP,
275 reversed: tcp.SrcPort == 80,
276 tcpstate: reassembly.NewTCPSimpleFSM(fsmOptions),
277 ident: fmt.Sprintf("%s:%s", net, transport),
278 optchecker: reassembly.NewTCPOptionCheck(),
279 }
280 if stream.isHTTP {
281 stream.client = httpReader{
282 bytes: make(chan []byte),
283 ident: fmt.Sprintf("%s %s", net, transport),
284 hexdump: *hexdump,
285 parent: stream,
286 isClient: true,
287 }
288 stream.server = httpReader{
289 bytes: make(chan []byte),
290 ident: fmt.Sprintf("%s %s", net.Reverse(), transport.Reverse()),
291 hexdump: *hexdump,
292 parent: stream,
293 }
294 factory.wg.Add(2)
295 go stream.client.run(&factory.wg)
296 go stream.server.run(&factory.wg)
297 }
298 return stream
299}
300
301func (factory *tcpStreamFactory) WaitGoRoutines() {
302 factory.wg.Wait()

Callers

nothing calls this directly

Calls 6

NewTCPSimpleFSMFunction · 0.92
NewTCPOptionCheckFunction · 0.92
DebugFunction · 0.85
ReverseMethod · 0.45
AddMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected