diff --git a/servetcp.go b/servetcp.go index ac2bf6b..c70f706 100644 --- a/servetcp.go +++ b/servetcp.go @@ -48,6 +48,11 @@ func (s *Server) accept(listen net.Listener) error { } } +func (s *Server) ListenWithListener(listen net.Listener) { + s.listeners = append(s.listeners, listen) + go s.accept(listen) +} + // ListenTCP starts the Modbus server listening on "address:port". func (s *Server) ListenTCP(addressPort string) (err error) { listen, err := net.Listen("tcp", addressPort) @@ -55,8 +60,7 @@ func (s *Server) ListenTCP(addressPort string) (err error) { log.Printf("Failed to Listen: %v\n", err) return err } - s.listeners = append(s.listeners, listen) - go s.accept(listen) + s.ListenWithListener(listen) return err } @@ -67,7 +71,6 @@ func (s *Server) ListenTLS(addressPort string, config *tls.Config) (err error) { log.Printf("Failed to Listen on TLS: %v\n", err) return err } - s.listeners = append(s.listeners, listen) - go s.accept(listen) + s.ListenWithListener(listen) return err }