diff --git a/src/github.com/matrix-org/dendrite/clientapi/readers/directory.go b/src/github.com/matrix-org/dendrite/clientapi/readers/directory.go index 10e760943..336f29fed 100644 --- a/src/github.com/matrix-org/dendrite/clientapi/readers/directory.go +++ b/src/github.com/matrix-org/dendrite/clientapi/readers/directory.go @@ -35,7 +35,7 @@ func DirectoryRoom( federation *gomatrixserverlib.FederationClient, cfg *config.Dendrite, ) util.JSONResponse { - _, domain, err := gomatrixserverlib.ParseID('#', roomAlias) + _, domain, err := gomatrixserverlib.SplitID('#', roomAlias) if err != nil { return util.JSONResponse{ Code: 400, diff --git a/src/github.com/matrix-org/dendrite/clientapi/writers/createroom.go b/src/github.com/matrix-org/dendrite/clientapi/writers/createroom.go index 731519836..d078982f4 100644 --- a/src/github.com/matrix-org/dendrite/clientapi/writers/createroom.go +++ b/src/github.com/matrix-org/dendrite/clientapi/writers/createroom.go @@ -60,7 +60,7 @@ func (r createRoomRequest) Validate() *util.JSONResponse { // It should be a struct (with pointers into a single string to avoid copying) and // we should update all refs to use UserID types rather than strings. // https://github.com/matrix-org/synapse/blob/v0.19.2/synapse/types.py#L92 - if _, _, err := gomatrixserverlib.ParseID('@', userID); err != nil { + if _, _, err := gomatrixserverlib.SplitID('@', userID); err != nil { return &util.JSONResponse{ Code: 400, JSON: jsonerror.BadJSON("user id must be in the form @localpart:domain"), diff --git a/src/github.com/matrix-org/dendrite/clientapi/writers/joinroom.go b/src/github.com/matrix-org/dendrite/clientapi/writers/joinroom.go index 09051c8f1..55cc65acb 100644 --- a/src/github.com/matrix-org/dendrite/clientapi/writers/joinroom.go +++ b/src/github.com/matrix-org/dendrite/clientapi/writers/joinroom.go @@ -89,7 +89,7 @@ func (r joinRoomReq) joinRoomByID() util.JSONResponse { // joinRoomByAlias joins a room using a room alias. func (r joinRoomReq) joinRoomByAlias(roomAlias string) util.JSONResponse { - _, domain, err := gomatrixserverlib.ParseID('#', roomAlias) + _, domain, err := gomatrixserverlib.SplitID('#', roomAlias) if err != nil { return util.JSONResponse{ Code: 400, diff --git a/src/github.com/matrix-org/dendrite/federationsender/consumers/roomserver.go b/src/github.com/matrix-org/dendrite/federationsender/consumers/roomserver.go index 340875318..0a0af2b32 100644 --- a/src/github.com/matrix-org/dendrite/federationsender/consumers/roomserver.go +++ b/src/github.com/matrix-org/dendrite/federationsender/consumers/roomserver.go @@ -223,10 +223,10 @@ func joinedHostsFromEvents(evs []gomatrixserverlib.Event) ([]types.JoinedHost, e if err != nil { return nil, err } - if *membership != "join" { + if membership != "join" { continue } - _, serverName, err := gomatrixserverlib.ParseID('@', *ev.StateKey()) + _, serverName, err := gomatrixserverlib.SplitID('@', *ev.StateKey()) if err != nil { return nil, err } diff --git a/src/github.com/matrix-org/dendrite/mediaapi/writers/upload.go b/src/github.com/matrix-org/dendrite/mediaapi/writers/upload.go index 275e6e9b3..eaea8561e 100644 --- a/src/github.com/matrix-org/dendrite/mediaapi/writers/upload.go +++ b/src/github.com/matrix-org/dendrite/mediaapi/writers/upload.go @@ -193,7 +193,7 @@ func (r *uploadRequest) Validate(maxFileSizeBytes config.FileSizeBytes) *util.JS // It should be a struct (with pointers into a single string to avoid copying) and // we should update all refs to use UserID types rather than strings. // https://github.com/matrix-org/synapse/blob/v0.19.2/synapse/types.py#L92 - if _, _, err := gomatrixserverlib.ParseID('@', string(r.MediaMetadata.UserID)); err != nil { + if _, _, err := gomatrixserverlib.SplitID('@', string(r.MediaMetadata.UserID)); err != nil { return &util.JSONResponse{ Code: 400, JSON: jsonerror.BadJSON("user id must be in the form @localpart:domain"), diff --git a/src/github.com/matrix-org/dendrite/syncapi/storage/syncserver.go b/src/github.com/matrix-org/dendrite/syncapi/storage/syncserver.go index dfb94a9ea..a1efa1f27 100644 --- a/src/github.com/matrix-org/dendrite/syncapi/storage/syncserver.go +++ b/src/github.com/matrix-org/dendrite/syncapi/storage/syncserver.go @@ -125,15 +125,13 @@ func (d *SyncServerDatabase) updateRoomState( // ignore non state events continue } - var ( - membership *string - err error - ) + var membership *string if event.Type() == "m.room.member" { - membership, err = event.Membership() + value, err := event.Membership() if err != nil { return err } + membership = &value } if err := d.roomstate.upsertRoomState(txn, event, membership, int64(streamPos)); err != nil { return err @@ -477,7 +475,7 @@ func getMembershipFromEvent(ev *gomatrixserverlib.Event, userID string) string { if err != nil { return "" } - return *membership + return membership } return "" } diff --git a/src/github.com/matrix-org/dendrite/syncapi/sync/notifier.go b/src/github.com/matrix-org/dendrite/syncapi/sync/notifier.go index 31f0fe4e1..814660a79 100644 --- a/src/github.com/matrix-org/dendrite/syncapi/sync/notifier.go +++ b/src/github.com/matrix-org/dendrite/syncapi/sync/notifier.go @@ -73,7 +73,7 @@ func (n *Notifier) OnNewEvent(ev *gomatrixserverlib.Event, pos types.StreamPosit ) } else { // Keep the joined user map up-to-date - switch *membership { + switch membership { case "invite": userIDs = append(userIDs, userID) case "join": diff --git a/vendor/src/github.com/matrix-org/gomatrixserverlib/event.go b/vendor/src/github.com/matrix-org/gomatrixserverlib/event.go index 896a6cf0c..678bf42e7 100644 --- a/vendor/src/github.com/matrix-org/gomatrixserverlib/event.go +++ b/vendor/src/github.com/matrix-org/gomatrixserverlib/event.go @@ -482,15 +482,15 @@ func (e Event) PrevEventIDs() []string { // is an "m.room.member" event. // Returns an error if the event is not a m.room.member event or if the content // is not valid m.room.member content. -func (e Event) Membership() (*string, error) { +func (e Event) Membership() (string, error) { if e.fields.Type != MRoomMember { - return nil, fmt.Errorf("gomatrixserverlib: not an m.room.member event") + return "", fmt.Errorf("gomatrixserverlib: not an m.room.member event") } var content memberContent if err := json.Unmarshal(e.fields.Content, &content); err != nil { - return nil, err + return "", err } - return &content.Membership, nil + return content.Membership, nil } // AuthEvents returns references to the events needed to auth the event. @@ -570,8 +570,8 @@ func (er EventReference) MarshalJSON() ([]byte, error) { return json.Marshal(&tuple) } -// ParseID splits a matrix ID into a local part and a server name. -func ParseID(sigil byte, id string) (local string, domain ServerName, err error) { +// SplitID splits a matrix ID into a local part and a server name. +func SplitID(sigil byte, id string) (local string, domain ServerName, err error) { // IDs have the format: SIGIL LOCALPART ":" DOMAIN // Split on the first ":" character since the domain can contain ":" // characters.