mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	Services/UDS: Store the entire NetworkInfo structure that was used to create the network.
It will be needed when generating the beacon frames.
This commit is contained in:
		@@ -38,11 +38,8 @@ static std::unordered_map<u32, Kernel::SharedPtr<Kernel::Event>> bind_node_event
 | 
				
			|||||||
// Since we're not actually interacting with physical radio waves, this is just a dummy value.
 | 
					// Since we're not actually interacting with physical radio waves, this is just a dummy value.
 | 
				
			||||||
static u8 network_channel = DefaultNetworkChannel;
 | 
					static u8 network_channel = DefaultNetworkChannel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// The identifier of the network kind, this is used to filter away networks that we're not interested in.
 | 
					// Information about the network that we're currently connected to.
 | 
				
			||||||
static u32 wlan_comm_id = 0;
 | 
					static NetworkInfo network_info;
 | 
				
			||||||
 | 
					 | 
				
			||||||
// Application data that is sent when broadcasting the beacon frames.
 | 
					 | 
				
			||||||
static std::vector<u8> application_data;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * NWM_UDS::Shutdown service function
 | 
					 * NWM_UDS::Shutdown service function
 | 
				
			||||||
@@ -244,12 +241,10 @@ static void BeginHostingNetwork(Interface* self) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    LOG_DEBUG(Service_NWM, "called");
 | 
					    LOG_DEBUG(Service_NWM, "called");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    NetworkInfo network_info;
 | 
					 | 
				
			||||||
    Memory::ReadBlock(network_info_address, &network_info, sizeof(NetworkInfo));
 | 
					    Memory::ReadBlock(network_info_address, &network_info, sizeof(NetworkInfo));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    connection_status.status = static_cast<u32>(NetworkStatus::ConnectedAsHost);
 | 
					    connection_status.status = static_cast<u32>(NetworkStatus::ConnectedAsHost);
 | 
				
			||||||
    connection_status.max_nodes = network_info.max_nodes;
 | 
					    connection_status.max_nodes = network_info.max_nodes;
 | 
				
			||||||
    wlan_comm_id = network_info.wlan_comm_id;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // There's currently only one node in the network (the host).
 | 
					    // There's currently only one node in the network (the host).
 | 
				
			||||||
    connection_status.total_nodes = 1;
 | 
					    connection_status.total_nodes = 1;
 | 
				
			||||||
@@ -263,9 +258,6 @@ static void BeginHostingNetwork(Interface* self) {
 | 
				
			|||||||
    if (network_info.channel != 0)
 | 
					    if (network_info.channel != 0)
 | 
				
			||||||
        network_channel = network_info.channel;
 | 
					        network_channel = network_info.channel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Clear the pre-existing application data.
 | 
					 | 
				
			||||||
    application_data.clear();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    connection_status_event->Signal();
 | 
					    connection_status_event->Signal();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO(Subv): Start broadcasting the network, send a beacon frame every 102.4ms.
 | 
					    // TODO(Subv): Start broadcasting the network, send a beacon frame every 102.4ms.
 | 
				
			||||||
@@ -333,8 +325,8 @@ static void SetApplicationData(Interface* self) {
 | 
				
			|||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    application_data.resize(size);
 | 
					    network_info.application_data_size = size;
 | 
				
			||||||
    Memory::ReadBlock(address, application_data.data(), size);
 | 
					    Memory::ReadBlock(address, network_info.application_data.data(), size);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    rb.Push(RESULT_SUCCESS);
 | 
					    rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -379,7 +371,7 @@ NWM_UDS::NWM_UDS() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
NWM_UDS::~NWM_UDS() {
 | 
					NWM_UDS::~NWM_UDS() {
 | 
				
			||||||
    application_data.clear();
 | 
					    network_info = {};
 | 
				
			||||||
    bind_node_events.clear();
 | 
					    bind_node_events.clear();
 | 
				
			||||||
    connection_status_event = nullptr;
 | 
					    connection_status_event = nullptr;
 | 
				
			||||||
    recv_buffer_memory = nullptr;
 | 
					    recv_buffer_memory = nullptr;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user