From 10b252dd0517175117d8d4a8ef30b3689a10eda5 Mon Sep 17 00:00:00 2001 From: obscuren Date: Tue, 21 Oct 2014 13:24:48 +0200 Subject: WIP RPC interface --- rpc/server.go | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 rpc/server.go (limited to 'rpc/server.go') diff --git a/rpc/server.go b/rpc/server.go new file mode 100644 index 000000000..db12c747c --- /dev/null +++ b/rpc/server.go @@ -0,0 +1,67 @@ +package rpc + +import ( + "fmt" + "net" + "net/rpc" + "net/rpc/jsonrpc" + + "github.com/ethereum/eth-go/ethlog" + "github.com/ethereum/eth-go/ethpipe" +) + +var logger = ethlog.NewLogger("JSON") + +type JsonRpcServer struct { + quit chan bool + listener net.Listener + pipe *ethpipe.JSPipe +} + +func (s *JsonRpcServer) exitHandler() { +out: + for { + select { + case <-s.quit: + s.listener.Close() + break out + } + } + + logger.Infoln("Shutdown JSON-RPC server") +} + +func (s *JsonRpcServer) Stop() { + close(s.quit) +} + +func (s *JsonRpcServer) Start() { + logger.Infoln("Starting JSON-RPC server") + go s.exitHandler() + rpc.Register(&EthereumApi{pipe: s.pipe}) + rpc.HandleHTTP() + + for { + conn, err := s.listener.Accept() + if err != nil { + logger.Infoln("Error starting JSON-RPC:", err) + break + } + logger.Debugln("Incoming request.") + go jsonrpc.ServeConn(conn) + } +} + +func NewJsonRpcServer(pipe *ethpipe.JSPipe, port int) (*JsonRpcServer, error) { + sport := fmt.Sprintf(":%d", port) + l, err := net.Listen("tcp", sport) + if err != nil { + return nil, err + } + + return &JsonRpcServer{ + listener: l, + quit: make(chan bool), + pipe: pipe, + }, nil +} -- cgit v1.2.3 From b1c247231b11f313ca0eedff75ea563926d23f68 Mon Sep 17 00:00:00 2001 From: obscuren Date: Fri, 31 Oct 2014 12:56:05 +0100 Subject: ethlog => logger --- rpc/server.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'rpc/server.go') diff --git a/rpc/server.go b/rpc/server.go index ce53266f0..20f75ce67 100644 --- a/rpc/server.go +++ b/rpc/server.go @@ -6,11 +6,11 @@ import ( "net/rpc" "net/rpc/jsonrpc" - "github.com/ethereum/go-ethereum/ethlog" "github.com/ethereum/go-ethereum/ethpipe" + "github.com/ethereum/go-ethereum/logger" ) -var logger = ethlog.NewLogger("JSON") +var jsonlogger = logger.NewLogger("JSON") type JsonRpcServer struct { quit chan bool @@ -28,7 +28,7 @@ out: } } - logger.Infoln("Shutdown JSON-RPC server") + jsonlogger.Infoln("Shutdown JSON-RPC server") } func (s *JsonRpcServer) Stop() { @@ -36,7 +36,7 @@ func (s *JsonRpcServer) Stop() { } func (s *JsonRpcServer) Start() { - logger.Infoln("Starting JSON-RPC server") + jsonlogger.Infoln("Starting JSON-RPC server") go s.exitHandler() rpc.Register(&EthereumApi{pipe: s.pipe}) rpc.HandleHTTP() @@ -44,10 +44,10 @@ func (s *JsonRpcServer) Start() { for { conn, err := s.listener.Accept() if err != nil { - logger.Infoln("Error starting JSON-RPC:", err) + jsonlogger.Infoln("Error starting JSON-RPC:", err) break } - logger.Debugln("Incoming request.") + jsonlogger.Debugln("Incoming request.") go jsonrpc.ServeConn(conn) } } -- cgit v1.2.3 From 0ed1a8b50a9b9726cd57a2731d0405f6949c6188 Mon Sep 17 00:00:00 2001 From: obscuren Date: Fri, 31 Oct 2014 14:30:08 +0100 Subject: ethpipe => xeth (eXtended ETHereum) --- rpc/server.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'rpc/server.go') diff --git a/rpc/server.go b/rpc/server.go index 20f75ce67..983dc6c33 100644 --- a/rpc/server.go +++ b/rpc/server.go @@ -6,8 +6,8 @@ import ( "net/rpc" "net/rpc/jsonrpc" - "github.com/ethereum/go-ethereum/ethpipe" "github.com/ethereum/go-ethereum/logger" + "github.com/ethereum/go-ethereum/xeth" ) var jsonlogger = logger.NewLogger("JSON") @@ -15,7 +15,7 @@ var jsonlogger = logger.NewLogger("JSON") type JsonRpcServer struct { quit chan bool listener net.Listener - pipe *ethpipe.JSPipe + pipe *xeth.JSXEth } func (s *JsonRpcServer) exitHandler() { @@ -52,7 +52,7 @@ func (s *JsonRpcServer) Start() { } } -func NewJsonRpcServer(pipe *ethpipe.JSPipe, port int) (*JsonRpcServer, error) { +func NewJsonRpcServer(pipe *xeth.JSXEth, port int) (*JsonRpcServer, error) { sport := fmt.Sprintf(":%d", port) l, err := net.Listen("tcp", sport) if err != nil { -- cgit v1.2.3