|
@@ -80,10 +80,26 @@ func (nDB *NetworkDB) sendTableEvent(event TableEvent_Type, nid string, tname st
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ var broadcastQ *memberlist.TransmitLimitedQueue
|
|
nDB.RLock()
|
|
nDB.RLock()
|
|
- broadcastQ := nDB.networks[nDB.config.NodeName][nid].tableBroadcasts
|
|
|
|
|
|
+ thisNodeNetworks, ok := nDB.networks[nDB.config.NodeName]
|
|
|
|
+ if ok {
|
|
|
|
+ // The network may have been removed
|
|
|
|
+ network, networkOk := thisNodeNetworks[nid]
|
|
|
|
+ if !networkOk {
|
|
|
|
+ nDB.RUnlock()
|
|
|
|
+ return nil
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ broadcastQ = network.tableBroadcasts
|
|
|
|
+ }
|
|
nDB.RUnlock()
|
|
nDB.RUnlock()
|
|
|
|
|
|
|
|
+ // The network may have been removed
|
|
|
|
+ if broadcastQ == nil {
|
|
|
|
+ return nil
|
|
|
|
+ }
|
|
|
|
+
|
|
broadcastQ.QueueBroadcast(&tableEventMessage{
|
|
broadcastQ.QueueBroadcast(&tableEventMessage{
|
|
msg: raw,
|
|
msg: raw,
|
|
id: nid,
|
|
id: nid,
|