Skip to content
This repository was archived by the owner on Nov 25, 2024. It is now read-only.

Commit f668629

Browse files
authored
Remove event building duplication & push to GMSL (#3056)
Removes event building duplication and moves the funcionality into GMSL since all the sub-steps are already there.
1 parent 914e614 commit f668629

File tree

7 files changed

+47
-134
lines changed

7 files changed

+47
-134
lines changed

clientapi/routing/createroom.go

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ func createRoom(
448448
builder.PrevEvents = []gomatrixserverlib.EventReference{builtEvents[i-1].EventReference()}
449449
}
450450
var ev *gomatrixserverlib.Event
451-
ev, err = buildEvent(&builder, userDomain, &authEvents, cfg, evTime, roomVersion)
451+
ev, err = builder.AddAuthEventsAndBuild(userDomain, &authEvents, evTime, roomVersion, cfg.Matrix.KeyID, cfg.Matrix.PrivateKey)
452452
if err != nil {
453453
util.GetLogger(ctx).WithError(err).Error("buildEvent failed")
454454
return jsonerror.InternalServerError()
@@ -599,31 +599,3 @@ func createRoom(
599599
JSON: response,
600600
}
601601
}
602-
603-
// buildEvent fills out auth_events for the builder then builds the event
604-
func buildEvent(
605-
builder *gomatrixserverlib.EventBuilder,
606-
serverName gomatrixserverlib.ServerName,
607-
provider gomatrixserverlib.AuthEventProvider,
608-
cfg *config.ClientAPI,
609-
evTime time.Time,
610-
roomVersion gomatrixserverlib.RoomVersion,
611-
) (*gomatrixserverlib.Event, error) {
612-
eventsNeeded, err := gomatrixserverlib.StateNeededForEventBuilder(builder)
613-
if err != nil {
614-
return nil, err
615-
}
616-
refs, err := eventsNeeded.AuthEventReferences(provider)
617-
if err != nil {
618-
return nil, err
619-
}
620-
builder.AuthEvents = refs
621-
event, err := builder.Build(
622-
evTime, serverName, cfg.Matrix.KeyID,
623-
cfg.Matrix.PrivateKey, roomVersion,
624-
)
625-
if err != nil {
626-
return nil, fmt.Errorf("cannot build event %s : Builder failed to build. %w", builder.Type, err)
627-
}
628-
return event, nil
629-
}

go.mod

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ require (
2222
github.com/matrix-org/dugong v0.0.0-20210921133753-66e6b1c67e2e
2323
github.com/matrix-org/go-sqlite3-js v0.0.0-20220419092513-28aa791a1c91
2424
github.com/matrix-org/gomatrix v0.0.0-20220926102614-ceba4d9f7530
25-
github.com/matrix-org/gomatrixserverlib v0.0.0-20230414110520-bcb28309fbcf
25+
github.com/matrix-org/gomatrixserverlib v0.0.0-20230414140439-3cf4cd94d75f
2626
github.com/matrix-org/pinecone v0.11.1-0.20230210171230-8c3b24f2649a
2727
github.com/matrix-org/util v0.0.0-20221111132719-399730281e66
2828
github.com/mattn/go-sqlite3 v1.14.16
@@ -42,10 +42,10 @@ require (
4242
github.com/uber/jaeger-lib v2.4.1+incompatible
4343
github.com/yggdrasil-network/yggdrasil-go v0.4.6
4444
go.uber.org/atomic v1.10.0
45-
golang.org/x/crypto v0.6.0
45+
golang.org/x/crypto v0.8.0
4646
golang.org/x/image v0.5.0
4747
golang.org/x/mobile v0.0.0-20221020085226-b36e6246172e
48-
golang.org/x/term v0.5.0
48+
golang.org/x/term v0.7.0
4949
gopkg.in/h2non/bimg.v1 v1.1.9
5050
gopkg.in/yaml.v2 v2.4.0
5151
gotest.tools/v3 v3.4.0
@@ -121,12 +121,12 @@ require (
121121
github.com/tidwall/pretty v1.2.1 // indirect
122122
go.etcd.io/bbolt v1.3.6 // indirect
123123
golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect
124-
golang.org/x/mod v0.6.0 // indirect
125-
golang.org/x/net v0.7.0 // indirect
126-
golang.org/x/sys v0.5.0 // indirect
127-
golang.org/x/text v0.7.0 // indirect
124+
golang.org/x/mod v0.8.0 // indirect
125+
golang.org/x/net v0.9.0 // indirect
126+
golang.org/x/sys v0.7.0 // indirect
127+
golang.org/x/text v0.9.0 // indirect
128128
golang.org/x/time v0.3.0 // indirect
129-
golang.org/x/tools v0.2.0 // indirect
129+
golang.org/x/tools v0.6.0 // indirect
130130
google.golang.org/protobuf v1.28.1 // indirect
131131
gopkg.in/macaroon.v2 v2.1.0 // indirect
132132
gopkg.in/yaml.v3 v3.0.1 // indirect

go.sum

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -321,16 +321,8 @@ github.com/matrix-org/go-sqlite3-js v0.0.0-20220419092513-28aa791a1c91 h1:s7fexw
321321
github.com/matrix-org/go-sqlite3-js v0.0.0-20220419092513-28aa791a1c91/go.mod h1:e+cg2q7C7yE5QnAXgzo512tgFh1RbQLC0+jozuegKgo=
322322
github.com/matrix-org/gomatrix v0.0.0-20220926102614-ceba4d9f7530 h1:kHKxCOLcHH8r4Fzarl4+Y3K5hjothkVW5z7T1dUM11U=
323323
github.com/matrix-org/gomatrix v0.0.0-20220926102614-ceba4d9f7530/go.mod h1:/gBX06Kw0exX1HrwmoBibFA98yBk/jxKpGVeyQbff+s=
324-
github.com/matrix-org/gomatrixserverlib v0.0.0-20230320105331-4dd7ff2f0e3a h1:F6K1i61KcJ8cX/y0Q8/44Dh1w+fpESQd92gq885FDrI=
325-
github.com/matrix-org/gomatrixserverlib v0.0.0-20230320105331-4dd7ff2f0e3a/go.mod h1:7HTbSZe+CIdmeqVyFMekwD5dFU8khWQyngKATvd12FU=
326-
github.com/matrix-org/gomatrixserverlib v0.0.0-20230405171344-5f597d85ba4f h1:D7IgZA2DxBroqCTxo2uXEmjj8eCI1OzqqKRE4SAgmBU=
327-
github.com/matrix-org/gomatrixserverlib v0.0.0-20230405171344-5f597d85ba4f/go.mod h1:7HTbSZe+CIdmeqVyFMekwD5dFU8khWQyngKATvd12FU=
328-
github.com/matrix-org/gomatrixserverlib v0.0.0-20230406115722-88763372cbd9 h1:bnIeD+u46GkPzfBcH9Su4sUBRZ9jqHcKER8hmaNnGD8=
329-
github.com/matrix-org/gomatrixserverlib v0.0.0-20230406115722-88763372cbd9/go.mod h1:7HTbSZe+CIdmeqVyFMekwD5dFU8khWQyngKATvd12FU=
330-
github.com/matrix-org/gomatrixserverlib v0.0.0-20230406130834-e85c3bfeed05 h1:s4JL2PPTgB6pR1ouDwq6KpqmV5hUTAP+HB1ajlemHWA=
331-
github.com/matrix-org/gomatrixserverlib v0.0.0-20230406130834-e85c3bfeed05/go.mod h1:7HTbSZe+CIdmeqVyFMekwD5dFU8khWQyngKATvd12FU=
332-
github.com/matrix-org/gomatrixserverlib v0.0.0-20230414110520-bcb28309fbcf h1:bfjLsvf1M7IFJuwmFJAsgUi4XaaHs07e6tub0tb3Fpw=
333-
github.com/matrix-org/gomatrixserverlib v0.0.0-20230414110520-bcb28309fbcf/go.mod h1:7HTbSZe+CIdmeqVyFMekwD5dFU8khWQyngKATvd12FU=
324+
github.com/matrix-org/gomatrixserverlib v0.0.0-20230414140439-3cf4cd94d75f h1:sULN+zkwjt9bBy3dy5W98B6J/Pd4xOiF6yjWOBRRKmw=
325+
github.com/matrix-org/gomatrixserverlib v0.0.0-20230414140439-3cf4cd94d75f/go.mod h1:7HTbSZe+CIdmeqVyFMekwD5dFU8khWQyngKATvd12FU=
334326
github.com/matrix-org/pinecone v0.11.1-0.20230210171230-8c3b24f2649a h1:awrPDf9LEFySxTLKYBMCiObelNx/cBuv/wzllvCCH3A=
335327
github.com/matrix-org/pinecone v0.11.1-0.20230210171230-8c3b24f2649a/go.mod h1:HchJX9oKMXaT2xYFs0Ha/6Zs06mxLU8k6F1ODnrGkeQ=
336328
github.com/matrix-org/util v0.0.0-20221111132719-399730281e66 h1:6z4KxomXSIGWqhHcfzExgkH3Z3UkIXry4ibJS4Aqz2Y=
@@ -510,8 +502,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
510502
golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
511503
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
512504
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
513-
golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc=
514-
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
505+
golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ=
506+
golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
515507
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
516508
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
517509
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -554,8 +546,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
554546
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
555547
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
556548
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
557-
golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I=
558-
golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
549+
golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
550+
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
559551
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
560552
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
561553
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -591,8 +583,8 @@ golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qx
591583
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
592584
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
593585
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
594-
golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
595-
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
586+
golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
587+
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
596588
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
597589
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
598590
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -612,6 +604,7 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
612604
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
613605
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
614606
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
607+
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
615608
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
616609
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
617610
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -664,21 +657,22 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc
664657
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
665658
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
666659
golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
667-
golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
668-
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
660+
golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
661+
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
669662
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
670663
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
671-
golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY=
672-
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
664+
golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ=
665+
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
673666
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
674667
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
675668
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
676669
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
677670
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
678671
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
679672
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
680-
golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
681673
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
674+
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
675+
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
682676
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
683677
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
684678
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -732,8 +726,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f
732726
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
733727
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
734728
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
735-
golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE=
736-
golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
729+
golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
730+
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
737731
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
738732
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
739733
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

roomserver/internal/api.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ func (r *RoomserverInternalAPI) SetFederationAPI(fsAPI fsAPI.RoomserverFederatio
160160
Cfg: &r.Cfg.RoomServer,
161161
DB: r.DB,
162162
FSAPI: r.fsAPI,
163+
RSAPI: r,
163164
Inputer: r.Inputer,
164165
}
165166
r.Publisher = &perform.Publisher{

roomserver/internal/perform/perform_join.go

Lines changed: 7 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import (
3535
"github.com/matrix-org/dendrite/roomserver/internal/input"
3636
"github.com/matrix-org/dendrite/roomserver/internal/query"
3737
"github.com/matrix-org/dendrite/roomserver/storage"
38-
"github.com/matrix-org/dendrite/roomserver/types"
3938
"github.com/matrix-org/dendrite/setup/config"
4039
)
4140

@@ -305,7 +304,13 @@ func (r *Joiner) performJoinRoomByID(
305304
// locally on the homeserver.
306305
// TODO: Check what happens if the room exists on the server
307306
// but everyone has since left. I suspect it does the wrong thing.
308-
event, buildRes, err := buildEvent(ctx, r.DB, r.Cfg.Matrix, userDomain, &eb)
307+
308+
var buildRes rsAPI.QueryLatestEventsAndStateResponse
309+
identity, err := r.Cfg.Matrix.SigningIdentityFor(userDomain)
310+
if err != nil {
311+
return "", "", fmt.Errorf("error joining local room: %q", err)
312+
}
313+
event, err := eventutil.QueryAndBuildEvent(ctx, &eb, r.Cfg.Matrix, identity, time.Now(), r.RSAPI, &buildRes)
309314

310315
switch err {
311316
case nil:
@@ -430,46 +435,3 @@ func (r *Joiner) populateAuthorisedViaUserForRestrictedJoin(
430435
}
431436
return res.AuthorisedVia, nil
432437
}
433-
434-
func buildEvent(
435-
ctx context.Context, db storage.Database, cfg *config.Global,
436-
senderDomain gomatrixserverlib.ServerName,
437-
builder *gomatrixserverlib.EventBuilder,
438-
) (*gomatrixserverlib.HeaderedEvent, *rsAPI.QueryLatestEventsAndStateResponse, error) {
439-
eventsNeeded, err := gomatrixserverlib.StateNeededForEventBuilder(builder)
440-
if err != nil {
441-
return nil, nil, fmt.Errorf("gomatrixserverlib.StateNeededForEventBuilder: %w", err)
442-
}
443-
444-
if len(eventsNeeded.Tuples()) == 0 {
445-
return nil, nil, errors.New("expecting state tuples for event builder, got none")
446-
}
447-
448-
var queryRes rsAPI.QueryLatestEventsAndStateResponse
449-
err = helpers.QueryLatestEventsAndState(ctx, db, &rsAPI.QueryLatestEventsAndStateRequest{
450-
RoomID: builder.RoomID,
451-
StateToFetch: eventsNeeded.Tuples(),
452-
}, &queryRes)
453-
if err != nil {
454-
switch err.(type) {
455-
case types.MissingStateError:
456-
// We know something about the room but the state seems to be
457-
// insufficient to actually build a new event, so in effect we
458-
// had might as well treat the room as if it doesn't exist.
459-
return nil, nil, eventutil.ErrRoomNoExists
460-
default:
461-
return nil, nil, fmt.Errorf("QueryLatestEventsAndState: %w", err)
462-
}
463-
}
464-
465-
identity, err := cfg.SigningIdentityFor(senderDomain)
466-
if err != nil {
467-
return nil, nil, err
468-
}
469-
470-
ev, err := eventutil.BuildEvent(ctx, builder, cfg, identity, time.Now(), &eventsNeeded, &queryRes)
471-
if err != nil {
472-
return nil, nil, err
473-
}
474-
return ev, &queryRes, nil
475-
}

roomserver/internal/perform/perform_leave.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,18 @@ import (
1919
"encoding/json"
2020
"fmt"
2121
"strings"
22+
"time"
2223

2324
"github.com/matrix-org/dendrite/clientapi/jsonerror"
25+
"github.com/matrix-org/dendrite/internal/eventutil"
2426
"github.com/matrix-org/gomatrix"
2527
"github.com/matrix-org/gomatrixserverlib"
2628
"github.com/matrix-org/util"
2729
"github.com/sirupsen/logrus"
2830

2931
fsAPI "github.com/matrix-org/dendrite/federationapi/api"
3032
"github.com/matrix-org/dendrite/roomserver/api"
33+
rsAPI "github.com/matrix-org/dendrite/roomserver/api"
3134
"github.com/matrix-org/dendrite/roomserver/internal/helpers"
3235
"github.com/matrix-org/dendrite/roomserver/internal/input"
3336
"github.com/matrix-org/dendrite/roomserver/storage"
@@ -39,6 +42,7 @@ type Leaver struct {
3942
Cfg *config.RoomServer
4043
DB storage.Database
4144
FSAPI fsAPI.RoomserverFederationAPI
45+
RSAPI rsAPI.RoomserverInternalAPI
4246
UserAPI userapi.RoomserverUserAPI
4347
Inputer *input.Inputer
4448
}
@@ -173,9 +177,15 @@ func (r *Leaver) performLeaveRoomByID(
173177
// a leave event.
174178
// TODO: Check what happens if the room exists on the server
175179
// but everyone has since left. I suspect it does the wrong thing.
176-
event, buildRes, err := buildEvent(ctx, r.DB, r.Cfg.Matrix, senderDomain, &eb)
180+
181+
var buildRes rsAPI.QueryLatestEventsAndStateResponse
182+
identity, err := r.Cfg.Matrix.SigningIdentityFor(senderDomain)
183+
if err != nil {
184+
return nil, fmt.Errorf("SigningIdentityFor: %w", err)
185+
}
186+
event, err := eventutil.QueryAndBuildEvent(ctx, &eb, r.Cfg.Matrix, identity, time.Now(), r.RSAPI, &buildRes)
177187
if err != nil {
178-
return nil, fmt.Errorf("eventutil.BuildEvent: %w", err)
188+
return nil, fmt.Errorf("eventutil.QueryAndBuildEvent: %w", err)
179189
}
180190

181191
// Give our leave event to the roomserver input stream. The

roomserver/internal/perform/perform_upgrade.go

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,7 @@ func (r *Upgrader) sendInitialEvents(ctx context.Context, evTime time.Time, user
526526
builder.PrevEvents = []gomatrixserverlib.EventReference{builtEvents[i-1].EventReference()}
527527
}
528528
var event *gomatrixserverlib.Event
529-
event, err = r.buildEvent(&builder, userDomain, &authEvents, evTime, gomatrixserverlib.RoomVersion(newVersion))
529+
event, err = builder.AddAuthEventsAndBuild(userDomain, &authEvents, evTime, gomatrixserverlib.RoomVersion(newVersion), r.Cfg.Matrix.KeyID, r.Cfg.Matrix.PrivateKey)
530530
if err != nil {
531531
return &api.PerformError{
532532
Msg: fmt.Sprintf("Failed to build new %q event: %s", builder.Type, err),
@@ -707,29 +707,3 @@ func (r *Upgrader) sendHeaderedEvent(
707707

708708
return nil
709709
}
710-
711-
func (r *Upgrader) buildEvent(
712-
builder *gomatrixserverlib.EventBuilder,
713-
serverName gomatrixserverlib.ServerName,
714-
provider gomatrixserverlib.AuthEventProvider,
715-
evTime time.Time,
716-
roomVersion gomatrixserverlib.RoomVersion,
717-
) (*gomatrixserverlib.Event, error) {
718-
eventsNeeded, err := gomatrixserverlib.StateNeededForEventBuilder(builder)
719-
if err != nil {
720-
return nil, err
721-
}
722-
refs, err := eventsNeeded.AuthEventReferences(provider)
723-
if err != nil {
724-
return nil, err
725-
}
726-
builder.AuthEvents = refs
727-
event, err := builder.Build(
728-
evTime, serverName, r.Cfg.Matrix.KeyID,
729-
r.Cfg.Matrix.PrivateKey, roomVersion,
730-
)
731-
if err != nil {
732-
return nil, err
733-
}
734-
return event, nil
735-
}

0 commit comments

Comments
 (0)