mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-18 05:58:19 +00:00
Merge pull request #8716 from ChillerDragon/pr_hide_url_for_06
Hide address url for 0.6 ips (Closed #8712)
This commit is contained in:
commit
b16bc401a8
|
@ -1130,22 +1130,6 @@ bool net_addr_str(const NETADDR *addr, char *string, int max_length, int add_por
|
|||
return true;
|
||||
}
|
||||
|
||||
void net_addr_url_str(const NETADDR *addr, char *string, int max_length, int add_port)
|
||||
{
|
||||
char ipaddr[512];
|
||||
if(!net_addr_str(addr, ipaddr, sizeof(ipaddr), add_port))
|
||||
{
|
||||
str_copy(string, ipaddr, max_length);
|
||||
return;
|
||||
}
|
||||
str_format(
|
||||
string,
|
||||
max_length,
|
||||
"tw-%s+udp://%s",
|
||||
addr->type & NETTYPE_TW7 ? "0.7" : "0.6",
|
||||
ipaddr);
|
||||
}
|
||||
|
||||
static int priv_net_extract(const char *hostname, char *host, int max_host, int *port)
|
||||
{
|
||||
int i;
|
||||
|
|
|
@ -818,23 +818,6 @@ int net_addr_comp_noport(const NETADDR *a, const NETADDR *b);
|
|||
*/
|
||||
bool net_addr_str(const NETADDR *addr, char *string, int max_length, int add_port);
|
||||
|
||||
/**
|
||||
* Turns a network address into a url string.
|
||||
* Examples:
|
||||
* tw-0.6+udp://127.0.0.1:8303
|
||||
* tw-0.7+udp://127.0.0.1
|
||||
*
|
||||
* @ingroup Network-General
|
||||
*
|
||||
* @param addr Address to turn into a string.
|
||||
* @param string Buffer to fill with the url string.
|
||||
* @param max_length Maximum size of the url string.
|
||||
* @param add_port add port to url string or not
|
||||
*
|
||||
* @remark The string will always be zero terminated
|
||||
*/
|
||||
void net_addr_url_str(const NETADDR *addr, char *string, int max_length, int add_port);
|
||||
|
||||
/**
|
||||
* Turns url string into a network address struct.
|
||||
* The url format is tw-0.6+udp://{ipaddr}[:{port}]
|
||||
|
|
|
@ -704,7 +704,22 @@ void ServerBrowserFormatAddresses(char *pBuffer, int BufferSize, NETADDR *pAddrs
|
|||
{
|
||||
return;
|
||||
}
|
||||
net_addr_url_str(&pAddrs[i], pBuffer, BufferSize, true);
|
||||
char aIpAddr[512];
|
||||
if(!net_addr_str(&pAddrs[i], aIpAddr, sizeof(aIpAddr), true))
|
||||
{
|
||||
str_copy(pBuffer, aIpAddr, BufferSize);
|
||||
return;
|
||||
}
|
||||
if(pAddrs[i].type & NETTYPE_TW7)
|
||||
{
|
||||
str_format(
|
||||
pBuffer,
|
||||
BufferSize,
|
||||
"tw-0.7+udp://%s",
|
||||
aIpAddr);
|
||||
return;
|
||||
}
|
||||
str_copy(pBuffer, aIpAddr, BufferSize);
|
||||
int Length = str_length(pBuffer);
|
||||
pBuffer += Length;
|
||||
BufferSize -= Length;
|
||||
|
|
|
@ -472,6 +472,7 @@ bool CServerBrowserHttp::Parse(json_value *pJson, std::vector<CServerInfo> *pvSe
|
|||
CServerInfo SetInfo = ParsedInfo;
|
||||
SetInfo.m_Location = ParsedLocation;
|
||||
SetInfo.m_NumAddresses = 0;
|
||||
bool GotVersion6 = false;
|
||||
for(unsigned int a = 0; a < Addresses.u.array.length; a++)
|
||||
{
|
||||
const json_value &Address = Addresses[a];
|
||||
|
@ -479,6 +480,23 @@ bool CServerBrowserHttp::Parse(json_value *pJson, std::vector<CServerInfo> *pvSe
|
|||
{
|
||||
return true;
|
||||
}
|
||||
if(str_startswith(Addresses[a], "tw-0.6+udp://"))
|
||||
{
|
||||
GotVersion6 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for(unsigned int a = 0; a < Addresses.u.array.length; a++)
|
||||
{
|
||||
const json_value &Address = Addresses[a];
|
||||
if(Address.type != json_string)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if(GotVersion6 && str_startswith(Addresses[a], "tw-0.7+udp://"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
NETADDR ParsedAddr;
|
||||
if(ServerbrowserParseUrl(&ParsedAddr, Addresses[a]))
|
||||
{
|
||||
|
|
|
@ -24,10 +24,6 @@ TEST(NetAddr, FromUrlStringValid)
|
|||
net_addr_str(&Addr, aBuf2, sizeof(aBuf2), false);
|
||||
EXPECT_STREQ(aBuf1, "127.0.0.1:0");
|
||||
EXPECT_STREQ(aBuf2, "127.0.0.1");
|
||||
net_addr_url_str(&Addr, aBuf1, sizeof(aBuf1), true);
|
||||
net_addr_url_str(&Addr, aBuf2, sizeof(aBuf2), false);
|
||||
EXPECT_STREQ(aBuf1, "tw-0.7+udp://127.0.0.1:0");
|
||||
EXPECT_STREQ(aBuf2, "tw-0.7+udp://127.0.0.1");
|
||||
|
||||
EXPECT_EQ(net_addr_from_url(&Addr, "tw-0.6+udp://127.0.0.1", nullptr, 0), 0);
|
||||
net_addr_str(&Addr, aBuf1, sizeof(aBuf1), true);
|
||||
|
@ -40,20 +36,12 @@ TEST(NetAddr, FromUrlStringValid)
|
|||
net_addr_str(&Addr, aBuf2, sizeof(aBuf2), false);
|
||||
EXPECT_STREQ(aBuf1, "127.0.0.1:0");
|
||||
EXPECT_STREQ(aBuf2, "127.0.0.1");
|
||||
net_addr_url_str(&Addr, aBuf1, sizeof(aBuf1), true);
|
||||
net_addr_url_str(&Addr, aBuf2, sizeof(aBuf2), false);
|
||||
EXPECT_STREQ(aBuf1, "tw-0.6+udp://127.0.0.1:0");
|
||||
EXPECT_STREQ(aBuf2, "tw-0.6+udp://127.0.0.1");
|
||||
|
||||
EXPECT_EQ(net_addr_from_url(&Addr, "tw-0.6+udp://[0123:4567:89ab:cdef:1:2:3:4]:5678", nullptr, 0), 0);
|
||||
net_addr_str(&Addr, aBuf1, sizeof(aBuf1), true);
|
||||
net_addr_str(&Addr, aBuf2, sizeof(aBuf2), false);
|
||||
EXPECT_STREQ(aBuf1, "[123:4567:89ab:cdef:1:2:3:4]:5678");
|
||||
EXPECT_STREQ(aBuf2, "[123:4567:89ab:cdef:1:2:3:4]");
|
||||
net_addr_url_str(&Addr, aBuf1, sizeof(aBuf1), true);
|
||||
net_addr_url_str(&Addr, aBuf2, sizeof(aBuf2), false);
|
||||
EXPECT_STREQ(aBuf1, "tw-0.6+udp://[123:4567:89ab:cdef:1:2:3:4]:5678");
|
||||
EXPECT_STREQ(aBuf2, "tw-0.6+udp://[123:4567:89ab:cdef:1:2:3:4]");
|
||||
|
||||
char aHost[128];
|
||||
EXPECT_EQ(net_addr_from_url(&Addr, "tw-0.6+udp://ger10.ddnet.org:5678", aHost, sizeof(aHost)), -1);
|
||||
|
@ -156,14 +144,3 @@ TEST(NetAddr, StrInvalid)
|
|||
net_addr_str(&Addr, aBuf2, sizeof(aBuf2), false);
|
||||
EXPECT_STREQ(aBuf2, "unknown type 0");
|
||||
}
|
||||
|
||||
TEST(NetAddr, UrlStrInvalid)
|
||||
{
|
||||
NETADDR Addr = {0};
|
||||
char aBuf1[NETADDR_MAXSTRSIZE];
|
||||
char aBuf2[NETADDR_MAXSTRSIZE];
|
||||
net_addr_url_str(&Addr, aBuf1, sizeof(aBuf1), true);
|
||||
EXPECT_STREQ(aBuf1, "unknown type 0");
|
||||
net_addr_url_str(&Addr, aBuf2, sizeof(aBuf2), false);
|
||||
EXPECT_STREQ(aBuf2, "unknown type 0");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue