hook jsonrpc peers subcribe into current federation
This commit is contained in:
parent
6a28d809c2
commit
0a5a7c7d33
3 changed files with 25 additions and 5 deletions
|
@ -1,10 +1,15 @@
|
||||||
package server
|
package server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
pb "github.com/lbryio/herald.go/protobuf/go"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
type PeersService struct{}
|
type PeersService struct {
|
||||||
|
Server *Server
|
||||||
|
}
|
||||||
|
|
||||||
type PeersSubscribeReq struct {
|
type PeersSubscribeReq struct {
|
||||||
Ip string `json:"ip"`
|
Ip string `json:"ip"`
|
||||||
|
@ -12,13 +17,28 @@ type PeersSubscribeReq struct {
|
||||||
Details []string `json:"details"`
|
Details []string `json:"details"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type PeersSubscribeResp struct{}
|
type PeersSubscribeResp string
|
||||||
|
|
||||||
// Features is the json rpc endpoint for 'server.peers.subcribe'.
|
// Features is the json rpc endpoint for 'server.peers.subcribe'.
|
||||||
func (t *PeersService) Subscribe(req *PeersSubscribeReq, res **PeersSubscribeResp) error {
|
func (t *PeersService) Subscribe(req *PeersSubscribeReq, res **PeersSubscribeResp) error {
|
||||||
log.Println("PeersSubscribe")
|
log.Println("PeersSubscribe")
|
||||||
|
ctx := context.Background()
|
||||||
|
var port = "50001"
|
||||||
|
|
||||||
*res = nil
|
// FIXME: Get the actual port from the request details
|
||||||
|
|
||||||
|
msg := &pb.ServerMessage{
|
||||||
|
Address: req.Ip,
|
||||||
|
Port: port,
|
||||||
|
}
|
||||||
|
|
||||||
|
peers, err := t.Server.PeerSubscribe(ctx, msg)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
*res = nil
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
*res = (*PeersSubscribeResp)(&peers.Value)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,7 +135,7 @@ fail1:
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register "server.peers" handlers.
|
// Register "server.peers" handlers.
|
||||||
peersSvc := &PeersService{}
|
peersSvc := &PeersService{Server: s}
|
||||||
err = s1.RegisterTCPService(peersSvc, "server_peers")
|
err = s1.RegisterTCPService(peersSvc, "server_peers")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("RegisterTCPService: %v\n", err)
|
log.Errorf("RegisterTCPService: %v\n", err)
|
||||||
|
|
|
@ -229,7 +229,7 @@ func (sm *sessionManager) addSession(conn net.Conn) *session {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register "server.peers" handlers.
|
// Register "server.peers" handlers.
|
||||||
peersSvc := &PeersService{}
|
peersSvc := &PeersService{Server: sm.server}
|
||||||
err = s1.RegisterName("server.peers", peersSvc)
|
err = s1.RegisterName("server.peers", peersSvc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("RegisterName: %v\n", err)
|
log.Errorf("RegisterName: %v\n", err)
|
||||||
|
|
Loading…
Reference in a new issue