deamon: be able to run the server over a unix socket
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
This commit is contained in:
parent
56a391bcdf
commit
cb1014f238
18
cmd/main.go
18
cmd/main.go
|
@ -1,6 +1,6 @@
|
||||||
// / Lightning Network protocol integration tests
|
// Lightning Network protocol integration tests
|
||||||
// /
|
//
|
||||||
// / Author: Vincenzo Palazzo <vincenzopalazzo@member.fsf.org>
|
// Author: Vincenzo Palazzo <vincenzopalazzo@member.fsf.org>
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
@ -8,6 +8,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/akamensky/argparse"
|
"github.com/akamensky/argparse"
|
||||||
|
|
||||||
|
"github.com/vincenzopalazzo/lnprototest-v2/server"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CmdParser struct {
|
type CmdParser struct {
|
||||||
|
@ -31,8 +33,6 @@ func buildCmdParser() (*CmdParser, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
dataDir := parser.String("d", "data-dir", &argparse.Options{Required: false, Default: home, Help: "data directory for ocean market deamon"})
|
dataDir := parser.String("d", "data-dir", &argparse.Options{Required: false, Default: home, Help: "data directory for ocean market deamon"})
|
||||||
_ = parser.Int("p", "port", &argparse.Options{Required: false, Default: 9090, Help: "Default port where the liquidity provider will listen"})
|
|
||||||
_ = parser.String("a", "address", &argparse.Options{Required: false, Default: "127.0.0.1", Help: "Host where the liquidity provider will listen about new connection"})
|
|
||||||
network := parser.String("n", "network", &argparse.Options{Required: false, Default: "testnet", Help: "The Bitcoin Network"})
|
network := parser.String("n", "network", &argparse.Options{Required: false, Default: "testnet", Help: "The Bitcoin Network"})
|
||||||
return &CmdParser{parser: parser, dataDir: dataDir, network: network}, nil
|
return &CmdParser{parser: parser, dataDir: dataDir, network: network}, nil
|
||||||
}
|
}
|
||||||
|
@ -46,4 +46,12 @@ func main() {
|
||||||
if err := parser.Parse(os.Args); err != nil {
|
if err := parser.Parse(os.Args); err != nil {
|
||||||
panic(parser.Usage(err))
|
panic(parser.Usage(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
server, err := server.Make(*parser.dataDir)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
if err := server.Listen(); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package main
|
package server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
@ -7,12 +7,12 @@ import (
|
||||||
"github.com/btcsuite/btcd/wire"
|
"github.com/btcsuite/btcd/wire"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ConnectRequest struct {
|
type ConnectRPC struct {
|
||||||
NodeId string
|
NodeId string
|
||||||
port uint64
|
port uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
func Connect(request *ConnectRequest, response *ConnectRequest) error {
|
func (_ *ConnectRPC) Call(request *ConnectRPC, response *ConnectRPC) error {
|
||||||
if err := lnprototestServer.Connect(request.NodeId, uint32(request.port), wire.SimNet); err != nil {
|
if err := lnprototestServer.Connect(request.NodeId, uint32(request.port), wire.SimNet); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -21,11 +21,11 @@ func Connect(request *ConnectRequest, response *ConnectRequest) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type SendRequest struct {
|
type SendRPC struct {
|
||||||
msg string
|
msg string
|
||||||
}
|
}
|
||||||
|
|
||||||
func Send(request *SendRequest, response *SendRequest) error {
|
func (_ *SendRPC) Call(request *SendRPC, response *SendRPC) error {
|
||||||
buff, err := hex.DecodeString(request.msg)
|
buff, err := hex.DecodeString(request.msg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
|
@ -1,6 +1,7 @@
|
||||||
package main
|
package server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
"net/rpc"
|
"net/rpc"
|
||||||
|
@ -23,8 +24,12 @@ func Make(datadir string) (*Server, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *Server) RegisterRPCs() error {
|
func (self *Server) RegisterRPCs() error {
|
||||||
if err := rpc.Register(Connect); err != nil {
|
if err := rpc.Register(new(ConnectRPC)); err != nil {
|
||||||
return nil
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := rpc.Register(new(SendRPC)); err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -35,6 +40,10 @@ func (self *Server) Listen() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
unixPath := fmt.Sprintf("%s/lnprototest.sock", self.dataDir)
|
unixPath := fmt.Sprintf("%s/lnprototest.sock", self.dataDir)
|
||||||
|
if _, err := os.Stat(unixPath); !errors.Is(err, os.ErrNotExist) {
|
||||||
|
os.Remove(unixPath)
|
||||||
|
}
|
||||||
|
|
||||||
listener, err := net.Listen("unix", unixPath)
|
listener, err := net.Listen("unix", unixPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
Loading…
Reference in New Issue