fix: e2ee verification
This commit is contained in:
		
							parent
							
								
									ac0027756e
								
							
						
					
					
						commit
						8c44312485
					
				
					 5 changed files with 12 additions and 8 deletions
				
			
		|  | @ -89,7 +89,9 @@ pub async fn sync_events_route( | |||
| 
 | ||||
|     let we_have_to_wait = rx.borrow().is_none(); | ||||
|     if we_have_to_wait { | ||||
|         let _ = rx.changed().await; | ||||
|         if let Err(e) = rx.changed().await { | ||||
|             error!("Error waiting for sync: {}", e); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     let result = match rx | ||||
|  |  | |||
|  | @ -19,7 +19,9 @@ pub async fn send_event_to_device_route( | |||
|     let sender_user = body.sender_user.as_ref().expect("user is authenticated"); | ||||
|     let sender_device = body.sender_device.as_deref(); | ||||
| 
 | ||||
|     // TODO: uncomment when https://github.com/vector-im/element-android/issues/3589 is solved
 | ||||
|     // Check if this is a new transaction id
 | ||||
|     /* | ||||
|     if db | ||||
|         .transaction_ids | ||||
|         .existing_txnid(sender_user, sender_device, &body.txn_id)? | ||||
|  | @ -27,6 +29,7 @@ pub async fn send_event_to_device_route( | |||
|     { | ||||
|         return Ok(send_event_to_device::Response.into()); | ||||
|     } | ||||
|     */ | ||||
| 
 | ||||
|     for (target_user_id, map) in &body.messages { | ||||
|         for (target_device_id_maybe, event) in map { | ||||
|  |  | |||
|  | @ -64,7 +64,7 @@ impl Tree for SledEngineTree { | |||
|         backwards: bool, | ||||
|     ) -> Box<dyn Iterator<Item = (Vec<u8>, Vec<u8>)> + Send> { | ||||
|         let iter = if backwards { | ||||
|             self.0.range(..from) | ||||
|             self.0.range(..=from) | ||||
|         } else { | ||||
|             self.0.range(from..) | ||||
|         }; | ||||
|  |  | |||
|  | @ -1495,7 +1495,7 @@ impl Rooms { | |||
|         prefix.push(0xff); | ||||
| 
 | ||||
|         let mut current = prefix.clone(); | ||||
|         current.extend_from_slice(&until.to_be_bytes()); | ||||
|         current.extend_from_slice(&(until.saturating_sub(1)).to_be_bytes()); // -1 because we don't want event at `until`
 | ||||
| 
 | ||||
|         let current: &[u8] = ¤t; | ||||
| 
 | ||||
|  |  | |||
|  | @ -726,10 +726,9 @@ impl Users { | |||
|         json.insert("sender".to_owned(), sender.to_string().into()); | ||||
|         json.insert("content".to_owned(), content); | ||||
| 
 | ||||
|         self.todeviceid_events.insert( | ||||
|             &key, | ||||
|             &serde_json::to_vec(&json).expect("Map::to_vec always works"), | ||||
|         )?; | ||||
|         let value = serde_json::to_vec(&json).expect("Map::to_vec always works"); | ||||
| 
 | ||||
|         self.todeviceid_events.insert(&key, &value)?; | ||||
| 
 | ||||
|         Ok(()) | ||||
|     } | ||||
|  | @ -774,7 +773,7 @@ impl Users { | |||
| 
 | ||||
|         for (key, _) in self | ||||
|             .todeviceid_events | ||||
|             .iter_from(&last, true) | ||||
|             .iter_from(&last, true) // this includes last
 | ||||
|             .take_while(move |(k, _)| k.starts_with(&prefix)) | ||||
|             .map(|(key, _)| { | ||||
|                 Ok::<_, Error>(( | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue