Neo OcLib
This commit is contained in:
@@ -138,6 +138,7 @@ func (o *PeerController) Valid() {
|
||||
o.ServeJSON()
|
||||
return
|
||||
} else if l.Data != nil && l.ToPeer().Verify && (l.ToPeer().Relation == peer.MASTER || l.ToPeer().Relation == peer.PENDING_MASTER) {
|
||||
masterPeerID := l.ToPeer().PeerID
|
||||
data := req.UpdateOne(map[string]interface{}{
|
||||
"verify": false,
|
||||
"relation": peer.MASTER,
|
||||
@@ -152,6 +153,12 @@ func (o *PeerController) Valid() {
|
||||
Payload: b,
|
||||
})
|
||||
}
|
||||
// This node is now a NANO of the confirmed master: stamp its libp2p PeerID on self.
|
||||
if self, serr := oclib.GetMySelf(); serr == nil && self != nil {
|
||||
oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.PEER), nil).UpdateOne(map[string]interface{}{
|
||||
"master_id": masterPeerID,
|
||||
}, self.GetID())
|
||||
}
|
||||
o.Data["json"] = data
|
||||
o.ServeJSON()
|
||||
return
|
||||
@@ -280,6 +287,7 @@ func (o *PeerController) changeRelation(id string, dest *peer.Peer, user string,
|
||||
if dest.Verify && relation == peer.PENDING_NANO {
|
||||
relation = peer.NANO
|
||||
}
|
||||
wasMaster := dest.Relation == peer.MASTER
|
||||
data := request.UpdateOne(map[string]interface{}{
|
||||
"relation": relation,
|
||||
}, dest.GetID())
|
||||
@@ -293,6 +301,14 @@ func (o *PeerController) changeRelation(id string, dest *peer.Peer, user string,
|
||||
Payload: b,
|
||||
})
|
||||
}
|
||||
// The peer was our master and is no longer — clear the MasterID on self.
|
||||
if wasMaster {
|
||||
if self, serr := oclib.GetMySelf(); serr == nil && self != nil {
|
||||
oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.PEER), nil).UpdateOne(map[string]interface{}{
|
||||
"master_id": "",
|
||||
}, self.GetID())
|
||||
}
|
||||
}
|
||||
if rRelation == peer.BLACKLIST {
|
||||
request.UpdateOne(map[string]interface{}{
|
||||
"relation": rRelation,
|
||||
|
||||
Reference in New Issue
Block a user