add WaitForShutdown method to the server, additional logging

This commit is contained in:
Olaoluwa Osuntokun 2016-03-22 18:49:22 -07:00
parent d9922dc76d
commit 555003006b
2 changed files with 22 additions and 14 deletions

View File

@ -94,6 +94,7 @@ func (r *rpcServer) NewAddress(ctx context.Context, in *lnrpc.NewAddressRequest)
return nil, err return nil, err
} }
rpcsLog.Infof("Generated new address: %v", addr.String())
return &lnrpc.NewAddressResponse{Address: addr.String()}, nil return &lnrpc.NewAddressResponse{Address: addr.String()}, nil
} }
@ -114,5 +115,6 @@ func (r *rpcServer) ConnectPeer(ctx context.Context,
return nil, err return nil, err
} }
rpcsLog.Infof("Connected to peer: %v", peerAddr.String())
return &lnrpc.ConnectPeerResponse{[]byte(peerAddr.String())}, nil return &lnrpc.ConnectPeerResponse{[]byte(peerAddr.String())}, nil
} }

View File

@ -8,12 +8,11 @@ import (
"sync/atomic" "sync/atomic"
"github.com/btcsuite/btcd/btcec" "github.com/btcsuite/btcd/btcec"
"github.com/lightningnetwork/lnd/channeldb"
"github.com/lightningnetwork/lnd/lndc" "github.com/lightningnetwork/lnd/lndc"
"github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwallet"
"github.com/btcsuite/btcd/chaincfg"
"github.com/btcsuite/btcwallet/waddrmgr" "github.com/btcsuite/btcwallet/waddrmgr"
"github.com/btcsuite/btcwallet/walletdb"
) )
// server... // server...
@ -22,14 +21,13 @@ type server struct {
shutdown int32 // atomic shutdown int32 // atomic
longTermPriv *btcec.PrivateKey longTermPriv *btcec.PrivateKey
bitcoinNet *chaincfg.Params
listeners []net.Listener listeners []net.Listener
peers map[int32]*peer peers map[int32]*peer
rpcServer *rpcServer rpcServer *rpcServer
lnwallet *lnwallet.LightningWallet lnwallet *lnwallet.LightningWallet
db walletdb.DB chanDB *channeldb.DB
newPeers chan *peer newPeers chan *peer
donePeers chan *peer donePeers chan *peer
@ -40,9 +38,10 @@ type server struct {
} }
// newServer... // newServer...
func newServer(listenAddrs []string, bitcoinNet *chaincfg.Params, func newServer(listenAddrs []string, wallet *lnwallet.LightningWallet,
wallet *lnwallet.LightningWallet) (*server, error) { chanDB *channeldb.DB) (*server, error) {
privKey, err := getIdentityPrivKey(wallet)
privKey, err := getIdentityPrivKey(chanDB, wallet)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -56,6 +55,7 @@ func newServer(listenAddrs []string, bitcoinNet *chaincfg.Params,
} }
s := &server{ s := &server{
chanDB: chanDB,
longTermPriv: privKey, longTermPriv: privKey,
listeners: listeners, listeners: listeners,
peers: make(map[int32]*peer), peers: make(map[int32]*peer),
@ -194,14 +194,15 @@ func (s *server) AddPeer(p *peer) {
// listener... // listener...
func (s *server) listener(l net.Listener) { func (s *server) listener(l net.Listener) {
srvrLog.Infof("Server listening on %s", l.Addr())
for atomic.LoadInt32(&s.shutdown) == 0 { for atomic.LoadInt32(&s.shutdown) == 0 {
conn, err := l.Accept() conn, err := l.Accept()
if err != nil { if err != nil {
// TODO(roasbeef): log srvrLog.Errorf("Can't accept connection: %v", err)
fmt.Println("err: ", err)
continue continue
} }
srvrLog.Tracef("New inbound connection from %v", conn.RemoteAddr())
peer := newPeer(conn, s) peer := newPeer(conn, s)
peer.Start() peer.Start()
} }
@ -250,17 +251,17 @@ func (s *server) Stop() error {
} }
// getIdentityPrivKey gets the identity private key out of the wallet DB. // getIdentityPrivKey gets the identity private key out of the wallet DB.
func getIdentityPrivKey(l *lnwallet.LightningWallet) (*btcec.PrivateKey, error) { func getIdentityPrivKey(c *channeldb.DB, w *lnwallet.LightningWallet) (*btcec.PrivateKey, error) {
adr, err := l.ChannelDB.GetIdAdr() adr, err := c.GetIdAdr()
if err != nil { if err != nil {
return nil, err return nil, err
} }
fmt.Printf("got ID address: %s\n", adr.String()) ltndLog.Infof("got ID address: %s", adr.String())
adr2, err := l.Manager.Address(adr) adr2, err := w.Manager.Address(adr)
if err != nil { if err != nil {
return nil, err return nil, err
} }
fmt.Println("pubkey: %v", hex.EncodeToString(adr2.(waddrmgr.ManagedPubKeyAddress).PubKey().SerializeCompressed())) ltndLog.Infof("pubkey: %v", hex.EncodeToString(adr2.(waddrmgr.ManagedPubKeyAddress).PubKey().SerializeCompressed()))
priv, err := adr2.(waddrmgr.ManagedPubKeyAddress).PrivKey() priv, err := adr2.(waddrmgr.ManagedPubKeyAddress).PrivKey()
if err != nil { if err != nil {
return nil, err return nil, err
@ -268,3 +269,8 @@ func getIdentityPrivKey(l *lnwallet.LightningWallet) (*btcec.PrivateKey, error)
return priv, nil return priv, nil
} }
// WaitForShutdown blocks all goroutines have been stopped.
func (s *server) WaitForShutdown() {
s.wg.Wait()
}