aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-01-31 18:57:56 +0800
committerobscuren <geffobscura@gmail.com>2014-01-31 18:57:56 +0800
commitda66eddfccf86eb5dc036e023ddc2e0278105706 (patch)
tree6eb3453a2297696a2a5adc1132f3974dcf93a2e1
parentdfa38b3f91d124f97350429c4664b62a5cb7dd08 (diff)
downloaddexon-da66eddfccf86eb5dc036e023ddc2e0278105706.tar
dexon-da66eddfccf86eb5dc036e023ddc2e0278105706.tar.gz
dexon-da66eddfccf86eb5dc036e023ddc2e0278105706.tar.bz2
dexon-da66eddfccf86eb5dc036e023ddc2e0278105706.tar.lz
dexon-da66eddfccf86eb5dc036e023ddc2e0278105706.tar.xz
dexon-da66eddfccf86eb5dc036e023ddc2e0278105706.tar.zst
dexon-da66eddfccf86eb5dc036e023ddc2e0278105706.zip
Get peers returns now both in and outbound peers
-rw-r--r--ethereum.go16
-rw-r--r--peer.go4
2 files changed, 18 insertions, 2 deletions
diff --git a/ethereum.go b/ethereum.go
index e1fb5945c..b9fc94d50 100644
--- a/ethereum.go
+++ b/ethereum.go
@@ -144,6 +144,18 @@ func (s *Ethereum) InboundPeers() []*Peer {
return inboundPeers[:length]
}
+func (s *Ethereum) InOutPeers() []*Peer {
+ // Create a new peer slice with at least the length of the total peers
+ inboundPeers := make([]*Peer, s.peers.Len())
+ length := 0
+ eachPeer(s.peers, func(p *Peer, e *list.Element) {
+ inboundPeers[length] = p
+ length++
+ })
+
+ return inboundPeers[:length]
+}
+
func (s *Ethereum) Broadcast(msgType ethwire.MsgType, data interface{}) {
msg := ethwire.NewMessage(msgType, data)
eachPeer(s.peers, func(p *Peer, e *list.Element) {
@@ -151,6 +163,10 @@ func (s *Ethereum) Broadcast(msgType ethwire.MsgType, data interface{}) {
})
}
+func (s *Ethereum) Peers() *list.List {
+ return s.peers
+}
+
func (s *Ethereum) ReapDeadPeers() {
for {
eachPeer(s.peers, func(p *Peer, e *list.Element) {
diff --git a/peer.go b/peer.go
index bd75a0039..410e310f5 100644
--- a/peer.go
+++ b/peer.go
@@ -335,9 +335,9 @@ func (p *Peer) pushHandshake() error {
// Pushes the list of outbound peers to the client when requested
func (p *Peer) pushPeers() {
- outPeers := make([]interface{}, len(p.ethereum.OutboundPeers()))
+ outPeers := make([]interface{}, len(p.ethereum.InOutPeers()))
// Serialise each peer
- for i, peer := range p.ethereum.OutboundPeers() {
+ for i, peer := range p.ethereum.InOutPeers() {
outPeers[i] = peer.RlpData()
}