FindNode RPC returns node with requested node id from DHT.
(req *proto.FindNodeReq, resp *proto.FindNodeResp)
| 58 | |
| 59 | // FindNode RPC returns node with requested node id from DHT. |
| 60 | func (DHT *DHTService) FindNode(req *proto.FindNodeReq, resp *proto.FindNodeResp) (err error) { |
| 61 | if permissionCheckFunc != nil && !permissionCheckFunc(&req.Envelope, DHTFindNode) { |
| 62 | err = fmt.Errorf("calling from node %s is not permitted", req.GetNodeID()) |
| 63 | log.Error(err) |
| 64 | return |
| 65 | } |
| 66 | node, err := DHT.Consistent.GetNode(string(req.ID)) |
| 67 | if err != nil { |
| 68 | err = fmt.Errorf("get node %s from DHT failed: %s", req.NodeID, err) |
| 69 | log.Error(err) |
| 70 | return |
| 71 | } |
| 72 | resp.Node = node |
| 73 | return |
| 74 | } |
| 75 | |
| 76 | // FindNeighbor RPC returns FindNeighborReq.Count closest node from DHT. |
| 77 | func (DHT *DHTService) FindNeighbor(req *proto.FindNeighborReq, resp *proto.FindNeighborResp) (err error) { |