remove env refactor

This commit is contained in:
William Banfield
2021-08-11 20:41:26 -04:00
parent 75f549d408
commit 6c7dbec283
3 changed files with 23 additions and 60 deletions

View File

@@ -89,7 +89,7 @@ func addCORSHandler(rpcConfig *config.RPCConfig, h http.Handler) http.Handler {
// ListenAndServe listens on the address specified in srv.Addr and handles any
// incoming requests over HTTP using the Inspect rpc handler specified on the server.
func (srv *Server) ListenAndServe(ctx context.Context) error {
listener, err := rpcserver.Listen(r.Addr, r.Config.MaxOpenConnections)
listener, err := rpcserver.Listen(srv.Addr, srv.Config.MaxOpenConnections)
if err != nil {
return err
}
@@ -97,13 +97,13 @@ func (srv *Server) ListenAndServe(ctx context.Context) error {
<-ctx.Done()
listener.Close()
}()
return rpcserver.Serve(listener, r.Handler, r.Logger, serverRPCConfig(r.Config))
return rpcservesrv.Serve(listener, srv.Handler, srv.Logger, serverRPCConfig(srv.Config))
}
// ListenAndServeTLS listens on the address specified in srv.Addr. ListenAndServeTLS handles
// incoming requests over HTTPS using the Inspect rpc handler specified on the server.
func (srv *Server) ListenAndServeTLS(ctx context.Context, certFile, keyFile string) error {
listener, err := rpcserver.Listen(r.Addr, r.Config.MaxOpenConnections)
listener, err := rpcserver.Listen(srv.Addr, srv.Config.MaxOpenConnections)
if err != nil {
return err
}
@@ -111,7 +111,7 @@ func (srv *Server) ListenAndServeTLS(ctx context.Context, certFile, keyFile stri
<-ctx.Done()
listener.Close()
}()
return rpcserver.ServeTLS(listener, r.Handler, certFile, keyFile, r.Logger, serverRPCConfig(r.Config))
return rpcserver.ServeTLS(listener, srv.Handler, certFile, keyFile, srv.Logger, serverRPCConfig(srv.Config))
}
func serverRPCConfig(r *config.RPCConfig) *server.Config {

View File

@@ -10,16 +10,13 @@ type RoutesMap map[string]*rpc.RPCFunc
// Routes is a map of available routes.
func (env *Environment) GetRoutes() RoutesMap {
return CombineRoutes(env.InfoRoutes(),
env.SubscribeRoutes(),
env.BroadcastTxRoutes(),
env.ABCIQueryRoutes(),
env.EvidenceRoutes(),
)
}
func (env *Environment) InfoRoutes() RoutesMap {
return RoutesMap{
// subscribe/unsubscribe are reserved for websocket events.
"subscribe": rpc.NewWSRPCFunc(env.Subscribe, "query"),
"unsubscribe": rpc.NewWSRPCFunc(env.Unsubscribe, "query"),
"unsubscribe_all": rpc.NewWSRPCFunc(env.UnsubscribeAll, ""),
// info API
"health": rpc.NewRPCFunc(env.Health, "", false),
"status": rpc.NewRPCFunc(env.Status, "", false),
"net_info": rpc.NewRPCFunc(env.NetInfo, "", false),
@@ -40,59 +37,25 @@ func (env *Environment) InfoRoutes() RoutesMap {
"consensus_params": rpc.NewRPCFunc(env.ConsensusParams, "height", true),
"unconfirmed_txs": rpc.NewRPCFunc(env.UnconfirmedTxs, "limit", false),
"num_unconfirmed_txs": rpc.NewRPCFunc(env.NumUnconfirmedTxs, "", false),
}
}
func (env *Environment) SubscribeRoutes() RoutesMap {
return RoutesMap{
// subscribe/unsubscribe are reserved for websocket events.
"subscribe": rpc.NewWSRPCFunc(env.Subscribe, "query"),
"unsubscribe": rpc.NewWSRPCFunc(env.Unsubscribe, "query"),
"unsubscribe_all": rpc.NewWSRPCFunc(env.UnsubscribeAll, ""),
}
}
func (env *Environment) BroadcastTxRoutes() RoutesMap {
// tx broadcast API
return RoutesMap{
// tx broadcast API
"broadcast_tx_commit": rpc.NewRPCFunc(env.BroadcastTxCommit, "tx", false),
"broadcast_tx_sync": rpc.NewRPCFunc(env.BroadcastTxSync, "tx", false),
"broadcast_tx_async": rpc.NewRPCFunc(env.BroadcastTxAsync, "tx", false),
}
}
func (env *Environment) EvidenceRoutes() RoutesMap {
// evidence API
return RoutesMap{
// abci API
"abci_query": rpc.NewRPCFunc(env.ABCIQuery, "path,data,height,prove", false),
"abci_info": rpc.NewRPCFunc(env.ABCIInfo, "", true),
// evidence API
"broadcast_evidence": rpc.NewRPCFunc(env.BroadcastEvidence, "evidence", false),
}
}
func (env *Environment) ABCIQueryRoutes() RoutesMap {
// abci API
return RoutesMap{
"abci_query": rpc.NewRPCFunc(env.ABCIQuery, "path,data,height,prove", false),
"abci_info": rpc.NewRPCFunc(env.ABCIInfo, "", true),
}
}
// AddUnsafeRoutes adds unsafe routes.
func (env *Environment) UnsafeRoutes() RoutesMap {
func (env *Environment) AddUnsafe(routes RoutesMap) {
// control API
return RoutesMap{
"dial_seeds": rpc.NewRPCFunc(env.UnsafeDialSeeds, "seeds", false),
"dial_peers": rpc.NewRPCFunc(env.UnsafeDialPeers, "peers,persistent,unconditional,private", false),
"unsafe_flush_mempool": rpc.NewRPCFunc(env.UnsafeFlushMempool, "", false),
}
}
// CombineRoutes takes a list of RoutesMaps and combines them into a single RoutesMap.
func CombineRoutes(routesMaps ...RoutesMap) RoutesMap {
res := RoutesMap{}
for _, routesMap := range routesMaps {
for path, rpcFunc := range routesMap {
res[path] = rpcFunc
}
}
return res
routes["dial_seeds"] = rpc.NewRPCFunc(env.UnsafeDialSeeds, "seeds", false)
routes["dial_peers"] = rpc.NewRPCFunc(env.UnsafeDialPeers, "peers,persistent,unconditional,private", false)
routes["unsafe_flush_mempool"] = rpc.NewRPCFunc(env.UnsafeFlushMempool, "", false)
}

View File

@@ -261,7 +261,7 @@ func (h maxBytesHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// Listen starts a new net.Listener on the given address.
// It returns an error if the address is invalid or the call to Listen() fails.
func Listen(addr string, config *Config) (listener net.Listener, err error) {
func Listen(addr string, maxOpenConnections int) (listener net.Listener, err error) {
parts := strings.SplitN(addr, "://", 2)
if len(parts) != 2 {
return nil, fmt.Errorf(
@@ -274,8 +274,8 @@ func Listen(addr string, config *Config) (listener net.Listener, err error) {
if err != nil {
return nil, fmt.Errorf("failed to listen on %v: %v", addr, err)
}
if config.MaxOpenConnections > 0 {
listener = netutil.LimitListener(listener, config.MaxOpenConnections)
if maxOpenConnections > 0 {
listener = netutil.LimitListener(listener, maxOpenConnections)
}
return listener, nil