dissertation-2-code/tcp/listener.go
Jake Hillion 22b5cc74e1
Some checks failed
continuous-integration/drone/push Build is failing
interface naming and write deadline
2020-11-02 17:24:15 +00:00

38 lines
552 B
Go

package tcp
import (
"fmt"
"mpbl3p/proxy"
"net"
)
func NewListener(p *proxy.Proxy, local string, v proxy.MacVerifier) error {
laddr, err := net.ResolveTCPAddr("tcp", local)
if err != nil {
return err
}
listener, err := net.ListenTCP("tcp", laddr)
if err != nil {
return err
}
go func() {
for {
conn, err := listener.AcceptTCP()
if err != nil {
panic(err)
}
f := Flow{conn: conn, isAlive: true}
fmt.Printf("received new connection: %v\n", f)
p.AddConsumer(&f)
p.AddProducer(&f, v)
}
}()
return nil
}