mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	UDS: Return the correct error messages in SendTo when not connected to a network or trying to send to itself.
This commit is contained in:
		
							parent
							
								
									7efb64132d
								
							
						
					
					
						commit
						61ce89a55a
					
				
					 1 changed files with 13 additions and 6 deletions
				
			
		|  | @ -404,16 +404,23 @@ static void SendTo(Interface* self) { | ||||||
|     const VAddr input_address = rp.PopStaticBuffer(&desc_size, false); |     const VAddr input_address = rp.PopStaticBuffer(&desc_size, false); | ||||||
|     ASSERT(desc_size == data_size); |     ASSERT(desc_size == data_size); | ||||||
| 
 | 
 | ||||||
|     // TODO(Subv): Figure out the error if this is called while not connected to a network.
 |     IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); | ||||||
|     if (connection_status.status == static_cast<u32>(NetworkStatus::ConnectedAsClient) || | 
 | ||||||
|         connection_status.status == static_cast<u32>(NetworkStatus::ConnectedAsHost)) { |     if (connection_status.status != static_cast<u32>(NetworkStatus::ConnectedAsClient) && | ||||||
|         ASSERT_MSG(false, "Not connected to a network (unimplemented)"); |         connection_status.status != static_cast<u32>(NetworkStatus::ConnectedAsHost)) { | ||||||
|  |         rb.Push(ResultCode(ErrorDescription::NotAuthorized, ErrorModule::UDS, | ||||||
|  |                            ErrorSummary::InvalidState, ErrorLevel::Status)); | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (dest_node_id == connection_status.network_node_id) { | ||||||
|  |         rb.Push(ResultCode(ErrorDescription::NotFound, ErrorModule::UDS, | ||||||
|  |                            ErrorSummary::WrongArgument, ErrorLevel::Status)); | ||||||
|  |         return; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // TODO(Subv): Do something with the flags.
 |     // TODO(Subv): Do something with the flags.
 | ||||||
| 
 | 
 | ||||||
|     IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); |  | ||||||
| 
 |  | ||||||
|     constexpr size_t MaxSize = 0x5C6; |     constexpr size_t MaxSize = 0x5C6; | ||||||
|     if (data_size > MaxSize) { |     if (data_size > MaxSize) { | ||||||
|         rb.Push(ResultCode(ErrorDescription::TooLarge, ErrorModule::UDS, |         rb.Push(ResultCode(ErrorDescription::TooLarge, ErrorModule::UDS, | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue