mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-06 05:25:35 +00:00
Decouple StartHTTP{,AndTLS}Server from Listen() (#2791)
* Decouple StartHTTP{,AndTLS}Server from Listen()
This should help solve cosmos/cosmos-sdk#2715
* Fix small mistake
* Update StartGRPCServer
* s/rpc/rpcserver/
* Start grpccore.StartGRPCServer in a goroutine
* Reinstate l.Close()
* Fix rpc/lib/test/main.go
* Update code comment
* update changelog and comments
* fix tm-monitor. more comments
This commit is contained in:
committed by
Ethan Buchman
parent
be8c2d5018
commit
b646437ec7
@@ -48,13 +48,13 @@ Examples:
|
||||
logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout))
|
||||
}
|
||||
|
||||
m := startMonitor(flag.Arg(0))
|
||||
monitor := startMonitor(flag.Arg(0))
|
||||
|
||||
startRPC(listenAddr, m, logger)
|
||||
listener := startRPC(listenAddr, monitor, logger)
|
||||
|
||||
var ton *Ton
|
||||
if !noton {
|
||||
ton = NewTon(m)
|
||||
ton = NewTon(monitor)
|
||||
ton.Start()
|
||||
}
|
||||
|
||||
@@ -62,7 +62,8 @@ Examples:
|
||||
if !noton {
|
||||
ton.Stop()
|
||||
}
|
||||
m.Stop()
|
||||
monitor.Stop()
|
||||
listener.Close()
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net"
|
||||
"net/http"
|
||||
|
||||
"github.com/tendermint/tendermint/libs/log"
|
||||
@@ -9,16 +10,19 @@ import (
|
||||
monitor "github.com/tendermint/tendermint/tools/tm-monitor/monitor"
|
||||
)
|
||||
|
||||
func startRPC(listenAddr string, m *monitor.Monitor, logger log.Logger) {
|
||||
func startRPC(listenAddr string, m *monitor.Monitor, logger log.Logger) net.Listener {
|
||||
routes := routes(m)
|
||||
|
||||
mux := http.NewServeMux()
|
||||
wm := rpc.NewWebsocketManager(routes, nil)
|
||||
mux.HandleFunc("/websocket", wm.WebsocketHandler)
|
||||
rpc.RegisterRPCFuncs(mux, routes, cdc, logger)
|
||||
if _, err := rpc.StartHTTPServer(listenAddr, mux, logger, rpc.Config{}); err != nil {
|
||||
listener, err := rpc.Listen(listenAddr, rpc.Config{})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
go rpc.StartHTTPServer(listener, mux, logger)
|
||||
return listener
|
||||
}
|
||||
|
||||
func routes(m *monitor.Monitor) map[string]*rpc.RPCFunc {
|
||||
|
||||
Reference in New Issue
Block a user