@@ -303,6 +303,7 @@ func (d *gossipDiscoveryImpl) handleMsgFromComm(m *proto.SignedGossipMessage) {
303
303
d .logger .Warning ("Failed deserializing GossipMessage from envelope:" , err )
304
304
return
305
305
}
306
+
306
307
d .handleAliveMessage (selfInfoGossipMsg )
307
308
308
309
var internalEndpoint string
@@ -333,6 +334,7 @@ func (d *gossipDiscoveryImpl) handleMsgFromComm(m *proto.SignedGossipMessage) {
333
334
d .logger .Warning ("Expected alive message, got" , am , "instead" )
334
335
return
335
336
}
337
+
336
338
d .handleAliveMessage (am )
337
339
}
338
340
@@ -399,6 +401,7 @@ func (d *gossipDiscoveryImpl) createMembershipResponse(targetMember *NetworkMemb
399
401
defer d .lock .RUnlock ()
400
402
401
403
deadPeers := []* proto.Envelope {}
404
+
402
405
for _ , dm := range d .deadMembership .ToSlice () {
403
406
404
407
if ! shouldBeDisclosed (dm ) {
@@ -502,6 +505,9 @@ func (d *gossipDiscoveryImpl) resurrectMember(am *proto.SignedGossipMessage, t p
502
505
}
503
506
504
507
var internalEndpoint string
508
+ if prevNetMem := d .id2Member [string (pkiID )]; prevNetMem != nil {
509
+ internalEndpoint = prevNetMem .InternalEndpoint
510
+ }
505
511
if am .Envelope .SecretEnvelope != nil {
506
512
internalEndpoint = am .Envelope .SecretEnvelope .InternalEndpoint ()
507
513
}
@@ -715,7 +721,9 @@ func (d *gossipDiscoveryImpl) learnExistingMembers(aliveArr []*proto.SignedGossi
715
721
d .logger .Debug ("updating" , am )
716
722
717
723
var internalEndpoint string
718
-
724
+ if prevNetMem := d .id2Member [string (am .Membership .PkiId )]; prevNetMem != nil {
725
+ internalEndpoint = prevNetMem .InternalEndpoint
726
+ }
719
727
if m .Envelope .SecretEnvelope != nil {
720
728
internalEndpoint = m .Envelope .SecretEnvelope .InternalEndpoint ()
721
729
}
@@ -804,6 +812,10 @@ func (d *gossipDiscoveryImpl) learnNewMembers(aliveMembers []*proto.SignedGossip
804
812
internalEndpoint = m .Envelope .SecretEnvelope .InternalEndpoint ()
805
813
}
806
814
815
+ if prevNetMem := d .id2Member [string (member .Membership .PkiId )]; prevNetMem != nil {
816
+ internalEndpoint = prevNetMem .InternalEndpoint
817
+ }
818
+
807
819
d .id2Member [string (member .Membership .PkiId )] = & NetworkMember {
808
820
Endpoint : member .Membership .Endpoint ,
809
821
Metadata : member .Membership .Metadata ,
@@ -823,18 +835,12 @@ func (d *gossipDiscoveryImpl) GetMembership() []NetworkMember {
823
835
824
836
response := []NetworkMember {}
825
837
for _ , m := range d .aliveMembership .ToSlice () {
826
- var internalEndpoint string
827
-
828
- if m .Envelope .SecretEnvelope != nil {
829
- internalEndpoint = m .Envelope .SecretEnvelope .InternalEndpoint ()
830
- }
831
-
832
838
member := m .GetAliveMsg ()
833
839
response = append (response , NetworkMember {
834
840
PKIid : member .Membership .PkiId ,
835
841
Endpoint : member .Membership .Endpoint ,
836
842
Metadata : member .Membership .Metadata ,
837
- InternalEndpoint : internalEndpoint ,
843
+ InternalEndpoint : d . id2Member [ string ( m . GetAliveMsg (). Membership . PkiId )]. InternalEndpoint ,
838
844
})
839
845
}
840
846
return response
0 commit comments