From 5c25403b13a698267230f859e822a7f714082198 Mon Sep 17 00:00:00 2001
From: Bas van Kervel <bas@ethdev.com>
Date: Tue, 16 Jun 2015 13:30:53 +0200
Subject: [PATCH] refactored old rpc structure to new

---
 cmd/geth/main.go   |  1 +
 cmd/utils/flags.go | 19 +++++++++++++++----
 rpc/api/api.go     |  4 ++++
 3 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/cmd/geth/main.go b/cmd/geth/main.go
index 89aae43e5..43e45f6cc 100644
--- a/cmd/geth/main.go
+++ b/cmd/geth/main.go
@@ -239,6 +239,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso
 		utils.RPCEnabledFlag,
 		utils.RPCListenAddrFlag,
 		utils.RPCPortFlag,
+		utils.RpcApiFlag,
 		utils.IPCDisabledFlag,
 		utils.IPCApiFlag,
 		utils.IPCPathFlag,
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index 696dbd142..e0eefb3e3 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -22,7 +22,6 @@ import (
 	"github.com/ethereum/go-ethereum/logger"
 	"github.com/ethereum/go-ethereum/logger/glog"
 	"github.com/ethereum/go-ethereum/p2p/nat"
-	"github.com/ethereum/go-ethereum/rpc"
 	"github.com/ethereum/go-ethereum/rpc/api"
 	"github.com/ethereum/go-ethereum/rpc/codec"
 	"github.com/ethereum/go-ethereum/rpc/comms"
@@ -209,13 +208,18 @@ var (
 		Usage: "Domain on which to send Access-Control-Allow-Origin header",
 		Value: "",
 	}
+	RpcApiFlag = cli.StringFlag{
+		Name:  "rpcapi",
+		Usage: "Specify the API's which are offered over the HTTP RPC interface",
+		Value: api.DefaultHttpRpcApis,
+	}
 	IPCDisabledFlag = cli.BoolFlag{
 		Name:  "ipcdisable",
 		Usage: "Disable the IPC-RPC server",
 	}
 	IPCApiFlag = cli.StringFlag{
 		Name:  "ipcapi",
-		Usage: "Specify the API's which are offered over this interface",
+		Usage: "Specify the API's which are offered over the IPC interface",
 		Value: api.DefaultIpcApis,
 	}
 	IPCPathFlag = DirectoryFlag{
@@ -457,14 +461,21 @@ func StartIPC(eth *eth.Ethereum, ctx *cli.Context) error {
 }
 
 func StartRPC(eth *eth.Ethereum, ctx *cli.Context) error {
-	config := rpc.RpcConfig{
+	config := comms.HttpConfig{
 		ListenAddress: ctx.GlobalString(RPCListenAddrFlag.Name),
 		ListenPort:    uint(ctx.GlobalInt(RPCPortFlag.Name)),
 		CorsDomain:    ctx.GlobalString(RPCCORSDomainFlag.Name),
 	}
 
 	xeth := xeth.New(eth, nil)
-	return rpc.Start(xeth, config)
+	codec := codec.JSON
+
+	apis, err := api.ParseApiString(ctx.GlobalString(RpcApiFlag.Name), codec, xeth, eth)
+	if err != nil {
+		return err
+	}
+
+	return comms.StartHttp(config, codec, apis...)
 }
 
 func StartPProf(ctx *cli.Context) {
diff --git a/rpc/api/api.go b/rpc/api/api.go
index e431e5c1e..dec67fed1 100644
--- a/rpc/api/api.go
+++ b/rpc/api/api.go
@@ -20,6 +20,10 @@ const (
 )
 
 var (
+	DefaultHttpRpcApis = strings.Join([]string{
+		EthApiName, NetApiName, Web3ApiName,
+	}, ",")
+
 	// List with all API's which are offered over the IPC interface by default
 	DefaultIpcApis = strings.Join([]string{
 		AdminApiName, EthApiName, DebugApiName, MinerApiName, NetApiName,
-- 
GitLab