@@ -258,8 +258,8 @@ impl Context {
258258 for item in & items. items {
259259 match & item. data {
260260 SyncDataOrUnknown :: SyncData ( data) => match data {
261- AddQrToken ( token) => self . add_qr_token ( token) . await ,
262- DeleteQrToken ( token) => self . delete_qr_token ( token) . await ,
261+ AddQrToken ( token) => self . add_qr_token ( token, item . timestamp ) . await ,
262+ DeleteQrToken ( token) => self . delete_qr_token ( token, item . timestamp ) . await ,
263263 AlterChat { id, action } => self . sync_alter_chat ( id, action) . await ,
264264 SyncData :: Config { key, val } => self . sync_config ( key, val) . await ,
265265 SyncData :: SaveMessage { src, dest } => self . save_message ( src, dest) . await ,
@@ -284,21 +284,28 @@ impl Context {
284284 }
285285 }
286286
287- async fn add_qr_token ( & self , token : & QrTokenData ) -> Result < ( ) > {
287+ async fn add_qr_token ( & self , token : & QrTokenData , timestamp : i64 ) -> Result < ( ) > {
288288 let grpid = token. grpid . as_deref ( ) ;
289- token:: save ( self , Namespace :: InviteNumber , grpid, & token. invitenumber ) . await ?;
290- token:: save ( self , Namespace :: Auth , grpid, & token. auth ) . await ?;
289+ token:: save (
290+ self ,
291+ Namespace :: InviteNumber ,
292+ grpid,
293+ & token. invitenumber ,
294+ timestamp,
295+ )
296+ . await ?;
297+ token:: save ( self , Namespace :: Auth , grpid, & token. auth , timestamp) . await ?;
291298 Ok ( ( ) )
292299 }
293300
294- async fn delete_qr_token ( & self , token : & QrTokenData ) -> Result < ( ) > {
301+ async fn delete_qr_token ( & self , token : & QrTokenData , timestamp : i64 ) -> Result < ( ) > {
295302 self . sql
296303 . execute (
297304 "DELETE FROM tokens
298305 WHERE foreign_key IN
299306 (SELECT foreign_key FROM tokens
300- WHERE token=? OR token=?)" ,
301- ( & token. invitenumber , & token. auth ) ,
307+ WHERE token=? OR token=? AND timestamp <= ? )" ,
308+ ( & token. invitenumber , & token. auth , timestamp ) ,
302309 )
303310 . await ?;
304311 Ok ( ( ) )
0 commit comments