OSDN Git Service

48918058ca017203bb3a233638cdd20eb1318ce2
[bytom/bytom.git] / blockchain / rpc / net.go
1 package rpc
2
3 import (
4         ctypes "github.com/bytom/blockchain/rpc/types"
5         "github.com/bytom/p2p"
6 )
7
8 //-----------------------------------------------------------------------------
9
10 func NetInfo(p2pSwitch *p2p.Switch) (*ctypes.ResultNetInfo, error) {
11         listening := p2pSwitch.IsListening()
12         listeners := []string{}
13         for _, listener := range p2pSwitch.Listeners() {
14                 listeners = append(listeners, listener.String())
15         }
16         peers := []ctypes.Peer{}
17         for _, peer := range p2pSwitch.Peers().List() {
18                 peers = append(peers, ctypes.Peer{
19                         NodeInfo:         *peer.NodeInfo,
20                         IsOutbound:       peer.IsOutbound(),
21                         ConnectionStatus: peer.Connection().Status(),
22                 })
23         }
24         return &ctypes.ResultNetInfo{
25                 Listening: listening,
26                 Listeners: listeners,
27                 Peers:     peers,
28         }, nil
29 }
30
31 //-----------------------------------------------------------------------------
32
33 // Dial given list of seeds
34 /*func UnsafeDialSeeds(seeds []string) (*ctypes.ResultDialSeeds, error) {
35
36         if len(seeds) == 0 {
37                 return &ctypes.ResultDialSeeds{}, fmt.Errorf("No seeds provided")
38         }
39         // starts go routines to dial each seed after random delays
40         logger.Info("DialSeeds", "addrBook", addrBook, "seeds", seeds)
41         err := p2pSwitch.DialSeeds(addrBook, seeds)
42         if err != nil {
43                 return &ctypes.ResultDialSeeds{}, err
44         }
45         return &ctypes.ResultDialSeeds{"Dialing seeds in progress. See /net_info for details"}, nil
46 }*/