diff --git a/rpcs3/Emu/Cell/Modules/cellNetCtl.cpp b/rpcs3/Emu/Cell/Modules/cellNetCtl.cpp index b6216bcaec..b398798089 100644 --- a/rpcs3/Emu/Cell/Modules/cellNetCtl.cpp +++ b/rpcs3/Emu/Cell/Modules/cellNetCtl.cpp @@ -212,8 +212,8 @@ error_code cellNetCtlGetInfo(s32 code, vm::ptr info) case CELL_NET_CTL_INFO_LINK_TYPE: info->link_type = CELL_NET_CTL_LINK_TYPE_10BASE_FULL; break; case CELL_NET_CTL_INFO_IP_CONFIG: info->ip_config = CELL_NET_CTL_IP_STATIC; break; case CELL_NET_CTL_INFO_DEFAULT_ROUTE: strcpy_trunc(info->default_route, "192.168.1.1"); break; - case CELL_NET_CTL_INFO_PRIMARY_DNS: strcpy_trunc(info->primary_dns, "8.8.8.8"); break; - case CELL_NET_CTL_INFO_SECONDARY_DNS: strcpy_trunc(info->secondary_dns, "8.8.8.8"); break; + case CELL_NET_CTL_INFO_PRIMARY_DNS: strcpy_trunc(info->primary_dns, np_handler::ip_to_string(nph->get_dns_ip())); break; + case CELL_NET_CTL_INFO_SECONDARY_DNS: strcpy_trunc(info->secondary_dns, np_handler::ip_to_string(nph->get_dns_ip())); break; case CELL_NET_CTL_INFO_IP_ADDRESS: strcpy_trunc(info->ip_address, np_handler::ip_to_string(nph->get_local_ip_addr())); break; case CELL_NET_CTL_INFO_NETMASK: strcpy_trunc(info->netmask, "255.255.255.255"); break; case CELL_NET_CTL_INFO_HTTP_PROXY_CONFIG: info->http_proxy_config = 0; break; diff --git a/rpcs3/Emu/Cell/lv2/sys_net.cpp b/rpcs3/Emu/Cell/lv2/sys_net.cpp index bb6c6cb8c7..81b7c1d41a 100644 --- a/rpcs3/Emu/Cell/lv2/sys_net.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_net.cpp @@ -1510,7 +1510,7 @@ error_code sys_net_bnet_connect(ppu_thread& ppu, s32 s, vm::ptrget>(); - // Hack for DNS (8.8.8.8:53) + // Hack for DNS name.sin_port = std::bit_cast>(53); name.sin_addr.s_addr = nph->get_dns_ip(); @@ -3426,23 +3426,13 @@ error_code sys_net_infoctl(ppu_thread& ppu, s32 cmd, vm::ptr arg) case 9: { constexpr auto nameserver = "nameserver \0"sv; - constexpr auto default_ip = "192.168.1.1\0"sv; - char buffer[nameserver.size() + 80]; + char buffer[nameserver.size() + 80]{}; std::memcpy(buffer, nameserver.data(), nameserver.size()); const auto nph = g_fxo->get>(); - if (nph->get_dns_ip()) - { - struct sockaddr_in serv; - std::memset(&serv, 0, sizeof(serv)); - serv.sin_addr.s_addr = nph->get_dns_ip(); - inet_ntop(AF_INET, &serv.sin_addr, buffer + nameserver.size() - 1, sizeof(buffer) - nameserver.size()); - } - else - { - std::memcpy(buffer + nameserver.size() - 1, default_ip.data(), default_ip.size()); - } + const auto dns_str = np_handler::ip_to_string(nph->get_dns_ip()); + std::memcpy(buffer + nameserver.size() - 1, dns_str.data(), dns_str.size()); std::string_view name{buffer}; vm::static_ptr_cast(arg)->zero = 0;