@@ -5,7 +5,6 @@ package policyeval
55import  (
66	"context" 
77	"errors" 
8- 	"time" 
98
109	"github.com/rs/zerolog" 
1110	"maunium.net/go/mautrix/event" 
@@ -27,11 +26,8 @@ func (ps *PolicyServer) HandleSign(
2726		Stringer ("room_id" , clientEvt .RoomID ).
2827		Stringer ("event_id" , clientEvt .ID ).
2928		Logger ()
30- 	r  :=  ps .getCache (clientEvt .ID , clientEvt )
31- 	finalRec  :=  r .Recommendation 
32- 	r .Lock .Lock ()
29+ 	finalRec  :=  PSRecommendationOk 
3330	defer  func () {
34- 		r .Lock .Unlock ()
3531		if  caller  !=  evt .Sender .Homeserver () &&  finalRec  ==  PSRecommendationSpam  &&  redact  &&  ps .redactionCache .Add (clientEvt .ID ) {
3632			go  func () {
3733				if  _ , err  =  evaluator .Bot .RedactEvent (context .WithoutCancel (ctx ), clientEvt .RoomID , clientEvt .ID ); err  !=  nil  {
@@ -41,30 +37,25 @@ func (ps *PolicyServer) HandleSign(
4137		}
4238	}()
4339
44- 	if  r .Signatures  ==  nil  {
45- 		log .Trace ().Any ("event" , evt ).Msg ("Checking event received by policy server" )
46- 		rec , match  :=  ps .getRecommendation (clientEvt , evaluator )
47- 		finalRec  =  rec 
48- 		r .Recommendation  =  finalRec 
49- 		if  rec  ==  PSRecommendationSpam  {
50- 			// Don't sign spam events 
51- 			log .Debug ().Stringer ("recommendations" , match .Recommendations ()).Msg ("Event rejected for spam" )
52- 			signatures  =  make (map [string ]map [string ]string ) // empty but not nil map to prevent later rechecks 
53- 		} else  {
54- 			log .Trace ().Msg ("Event accepted" )
40+ 	log .Trace ().Any ("event" , evt ).Msg ("Checking event received by policy server" )
41+ 	rec , match  :=  ps .getRecommendation (clientEvt , evaluator )
42+ 	finalRec  =  rec 
43+ 	if  rec  ==  PSRecommendationSpam  {
44+ 		// Don't sign spam events 
45+ 		log .Debug ().Stringer ("recommendations" , match .Recommendations ()).Msg ("Event rejected for spam" )
46+ 	} else  {
47+ 		log .Trace ().Msg ("Event accepted" )
5548
56- 			var  signature  string 
57- 			signature , err  =  ps .SigningKey .SignJSON (evt )
58- 			if  err  !=  nil  {
59- 				return 
60- 			}
61- 			signatures  =  map [string ]map [string ]string {
62- 				ps .Federation .ServerName : {
63- 					"ed25519:policy_server" : signature ,
64- 				},
65- 			}
49+ 		var  signature  string 
50+ 		signature , err  =  ps .SigningKey .SignJSON (evt )
51+ 		if  err  !=  nil  {
52+ 			return 
53+ 		}
54+ 		signatures  =  map [string ]map [string ]string {
55+ 			ps .Federation .ServerName : {
56+ 				"ed25519:policy_server" : signature ,
57+ 			},
6658		}
6759	}
68- 	r .LastAccessed  =  time .Now ()
6960	return  signatures , nil 
7061}
0 commit comments