diff options
author | Taylor Gerring <taylor.gerring@gmail.com> | 2015-03-30 03:26:47 +0800 |
---|---|---|
committer | Taylor Gerring <taylor.gerring@gmail.com> | 2015-03-30 03:26:47 +0800 |
commit | 04a7c4ae1e7fe9683854fd759cad0e5e04a2f2c0 (patch) | |
tree | 8065b02924ccbacb192ce33b74ea45a387819528 /rpc | |
parent | 24fc1f073dd5ec0302937fb51729991dd9a40ba3 (diff) | |
download | dexon-04a7c4ae1e7fe9683854fd759cad0e5e04a2f2c0.tar.gz dexon-04a7c4ae1e7fe9683854fd759cad0e5e04a2f2c0.tar.zst dexon-04a7c4ae1e7fe9683854fd759cad0e5e04a2f2c0.zip |
Abstract http into rpc package
New RpcConfig object to pass growing config
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/http.go | 12 | ||||
-rw-r--r-- | rpc/messages.go | 6 |
2 files changed, 18 insertions, 0 deletions
diff --git a/rpc/http.go b/rpc/http.go index 919c567bd..d146f28a6 100644 --- a/rpc/http.go +++ b/rpc/http.go @@ -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) diff --git a/rpc/messages.go b/rpc/messages.go index 5c498234f..43c4d5e0d 100644 --- a/rpc/messages.go +++ b/rpc/messages.go @@ -21,6 +21,12 @@ import ( "fmt" ) +type RpcConfig struct { + ListenAddress string + ListenPort uint + CorsDomain string +} + type InvalidTypeError struct { method string msg string |