mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +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
					
				@ -404,16 +404,23 @@ static void SendTo(Interface* self) {
 | 
			
		||||
    const VAddr input_address = rp.PopStaticBuffer(&desc_size, false);
 | 
			
		||||
    ASSERT(desc_size == data_size);
 | 
			
		||||
 | 
			
		||||
    // TODO(Subv): Figure out the error if this is called while not connected to a network.
 | 
			
		||||
    if (connection_status.status == static_cast<u32>(NetworkStatus::ConnectedAsClient) ||
 | 
			
		||||
        connection_status.status == static_cast<u32>(NetworkStatus::ConnectedAsHost)) {
 | 
			
		||||
        ASSERT_MSG(false, "Not connected to a network (unimplemented)");
 | 
			
		||||
    IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
 | 
			
		||||
 | 
			
		||||
    if (connection_status.status != static_cast<u32>(NetworkStatus::ConnectedAsClient) &&
 | 
			
		||||
        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.
 | 
			
		||||
 | 
			
		||||
    IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
 | 
			
		||||
 | 
			
		||||
    constexpr size_t MaxSize = 0x5C6;
 | 
			
		||||
    if (data_size > MaxSize) {
 | 
			
		||||
        rb.Push(ResultCode(ErrorDescription::TooLarge, ErrorModule::UDS,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user