Abstract http into rpc package

New RpcConfig object to pass growing config
This commit is contained in:
Taylor Gerring
2015-03-29 21:26:47 +02:00
parent 24fc1f073d
commit 04a7c4ae1e
4 changed files with 36 additions and 15 deletions

View File

@ -2,8 +2,10 @@ package rpc
import (
"encoding/json"
"fmt"
"io"
"io/ioutil"
"net"
"net/http"
"github.com/ethereum/go-ethereum/logger"
@ -17,6 +19,16 @@ const (
maxSizeReqLength = 1024 * 1024 // 1MB
)
func Start(pipe *xeth.XEth, config RpcConfig) error {
l, err := net.Listen("tcp", fmt.Sprintf("%s:%d", config.ListenAddress, config.ListenPort))
if err != nil {
rpclogger.Errorf("Can't listen on %s:%d: %v", config.ListenAddress, config.ListenPort, err)
return err
}
go http.Serve(l, JSONRPC(pipe))
return nil
}
// JSONRPC returns a handler that implements the Ethereum JSON-RPC API.
func JSONRPC(pipe *xeth.XEth) http.Handler {
api := NewEthereumApi(pipe)