fix: ensure community channels are dehydrated on publish
This commit is contained in:
parent
736779d94b
commit
1410b1e422
|
@ -1264,7 +1264,11 @@ func (o *Community) Description() *protobuf.CommunityDescription {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *Community) marshaledDescription() ([]byte, error) {
|
func (o *Community) marshaledDescription() ([]byte, error) {
|
||||||
return proto.Marshal(o.config.CommunityDescription)
|
// This is only workaround to lower the size of the message that goes over the wire,
|
||||||
|
// see https://github.com/status-im/status-desktop/issues/12188
|
||||||
|
clone := o.CreateDeepCopy()
|
||||||
|
clone.DehydrateChannelsMembers()
|
||||||
|
return proto.Marshal(clone.config.CommunityDescription)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *Community) MarshaledDescription() ([]byte, error) {
|
func (o *Community) MarshaledDescription() ([]byte, error) {
|
||||||
|
@ -1274,14 +1278,14 @@ func (o *Community) MarshaledDescription() ([]byte, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *Community) toProtocolMessageBytes() ([]byte, error) {
|
func (o *Community) toProtocolMessageBytes() ([]byte, error) {
|
||||||
|
// If we are not a control node, use the received serialized version
|
||||||
|
if !o.IsControlNode() {
|
||||||
// This should not happen, as we can only serialize on our side if we
|
// This should not happen, as we can only serialize on our side if we
|
||||||
// created the community
|
// created the community
|
||||||
if !o.IsControlNode() && len(o.config.CommunityDescriptionProtocolMessage) == 0 {
|
if len(o.config.CommunityDescriptionProtocolMessage) == 0 {
|
||||||
return nil, ErrNotControlNode
|
return nil, ErrNotControlNode
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we are not a control node, use the received serialized version
|
|
||||||
if !o.IsControlNode() {
|
|
||||||
return o.config.CommunityDescriptionProtocolMessage, nil
|
return o.config.CommunityDescriptionProtocolMessage, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1298,15 +1302,6 @@ func (o *Community) toProtocolMessageBytes() ([]byte, error) {
|
||||||
func (o *Community) ToProtocolMessageBytes() ([]byte, error) {
|
func (o *Community) ToProtocolMessageBytes() ([]byte, error) {
|
||||||
o.mutex.Lock()
|
o.mutex.Lock()
|
||||||
defer o.mutex.Unlock()
|
defer o.mutex.Unlock()
|
||||||
|
|
||||||
// This is only workaround to lower the size of the message that goes over the wire,
|
|
||||||
// see https://github.com/status-im/status-desktop/issues/12188
|
|
||||||
if o.IsControlNode() {
|
|
||||||
clone := o.CreateDeepCopy()
|
|
||||||
clone.DehydrateChannelsMembers()
|
|
||||||
return clone.toProtocolMessageBytes()
|
|
||||||
}
|
|
||||||
|
|
||||||
return o.toProtocolMessageBytes()
|
return o.toProtocolMessageBytes()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue