Don't generate event IDs unless needed

This commit is contained in:
Neil Alexander 2020-03-23 10:51:15 +00:00
parent 8b37191d99
commit 55a54100db
8 changed files with 45 additions and 12 deletions

View file

@ -379,7 +379,14 @@ func buildEvent(
return nil, err
}
builder.AuthEvents = refs
eventID := fmt.Sprintf("$%s:%s", util.RandomString(16), cfg.Matrix.ServerName)
eventID := ""
eventIDFormat, err := roomVersion.EventIDFormat()
if err != nil {
return nil, err
}
if eventIDFormat == gomatrixserverlib.EventIDFormatV1 {
eventID = fmt.Sprintf("$%s:%s", util.RandomString(16), cfg.Matrix.ServerName)
}
event, err := builder.Build(
eventID, evTime, cfg.Matrix.ServerName, cfg.Matrix.KeyID,
cfg.Matrix.PrivateKey, roomVersion,

View file

@ -335,7 +335,14 @@ func (r joinRoomReq) joinRoomUsingServer(roomID string, server gomatrixserverlib
}, nil
}
eventID := fmt.Sprintf("$%s:%s", util.RandomString(16), r.cfg.Matrix.ServerName)
eventID := ""
eventIDFormat, err := respMakeJoin.RoomVersion.EventIDFormat()
if err != nil {
return nil, err
}
if eventIDFormat == gomatrixserverlib.EventIDFormatV1 {
eventID = fmt.Sprintf("$%s:%s", util.RandomString(16), r.cfg.Matrix.ServerName)
}
event, err := respMakeJoin.JoinEvent.Build(
eventID, r.evTime, r.cfg.Matrix.ServerName, r.cfg.Matrix.KeyID,
r.cfg.Matrix.PrivateKey, respMakeJoin.RoomVersion,

View file

@ -51,13 +51,12 @@ func BuildEvent(
return nil, err
}
var eventID string
var format gomatrixserverlib.EventIDFormat
format, err = queryRes.RoomVersion.EventIDFormat()
eventID := ""
eventIDFormat, err := queryRes.RoomVersion.EventIDFormat()
if err != nil {
return nil, err
}
if format == gomatrixserverlib.EventIDFormatV1 {
if eventIDFormat == gomatrixserverlib.EventIDFormatV1 {
eventID = fmt.Sprintf("$%s:%s", util.RandomString(16), cfg.Matrix.ServerName)
}

View file

@ -280,7 +280,14 @@ func buildMembershipEvent(
}
builder.AuthEvents = refs
eventID := fmt.Sprintf("$%s:%s", util.RandomString(16), cfg.Matrix.ServerName)
eventID := ""
eventIDFormat, err := queryRes.RoomVersion.EventIDFormat()
if err != nil {
return nil, err
}
if eventIDFormat == gomatrixserverlib.EventIDFormatV1 {
eventID = fmt.Sprintf("$%s:%s", util.RandomString(16), cfg.Matrix.ServerName)
}
event, err := builder.Build(
eventID, time.Now(), cfg.Matrix.ServerName, cfg.Matrix.KeyID,
cfg.Matrix.PrivateKey, queryRes.RoomVersion,

2
go.mod
View file

@ -9,7 +9,7 @@ require (
github.com/matrix-org/go-http-js-libp2p v0.0.0-20200318135427-31631a9ef51f
github.com/matrix-org/go-sqlite3-js v0.0.0-20200304164012-aa524245b658
github.com/matrix-org/gomatrix v0.0.0-20190528120928-7df988a63f26
github.com/matrix-org/gomatrixserverlib v0.0.0-20200320164238-a144ea149d55
github.com/matrix-org/gomatrixserverlib v0.0.0-20200323100819-422881c3d06b
github.com/matrix-org/naffka v0.0.0-20200127221512-0716baaabaf1
github.com/matrix-org/util v0.0.0-20190711121626-527ce5ddefc7
github.com/mattn/go-sqlite3 v2.0.2+incompatible

6
go.sum
View file

@ -130,6 +130,12 @@ github.com/matrix-org/gomatrixserverlib v0.0.0-20200124100636-0c2ec91d1df5 h1:km
github.com/matrix-org/gomatrixserverlib v0.0.0-20200124100636-0c2ec91d1df5/go.mod h1:FsKa2pWE/bpQql9H7U4boOPXFoJX/QcqaZZ6ijLkaZI=
github.com/matrix-org/gomatrixserverlib v0.0.0-20200320164238-a144ea149d55 h1:1m/D/bEL+NqtW2PWko7Q7i9lekcegN+K3STLK4D/CFM=
github.com/matrix-org/gomatrixserverlib v0.0.0-20200320164238-a144ea149d55/go.mod h1:FsKa2pWE/bpQql9H7U4boOPXFoJX/QcqaZZ6ijLkaZI=
github.com/matrix-org/gomatrixserverlib v0.0.0-20200323094202-39ec5e17a8f5 h1:hmC78piVeAvvdjuQ+zjnkyEmlAjR2gGwMWQh79srtAM=
github.com/matrix-org/gomatrixserverlib v0.0.0-20200323094202-39ec5e17a8f5/go.mod h1:FsKa2pWE/bpQql9H7U4boOPXFoJX/QcqaZZ6ijLkaZI=
github.com/matrix-org/gomatrixserverlib v0.0.0-20200323095935-e6d3df15dbfe h1:Zt5rFJriUGlCm+x8RRc3LdSqy0e6EaEWzW+PJXv76zw=
github.com/matrix-org/gomatrixserverlib v0.0.0-20200323095935-e6d3df15dbfe/go.mod h1:FsKa2pWE/bpQql9H7U4boOPXFoJX/QcqaZZ6ijLkaZI=
github.com/matrix-org/gomatrixserverlib v0.0.0-20200323100819-422881c3d06b h1:QrO9XkmoR+kbPwRmjcNl2crTt6XGXKcpsCyV/nZJDd0=
github.com/matrix-org/gomatrixserverlib v0.0.0-20200323100819-422881c3d06b/go.mod h1:FsKa2pWE/bpQql9H7U4boOPXFoJX/QcqaZZ6ijLkaZI=
github.com/matrix-org/naffka v0.0.0-20200127221512-0716baaabaf1 h1:osLoFdOy+ChQqVUn2PeTDETFftVkl4w9t/OW18g3lnk=
github.com/matrix-org/naffka v0.0.0-20200127221512-0716baaabaf1/go.mod h1:cXoYQIENbdWIQHt1SyCo6Bl3C3raHwJ0wgVrXHSqf+A=
github.com/matrix-org/util v0.0.0-20171127121716-2e2df66af2f5 h1:W7l5CP4V7wPyPb4tYE11dbmeAOwtFQBTW0rf4OonOS8=

View file

@ -250,7 +250,14 @@ func (r *RoomserverAliasAPI) sendUpdatedAliasesEvent(
}
// Build the event
eventID := fmt.Sprintf("$%s:%s", util.RandomString(16), r.Cfg.Matrix.ServerName)
eventID := ""
eventIDFormat, err := roomVersion.EventIDFormat()
if err != nil {
return err
}
if eventIDFormat == gomatrixserverlib.EventIDFormatV1 {
eventID = fmt.Sprintf("$%s:%s", util.RandomString(16), r.Cfg.Matrix.ServerName)
}
now := time.Now()
event, err := builder.Build(
eventID, now, r.Cfg.Matrix.ServerName, r.Cfg.Matrix.KeyID,

View file

@ -43,11 +43,11 @@ var roomVersions = map[gomatrixserverlib.RoomVersion]RoomVersionDescription{
Stable: true,
},
gomatrixserverlib.RoomVersionV3: RoomVersionDescription{
Supported: false,
Supported: true,
Stable: false,
},
gomatrixserverlib.RoomVersionV4: RoomVersionDescription{
Supported: false,
Supported: true,
Stable: false,
},
gomatrixserverlib.RoomVersionV5: RoomVersionDescription{
@ -59,7 +59,7 @@ var roomVersions = map[gomatrixserverlib.RoomVersion]RoomVersionDescription{
// DefaultRoomVersion contains the room version that will, by
// default, be used to create new rooms on this server.
func DefaultRoomVersion() gomatrixserverlib.RoomVersion {
return gomatrixserverlib.RoomVersionV2
return gomatrixserverlib.RoomVersionV4
}
// RoomVersions returns a map of all known room versions to this