summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2024-06-10 13:43:58 +0300
committerGeorge Hazan <george.hazan@gmail.com>2024-06-10 13:43:58 +0300
commit4f795835fc380a439649751a6c6710841df135c9 (patch)
treeed7da65a3cfd18bd072d10d7980469af9ee75dd4
parenta7d5e440c2116f84d9f189a82a5d989ab4b7a5b7 (diff)
Utils_GenerateUUID - a helper for UUID generation
-rw-r--r--include/m_utils.h5
-rw-r--r--libs/win32/mir_core.libbin498518 -> 498950 bytes
-rw-r--r--libs/win64/mir_core.libbin503818 -> 504250 bytes
-rw-r--r--protocols/Facebook/src/main.cpp2
-rw-r--r--protocols/Facebook/src/proto.cpp7
-rw-r--r--protocols/ICQ-WIM/src/http.cpp10
-rw-r--r--protocols/ICQ-WIM/src/server.cpp11
-rw-r--r--src/mir_core/src/Windows/winutil.cpp18
-rw-r--r--src/mir_core/src/mir_core.def1
-rw-r--r--src/mir_core/src/mir_core64.def1
10 files changed, 30 insertions, 25 deletions
diff --git a/include/m_utils.h b/include/m_utils.h
index 7949e5dc60..553522bdcf 100644
--- a/include/m_utils.h
+++ b/include/m_utils.h
@@ -433,6 +433,11 @@ EXTERN_C MIR_CORE_DLL(void) Utils_GetRandom(void *pszDest, size_t cbLen);
EXTERN_C MIR_CORE_DLL(bool) Utils_IsRtl(const wchar_t *pszwText);
/////////////////////////////////////////////////////////////////////////////////////////
+// UUID generator
+
+MIR_CORE_DLL(CMStringA) Utils_GenerateUUID();
+
+/////////////////////////////////////////////////////////////////////////////////////////
// Unzip memory buffer
MIR_APP_DLL(MBinBuffer) Utils_Unzip(const void *pData, size_t cbLen);
diff --git a/libs/win32/mir_core.lib b/libs/win32/mir_core.lib
index cc904117d7..49307cbad9 100644
--- a/libs/win32/mir_core.lib
+++ b/libs/win32/mir_core.lib
Binary files differ
diff --git a/libs/win64/mir_core.lib b/libs/win64/mir_core.lib
index a6dc575f07..b5a51004fe 100644
--- a/libs/win64/mir_core.lib
+++ b/libs/win64/mir_core.lib
Binary files differ
diff --git a/protocols/Facebook/src/main.cpp b/protocols/Facebook/src/main.cpp
index 9692c7b828..7d87990901 100644
--- a/protocols/Facebook/src/main.cpp
+++ b/protocols/Facebook/src/main.cpp
@@ -20,8 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdafx.h"
-#pragma comment(lib, "Rpcrt4.lib")
-
CMPlugin g_plugin;
bool g_bMessageState;
diff --git a/protocols/Facebook/src/proto.cpp b/protocols/Facebook/src/proto.cpp
index 19c2f03a30..ef8fdbbaa3 100644
--- a/protocols/Facebook/src/proto.cpp
+++ b/protocols/Facebook/src/proto.cpp
@@ -57,13 +57,8 @@ FacebookProto::FacebookProto(const char *proto_name, const wchar_t *username) :
m_szDeviceID = getMStringA(DBKEY_DEVICE_ID);
if (m_szDeviceID.IsEmpty()) {
- UUID deviceId;
- UuidCreate(&deviceId);
- RPC_CSTR szId;
- UuidToStringA(&deviceId, &szId);
- m_szDeviceID = szId;
+ m_szDeviceID = Utils_GenerateUUID();
setString(DBKEY_DEVICE_ID, m_szDeviceID);
- RpcStringFreeA(&szId);
}
m_szClientID = getMStringA(DBKEY_CLIENT_ID);
diff --git a/protocols/ICQ-WIM/src/http.cpp b/protocols/ICQ-WIM/src/http.cpp
index c5fbdbc836..1bb6c21ffc 100644
--- a/protocols/ICQ-WIM/src/http.cpp
+++ b/protocols/ICQ-WIM/src/http.cpp
@@ -20,8 +20,6 @@
#include "stdafx.h"
-#pragma comment(lib, "Rpcrt4.lib")
-
void CIcqProto::DropQueue()
{
mir_cslock lck(m_csHttpQueue);
@@ -142,13 +140,7 @@ AsyncHttpRequest::AsyncHttpRequest(IcqConnection conn, int iType, const char *sz
else if (*szUrl == '/')
m_szUrl.Insert(0, "https://u.icq.net/wim");
- GUID packetId;
- UuidCreate(&packetId);
-
- RPC_CSTR szId;
- UuidToStringA(&packetId, &szId);
- strncpy_s(m_reqId, (char*)szId, _TRUNCATE);
- RpcStringFreeA(&szId);
+ strncpy_s(m_reqId, Utils_GenerateUUID(), _TRUNCATE);
if (iType == REQUEST_POST)
AddHeader("Content-Type", "application/x-www-form-urlencoded");
diff --git a/protocols/ICQ-WIM/src/server.cpp b/protocols/ICQ-WIM/src/server.cpp
index 1135542926..2e31427eab 100644
--- a/protocols/ICQ-WIM/src/server.cpp
+++ b/protocols/ICQ-WIM/src/server.cpp
@@ -1062,15 +1062,10 @@ void CIcqProto::ShutdownSession()
void CIcqProto::StartSession()
{
- ptrA szDeviceId(getStringA("DeviceId"));
- if (szDeviceId == nullptr) {
- UUID deviceId;
- UuidCreate(&deviceId);
- RPC_CSTR szId;
- UuidToStringA(&deviceId, &szId);
- szDeviceId = mir_strdup((char*)szId);
+ CMStringA szDeviceId(getMStringA("DeviceId"));
+ if (szDeviceId.IsEmpty()) {
+ szDeviceId = Utils_GenerateUUID();
setString("DeviceId", szDeviceId);
- RpcStringFreeA(&szId);
}
int ts = TS();
diff --git a/src/mir_core/src/Windows/winutil.cpp b/src/mir_core/src/Windows/winutil.cpp
index 6320622ada..cdc0f58251 100644
--- a/src/mir_core/src/Windows/winutil.cpp
+++ b/src/mir_core/src/Windows/winutil.cpp
@@ -133,3 +133,21 @@ MIR_CORE_DLL(int) Utils_CorrectFontSize(int size)
return size * ncm.lfMessageFont.lfHeight / -12;
}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+#pragma comment(lib, "rpcrt4.lib")
+
+MIR_CORE_DLL(CMStringA) Utils_GenerateUUID()
+{
+ GUID packetId;
+ UuidCreate(&packetId);
+
+ RPC_CSTR szId;
+ UuidToStringA(&packetId, &szId);
+
+ CMStringA ret((char *)szId);
+
+ RpcStringFreeA(&szId);
+ return ret;
+}
diff --git a/src/mir_core/src/mir_core.def b/src/mir_core/src/mir_core.def
index 9ef066901d..5c192dbef0 100644
--- a/src/mir_core/src/mir_core.def
+++ b/src/mir_core/src/mir_core.def
@@ -1579,3 +1579,4 @@ _newStrW@4 @1789 NONAME
?GetPlainRtf@CCtrlRichEdit@@QAEPAD_N@Z @1804 NONAME
?SetTooltip@CCtrlMButton@@QAEXPBD@Z @1805 NONAME
_db_event_delivered@8 @1806 NONAME
+?Utils_GenerateUUID@@YG?AV?$CMStringT@DV?$ChTraitsCRT@D@@@@XZ @1807 NONAME
diff --git a/src/mir_core/src/mir_core64.def b/src/mir_core/src/mir_core64.def
index 4e1ba01b17..ee09358441 100644
--- a/src/mir_core/src/mir_core64.def
+++ b/src/mir_core/src/mir_core64.def
@@ -1579,3 +1579,4 @@ newStrW @1789 NONAME
?GetPlainRtf@CCtrlRichEdit@@QEAAPEAD_N@Z @1804 NONAME
?SetTooltip@CCtrlMButton@@QEAAXPEBD@Z @1805 NONAME
db_event_delivered @1806 NONAME
+?Utils_GenerateUUID@@YA?AV?$CMStringT@DV?$ChTraitsCRT@D@@@@XZ @1807 NONAME