Added protocol caps accessors

This commit is contained in:
obscuren 2014-09-26 13:45:26 +02:00
parent 68119d0929
commit b8354124be
3 changed files with 14 additions and 1 deletions

View File

@ -32,6 +32,7 @@ type Peer interface {
Version() string
PingTime() string
Connected() *int32
Caps() *ethutil.Value
}
type EthManager interface {

View File

@ -1,6 +1,7 @@
package ethpipe
import (
"fmt"
"strconv"
"strings"
@ -151,6 +152,7 @@ type JSPeer struct {
Version string `json:"version"`
LastResponse string `json:"lastResponse"`
Latency string `json:"latency"`
Caps string `json:"caps"`
}
func NewJSPeer(peer ethchain.Peer) *JSPeer {
@ -164,7 +166,13 @@ func NewJSPeer(peer ethchain.Peer) *JSPeer {
}
ipAddress := strings.Join(ip, ".")
return &JSPeer{ref: &peer, Inbound: peer.Inbound(), LastSend: peer.LastSend().Unix(), LastPong: peer.LastPong(), Version: peer.Version(), Ip: ipAddress, Port: int(peer.Port()), Latency: peer.PingTime()}
var caps []string
capsIt := peer.Caps().NewIterator()
for capsIt.Next() {
caps = append(caps, capsIt.Value().Str())
}
return &JSPeer{ref: &peer, Inbound: peer.Inbound(), LastSend: peer.LastSend().Unix(), LastPong: peer.LastPong(), Version: peer.Version(), Ip: ipAddress, Port: int(peer.Port()), Latency: peer.PingTime(), Caps: fmt.Sprintf("%v", caps)}
}
type JSReceipt struct {

View File

@ -813,6 +813,10 @@ func (self *Peer) IsCap(cap string) bool {
return false
}
func (self *Peer) Caps() *ethutil.Value {
return self.protocolCaps
}
func (p *Peer) String() string {
var strBoundType string
if p.inbound {