mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-06 22:43:10 -06:00
Be slightly clearer about which things are state keys and which things are tuples of event type and state key.
This commit is contained in:
parent
dba1e59f5a
commit
7ef832a6f3
|
|
@ -158,20 +158,20 @@ func loadAuthEvents(
|
||||||
needed gomatrixserverlib.StateNeeded,
|
needed gomatrixserverlib.StateNeeded,
|
||||||
state []types.StateEntry,
|
state []types.StateEntry,
|
||||||
) (result authEvents, err error) {
|
) (result authEvents, err error) {
|
||||||
// Lookup the numeric IDs for the state keys
|
// Lookup the numeric IDs for the state keys needed for auth.
|
||||||
var eventStateKeys []string
|
var neededStateKeys []string
|
||||||
eventStateKeys = append(eventStateKeys, needed.Member...)
|
neededStateKeys = append(neededStateKeys, needed.Member...)
|
||||||
eventStateKeys = append(eventStateKeys, needed.ThirdPartyInvite...)
|
neededStateKeys = append(neededStateKeys, needed.ThirdPartyInvite...)
|
||||||
if result.stateKeyNIDMap, err = db.EventStateKeyNIDs(eventStateKeys); err != nil {
|
if result.stateKeyNIDMap, err = db.EventStateKeyNIDs(neededStateKeys); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load the events we need.
|
// Load the events we need.
|
||||||
result.state = state
|
result.state = state
|
||||||
var eventNIDs []int64
|
var eventNIDs []int64
|
||||||
keysNeeded := stateKeysNeeded(result.stateKeyNIDMap, needed)
|
keyTuplesNeeded := stateKeyTuplesNeeded(result.stateKeyNIDMap, needed)
|
||||||
for _, keyNeeded := range keysNeeded {
|
for _, keyTuple := range keyTuplesNeeded {
|
||||||
eventNID, ok := result.state.lookup(keyNeeded)
|
eventNID, ok := result.state.lookup(keyTuple)
|
||||||
if ok {
|
if ok {
|
||||||
eventNIDs = append(eventNIDs, eventNID)
|
eventNIDs = append(eventNIDs, eventNID)
|
||||||
}
|
}
|
||||||
|
|
@ -182,31 +182,31 @@ func loadAuthEvents(
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// stateKeysNeeded works out which numeric state keys we need to authenticate some events.
|
// stateKeyTuplesNeeded works out which numeric state key tuples we need to authenticate some events.
|
||||||
func stateKeysNeeded(stateKeyNIDMap map[string]int64, stateNeeded gomatrixserverlib.StateNeeded) []types.StateKeyTuple {
|
func stateKeyTuplesNeeded(stateKeyNIDMap map[string]int64, stateNeeded gomatrixserverlib.StateNeeded) []types.StateKeyTuple {
|
||||||
var keys []types.StateKeyTuple
|
var keyTuples []types.StateKeyTuple
|
||||||
if stateNeeded.Create {
|
if stateNeeded.Create {
|
||||||
keys = append(keys, types.StateKeyTuple{types.MRoomCreateNID, types.EmptyStateKeyNID})
|
keyTuples = append(keyTuples, types.StateKeyTuple{types.MRoomCreateNID, types.EmptyStateKeyNID})
|
||||||
}
|
}
|
||||||
if stateNeeded.PowerLevels {
|
if stateNeeded.PowerLevels {
|
||||||
keys = append(keys, types.StateKeyTuple{types.MRoomPowerLevelsNID, types.EmptyStateKeyNID})
|
keyTuples = append(keyTuples, types.StateKeyTuple{types.MRoomPowerLevelsNID, types.EmptyStateKeyNID})
|
||||||
}
|
}
|
||||||
if stateNeeded.JoinRules {
|
if stateNeeded.JoinRules {
|
||||||
keys = append(keys, types.StateKeyTuple{types.MRoomJoinRulesNID, types.EmptyStateKeyNID})
|
keyTuples = append(keyTuples, types.StateKeyTuple{types.MRoomJoinRulesNID, types.EmptyStateKeyNID})
|
||||||
}
|
}
|
||||||
for _, member := range stateNeeded.Member {
|
for _, member := range stateNeeded.Member {
|
||||||
stateKeyNID, ok := stateKeyNIDMap[member]
|
stateKeyNID, ok := stateKeyNIDMap[member]
|
||||||
if ok {
|
if ok {
|
||||||
keys = append(keys, types.StateKeyTuple{types.MRoomMemberNID, stateKeyNID})
|
keyTuples = append(keyTuples, types.StateKeyTuple{types.MRoomMemberNID, stateKeyNID})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, token := range stateNeeded.ThirdPartyInvite {
|
for _, token := range stateNeeded.ThirdPartyInvite {
|
||||||
stateKeyNID, ok := stateKeyNIDMap[token]
|
stateKeyNID, ok := stateKeyNIDMap[token]
|
||||||
if ok {
|
if ok {
|
||||||
keys = append(keys, types.StateKeyTuple{types.MRoomThirdPartyInviteNID, stateKeyNID})
|
keyTuples = append(keyTuples, types.StateKeyTuple{types.MRoomThirdPartyInviteNID, stateKeyNID})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return keys
|
return keyTuples
|
||||||
}
|
}
|
||||||
|
|
||||||
// Map from event type, state key tuple to numeric event ID.
|
// Map from event type, state key tuple to numeric event ID.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue