mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-21 22:03:10 -06:00
Fix bugs
This commit is contained in:
parent
8a62fb06eb
commit
c57dd004b8
|
|
@ -56,13 +56,16 @@ type serverACL struct {
|
||||||
func (s *ServerACLs) OnServerACLUpdate(state *gomatrixserverlib.Event) {
|
func (s *ServerACLs) OnServerACLUpdate(state *gomatrixserverlib.Event) {
|
||||||
acls := &serverACL{}
|
acls := &serverACL{}
|
||||||
if err := json.Unmarshal(state.Content(), &acls.ServerACL); err != nil {
|
if err := json.Unmarshal(state.Content(), &acls.ServerACL); err != nil {
|
||||||
|
logrus.WithError(err).Errorf("Failed to unmarshal state content for server ACLs")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for _, orig := range acls.Allowed {
|
for _, orig := range acls.Allowed {
|
||||||
escaped := regexp.QuoteMeta(orig)
|
escaped := regexp.QuoteMeta(orig)
|
||||||
escaped = strings.Replace(escaped, "\\?", "(.)", -1)
|
escaped = strings.Replace(escaped, "\\?", "(.)", -1)
|
||||||
escaped = strings.Replace(escaped, "\\*", "(.*)", -1)
|
escaped = strings.Replace(escaped, "\\*", "(.*)", -1)
|
||||||
if expr, err := regexp.Compile(escaped); err == nil {
|
if expr, err := regexp.Compile(escaped); err != nil {
|
||||||
|
logrus.WithError(err).Errorf("Failed to compile allowed regex")
|
||||||
|
} else {
|
||||||
acls.allowedRegexes = append(acls.allowedRegexes, expr)
|
acls.allowedRegexes = append(acls.allowedRegexes, expr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -70,7 +73,9 @@ func (s *ServerACLs) OnServerACLUpdate(state *gomatrixserverlib.Event) {
|
||||||
escaped := regexp.QuoteMeta(orig)
|
escaped := regexp.QuoteMeta(orig)
|
||||||
escaped = strings.Replace(escaped, "\\?", "(.)", -1)
|
escaped = strings.Replace(escaped, "\\?", "(.)", -1)
|
||||||
escaped = strings.Replace(escaped, "\\*", "(.*)", -1)
|
escaped = strings.Replace(escaped, "\\*", "(.*)", -1)
|
||||||
if expr, err := regexp.Compile(escaped); err == nil {
|
if expr, err := regexp.Compile(escaped); err != nil {
|
||||||
|
logrus.WithError(err).Errorf("Failed to compile denied regex")
|
||||||
|
} else {
|
||||||
acls.deniedRegexes = append(acls.deniedRegexes, expr)
|
acls.deniedRegexes = append(acls.deniedRegexes, expr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -78,7 +83,7 @@ func (s *ServerACLs) OnServerACLUpdate(state *gomatrixserverlib.Event) {
|
||||||
"allow_ip_literals": acls.AllowIPLiterals,
|
"allow_ip_literals": acls.AllowIPLiterals,
|
||||||
"num_allowed": len(acls.allowedRegexes),
|
"num_allowed": len(acls.allowedRegexes),
|
||||||
"num_denied": len(acls.deniedRegexes),
|
"num_denied": len(acls.deniedRegexes),
|
||||||
}).Infof("Updating server ACLs for %q", state.RoomID())
|
}).Debugf("Updating server ACLs for %q", state.RoomID())
|
||||||
s.aclsMutex.Lock()
|
s.aclsMutex.Lock()
|
||||||
defer s.aclsMutex.Unlock()
|
defer s.aclsMutex.Unlock()
|
||||||
s.acls[state.RoomID()] = acls
|
s.acls[state.RoomID()] = acls
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,10 @@ func (c *OutputRoomEventConsumer) onNewRoomEvent(
|
||||||
) error {
|
) error {
|
||||||
ev := msg.Event
|
ev := msg.Event
|
||||||
|
|
||||||
|
if ev.Type() == "m.room.server_acl" {
|
||||||
|
defer c.acls.OnServerACLUpdate(&ev.Event)
|
||||||
|
}
|
||||||
|
|
||||||
addsStateEvents := msg.AddsState()
|
addsStateEvents := msg.AddsState()
|
||||||
|
|
||||||
ev, err := c.updateStateEvent(ev)
|
ev, err := c.updateStateEvent(ev)
|
||||||
|
|
@ -91,7 +95,6 @@ func (c *OutputRoomEventConsumer) onNewRoomEvent(
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
c.acls.OnServerACLUpdate(&addsStateEvents[i].Event)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err = c.db.StoreStateEvents(
|
err = c.db.StoreStateEvents(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue