service: nifm: Populate fields in GetCurrentNetworkProfile

Populates the current_address, subnet_mask, and gateway fields from the selected network interface.
This commit is contained in:
Morph 2021-08-21 11:09:08 -04:00
parent 878d0225c5
commit c1e2063c0d
1 changed files with 37 additions and 29 deletions

View File

@ -277,37 +277,45 @@ private:
void GetCurrentNetworkProfile(Kernel::HLERequestContext& ctx) { void GetCurrentNetworkProfile(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service_NIFM, "(STUBBED) called"); LOG_WARNING(Service_NIFM, "(STUBBED) called");
const SfNetworkProfileData network_profile_data{ const auto net_iface = Network::GetSelectedNetworkInterface();
.ip_setting_data{
.ip_address_setting{ const SfNetworkProfileData network_profile_data = [&net_iface] {
.is_automatic{true}, if (!net_iface) {
.current_address{192, 168, 1, 100}, return SfNetworkProfileData{};
.subnet_mask{255, 255, 255, 0}, }
.gateway{192, 168, 1, 1},
return SfNetworkProfileData{
.ip_setting_data{
.ip_address_setting{
.is_automatic{true},
.current_address{Network::TranslateIPv4(net_iface->ip_address)},
.subnet_mask{Network::TranslateIPv4(net_iface->subnet_mask)},
.gateway{Network::TranslateIPv4(net_iface->gateway)},
},
.dns_setting{
.is_automatic{true},
.primary_dns{1, 1, 1, 1},
.secondary_dns{1, 0, 0, 1},
},
.proxy_setting{
.enabled{false},
.port{},
.proxy_server{},
.automatic_auth_enabled{},
.user{},
.password{},
},
.mtu{1500},
}, },
.dns_setting{ .uuid{0xdeadbeef, 0xdeadbeef},
.is_automatic{true}, .network_name{"yuzu Network"},
.primary_dns{1, 1, 1, 1}, .wireless_setting_data{
.secondary_dns{1, 0, 0, 1}, .ssid_length{12},
.ssid{"yuzu Network"},
.passphrase{"yuzupassword"},
}, },
.proxy_setting{ };
.enabled{false}, }();
.port{},
.proxy_server{},
.automatic_auth_enabled{},
.user{},
.password{},
},
.mtu{1500},
},
.uuid{0xdeadbeef, 0xdeadbeef},
.network_name{"yuzu Network"},
.wireless_setting_data{
.ssid_length{12},
.ssid{"yuzu Network"},
.passphrase{"yuzupassword"},
},
};
ctx.WriteBuffer(network_profile_data); ctx.WriteBuffer(network_profile_data);