mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2024-11-22 17:39:53 +03:00
Merge PR #1556: Fix wrong endianness in InRpcNodeInfo() and OutRpcNodeInfo()
This commit is contained in:
commit
a52a3928db
@ -14658,19 +14658,19 @@ void InRpcNodeInfo(NODE_INFO *t, PACK *p)
|
|||||||
PackGetStr(p, "HubName", t->HubName, sizeof(t->HubName));
|
PackGetStr(p, "HubName", t->HubName, sizeof(t->HubName));
|
||||||
PackGetData2(p, "UniqueId", t->UniqueId, sizeof(t->UniqueId));
|
PackGetData2(p, "UniqueId", t->UniqueId, sizeof(t->UniqueId));
|
||||||
|
|
||||||
t->ClientProductVer = PackGetInt(p, "ClientProductVer");
|
t->ClientProductVer = LittleEndian32(PackGetInt(p, "ClientProductVer"));
|
||||||
t->ClientProductBuild = PackGetInt(p, "ClientProductBuild");
|
t->ClientProductBuild = LittleEndian32(PackGetInt(p, "ClientProductBuild"));
|
||||||
t->ServerProductVer = PackGetInt(p, "ServerProductVer");
|
t->ServerProductVer = LittleEndian32(PackGetInt(p, "ServerProductVer"));
|
||||||
t->ServerProductBuild = PackGetInt(p, "ServerProductBuild");
|
t->ServerProductBuild = LittleEndian32(PackGetInt(p, "ServerProductBuild"));
|
||||||
t->ClientIpAddress = PackGetIp32(p, "ClientIpAddress");
|
t->ClientIpAddress = PackGetIp32(p, "ClientIpAddress");
|
||||||
PackGetData2(p, "ClientIpAddress6", t->ClientIpAddress6, sizeof(t->ClientIpAddress6));
|
PackGetData2(p, "ClientIpAddress6", t->ClientIpAddress6, sizeof(t->ClientIpAddress6));
|
||||||
t->ClientPort = PackGetInt(p, "ClientPort");
|
t->ClientPort = LittleEndian32(PackGetInt(p, "ClientPort"));
|
||||||
t->ServerIpAddress = PackGetIp32(p, "ServerIpAddress");
|
t->ServerIpAddress = PackGetIp32(p, "ServerIpAddress");
|
||||||
PackGetData2(p, "ServerIpAddress6", t->ServerIpAddress6, sizeof(t->ServerIpAddress6));
|
PackGetData2(p, "ServerIpAddress6", t->ServerIpAddress6, sizeof(t->ServerIpAddress6));
|
||||||
t->ServerPort = PackGetInt(p, "ServerPort2");
|
t->ServerPort = LittleEndian32(PackGetInt(p, "ServerPort2"));
|
||||||
t->ProxyIpAddress = PackGetIp32(p, "ProxyIpAddress");
|
t->ProxyIpAddress = PackGetIp32(p, "ProxyIpAddress");
|
||||||
PackGetData2(p, "ProxyIpAddress6", t->ProxyIpAddress6, sizeof(t->ProxyIpAddress6));
|
PackGetData2(p, "ProxyIpAddress6", t->ProxyIpAddress6, sizeof(t->ProxyIpAddress6));
|
||||||
t->ProxyPort = PackGetInt(p, "ProxyPort");
|
t->ProxyPort = LittleEndian32(PackGetInt(p, "ProxyPort"));
|
||||||
}
|
}
|
||||||
void OutRpcNodeInfo(PACK *p, NODE_INFO *t)
|
void OutRpcNodeInfo(PACK *p, NODE_INFO *t)
|
||||||
{
|
{
|
||||||
@ -14691,19 +14691,19 @@ void OutRpcNodeInfo(PACK *p, NODE_INFO *t)
|
|||||||
PackAddStr(p, "HubName", t->HubName);
|
PackAddStr(p, "HubName", t->HubName);
|
||||||
PackAddData(p, "UniqueId", t->UniqueId, sizeof(t->UniqueId));
|
PackAddData(p, "UniqueId", t->UniqueId, sizeof(t->UniqueId));
|
||||||
|
|
||||||
PackAddInt(p, "ClientProductVer", t->ClientProductVer);
|
PackAddInt(p, "ClientProductVer", LittleEndian32(t->ClientProductVer));
|
||||||
PackAddInt(p, "ClientProductBuild", t->ClientProductBuild);
|
PackAddInt(p, "ClientProductBuild", LittleEndian32(t->ClientProductBuild));
|
||||||
PackAddInt(p, "ServerProductVer", t->ServerProductVer);
|
PackAddInt(p, "ServerProductVer", LittleEndian32(t->ServerProductVer));
|
||||||
PackAddInt(p, "ServerProductBuild", t->ServerProductBuild);
|
PackAddInt(p, "ServerProductBuild", LittleEndian32(t->ServerProductBuild));
|
||||||
PackAddIp32(p, "ClientIpAddress", t->ClientIpAddress);
|
PackAddIp32(p, "ClientIpAddress", t->ClientIpAddress);
|
||||||
PackAddData(p, "ClientIpAddress6", t->ClientIpAddress6, sizeof(t->ClientIpAddress6));
|
PackAddData(p, "ClientIpAddress6", t->ClientIpAddress6, sizeof(t->ClientIpAddress6));
|
||||||
PackAddInt(p, "ClientPort", t->ClientPort);
|
PackAddInt(p, "ClientPort", LittleEndian32(t->ClientPort));
|
||||||
PackAddIp32(p, "ServerIpAddress", t->ServerIpAddress);
|
PackAddIp32(p, "ServerIpAddress", t->ServerIpAddress);
|
||||||
PackAddData(p, "ServerIpAddress6", t->ServerIpAddress6, sizeof(t->ServerIpAddress6));
|
PackAddData(p, "ServerIpAddress6", t->ServerIpAddress6, sizeof(t->ServerIpAddress6));
|
||||||
PackAddInt(p, "ServerPort2", t->ServerPort);
|
PackAddInt(p, "ServerPort2", LittleEndian32(t->ServerPort));
|
||||||
PackAddIp32(p, "ProxyIpAddress", t->ProxyIpAddress);
|
PackAddIp32(p, "ProxyIpAddress", t->ProxyIpAddress);
|
||||||
PackAddData(p, "ProxyIpAddress6", t->ProxyIpAddress6, sizeof(t->ProxyIpAddress6));
|
PackAddData(p, "ProxyIpAddress6", t->ProxyIpAddress6, sizeof(t->ProxyIpAddress6));
|
||||||
PackAddInt(p, "ProxyPort", t->ProxyPort);
|
PackAddInt(p, "ProxyPort", LittleEndian32(t->ProxyPort));
|
||||||
}
|
}
|
||||||
|
|
||||||
// RPC_SESSION_STATUS
|
// RPC_SESSION_STATUS
|
||||||
|
@ -3373,6 +3373,48 @@ UINT64 Endian64(UINT64 src)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Endian conversion 16bit
|
||||||
|
USHORT LittleEndian16(USHORT src)
|
||||||
|
{
|
||||||
|
int x = 0x01000000;
|
||||||
|
if (*((char *)&x))
|
||||||
|
{
|
||||||
|
return Swap16(src);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return src;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Endian conversion 32bit
|
||||||
|
UINT LittleEndian32(UINT src)
|
||||||
|
{
|
||||||
|
int x = 0x01000000;
|
||||||
|
if (*((char *)&x))
|
||||||
|
{
|
||||||
|
return Swap32(src);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return src;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Endian conversion 64bit
|
||||||
|
UINT64 LittleEndian64(UINT64 src)
|
||||||
|
{
|
||||||
|
int x = 0x01000000;
|
||||||
|
if (*((char *)&x))
|
||||||
|
{
|
||||||
|
return Swap64(src);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return src;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 16bit swap
|
// 16bit swap
|
||||||
USHORT Swap16(USHORT value)
|
USHORT Swap16(USHORT value)
|
||||||
{
|
{
|
||||||
|
@ -199,6 +199,9 @@ UINT64 Swap64(UINT64 value);
|
|||||||
USHORT Endian16(USHORT src);
|
USHORT Endian16(USHORT src);
|
||||||
UINT Endian32(UINT src);
|
UINT Endian32(UINT src);
|
||||||
UINT64 Endian64(UINT64 src);
|
UINT64 Endian64(UINT64 src);
|
||||||
|
USHORT LittleEndian16(USHORT src);
|
||||||
|
UINT LittleEndian32(UINT src);
|
||||||
|
UINT64 LittleEndian64(UINT64 src);
|
||||||
void EndianUnicode(wchar_t *str);
|
void EndianUnicode(wchar_t *str);
|
||||||
|
|
||||||
BUF *NewBuf();
|
BUF *NewBuf();
|
||||||
|
Loading…
Reference in New Issue
Block a user