code: func (e *ECU) control() {
  	tlsConfig, err := e.controlTLSConfig()
  	if err != nil {
  		log.Errorf("Disabling ECU control server: %v", err)
  		<-e.shutdownControl
  		e.shutdownControl <- true
  		return
  	}
  
  	ln, err := net.Listen("tcp", e.cfg.ControlAddress)
  	if err != nil {
  		log.Fatal("listen error:", err)
  	}
  
  	seesawRPC := rpc.NewServer()
  	seesawRPC.Register(&SeesawECU{e})
  	tlsListener := tls.NewListener(ln, tlsConfig)
  	go server.RPCAccept(tlsListener, seesawRPC)
  
  	<-e.shutdownControl
  	ln.Close()
  	e.shutdownControl <- true
  }
docs: // control starts an HTTP server to handle control RPC via a TCP socket. This
  // interface is used to control the Seesaw Node via the CLI or web console.