From 7f1f391faf93d216bfe651131a95d70961f8ffa2 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sat, 8 Dec 2018 15:55:53 +0300 Subject: PluginUpdater: added OS version detect --- plugins/PluginUpdater/src/Utils.cpp | 16 ++++++-- src/mir_core/src/winver.cpp | 81 ------------------------------------- 2 files changed, 12 insertions(+), 85 deletions(-) diff --git a/plugins/PluginUpdater/src/Utils.cpp b/plugins/PluginUpdater/src/Utils.cpp index 7b0b1b704c..72d9bd91c9 100644 --- a/plugins/PluginUpdater/src/Utils.cpp +++ b/plugins/PluginUpdater/src/Utils.cpp @@ -220,10 +220,18 @@ bool ParseHashes(const wchar_t *ptszUrl, ptrW &baseUrl, SERVLIST &arHashes) bool DownloadFile(FILEURL *pFileURL, HNETLIBCONN &nlc) { - char szMirVer[1000]; + char szMirVer[100]; Miranda_GetVersionText(szMirVer, _countof(szMirVer)); - NETLIBHTTPREQUEST nlhr = {0}; + wchar_t wszOsVer[100]; + GetOSDisplayString(wszOsVer, _countof(wszOsVer)); + + CMStringA szUserAgent("Miranda "); + szUserAgent.Append(szMirVer); + szUserAgent.Append("; "); + szUserAgent.Append(_T2A(wszOsVer)); + + NETLIBHTTPREQUEST nlhr = {}; nlhr.cbSize = sizeof(nlhr); nlhr.flags = NLHRF_DUMPASTEXT | NLHRF_HTTP11 | NLHRF_PERSISTENT; nlhr.requestType = REQUEST_GET; @@ -233,7 +241,7 @@ bool DownloadFile(FILEURL *pFileURL, HNETLIBCONN &nlc) nlhr.headersCount = 4; nlhr.headers=(NETLIBHTTPHEADER*)mir_alloc(sizeof(NETLIBHTTPHEADER)*nlhr.headersCount); nlhr.headers[0].szName = "User-Agent"; - nlhr.headers[0].szValue = szMirVer; + nlhr.headers[0].szValue = szUserAgent.GetBuffer(); nlhr.headers[1].szName = "Connection"; nlhr.headers[1].szValue = "close"; nlhr.headers[2].szName = "Cache-Control"; @@ -604,7 +612,7 @@ void BackupFile(wchar_t *ptszSrcFileName, wchar_t *ptszBackFileName) ///////////////////////////////////////////////////////////////////////////////////////// -char *StrToLower(char *str) +char* StrToLower(char *str) { for (int i = 0; str[i]; i++) str[i] = tolower(str[i]); diff --git a/src/mir_core/src/winver.cpp b/src/mir_core/src/winver.cpp index e49877e5e1..2fa46787f2 100644 --- a/src/mir_core/src/winver.cpp +++ b/src/mir_core/src/winver.cpp @@ -124,90 +124,9 @@ MIR_CORE_DLL(BOOL) IsScreenSaverRunning(void) ////////////////////////////////////////////////////////////////////////////////////////////////////// -#ifndef VER_SUITE_WH_SERVER -#define VER_SUITE_WH_SERVER 0x00008000 -#endif - -#ifndef PRODUCT_ULTIMATE -#define PRODUCT_UNDEFINED 0x00000000 -#define PRODUCT_ULTIMATE 0x00000001 -#define PRODUCT_HOME_BASIC 0x00000002 -#define PRODUCT_HOME_PREMIUM 0x00000003 -#define PRODUCT_ENTERPRISE 0x00000004 -#define PRODUCT_HOME_BASIC_N 0x00000005 -#define PRODUCT_BUSINESS 0x00000006 -#define PRODUCT_STANDARD_SERVER 0x00000007 -#define PRODUCT_DATACENTER_SERVER 0x00000008 -#define PRODUCT_SMALLBUSINESS_SERVER 0x00000009 -#define PRODUCT_ENTERPRISE_SERVER 0x0000000A -#define PRODUCT_STARTER 0x0000000B -#define PRODUCT_DATACENTER_SERVER_CORE 0x0000000C -#define PRODUCT_STANDARD_SERVER_CORE 0x0000000D -#define PRODUCT_ENTERPRISE_SERVER_CORE 0x0000000E -#define PRODUCT_ENTERPRISE_SERVER_IA64 0x0000000F -#define PRODUCT_BUSINESS_N 0x00000010 -#define PRODUCT_WEB_SERVER 0x00000011 -#define PRODUCT_CLUSTER_SERVER 0x00000012 -#define PRODUCT_HOME_SERVER 0x00000013 -#define PRODUCT_STORAGE_EXPRESS_SERVER 0x00000014 -#define PRODUCT_STORAGE_STANDARD_SERVER 0x00000015 -#define PRODUCT_STORAGE_WORKGROUP_SERVER 0x00000016 -#define PRODUCT_STORAGE_ENTERPRISE_SERVER 0x00000017 -#define PRODUCT_SERVER_FOR_SMALLBUSINESS 0x00000018 -#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM 0x00000019 -#define PRODUCT_HOME_PREMIUM_N 0x0000001a -#define PRODUCT_ENTERPRISE_N 0x0000001b -#define PRODUCT_ULTIMATE_N 0x0000001c -#define PRODUCT_WEB_SERVER_CORE 0x0000001d -#define PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT 0x0000001e -#define PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY 0x0000001f -#define PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING 0x00000020 -#define PRODUCT_SERVER_FOUNDATION 0x00000021 -#define PRODUCT_HOME_PREMIUM_SERVER 0x00000022 -#define PRODUCT_SERVER_FOR_SMALLBUSINESS_V 0x00000023 -#define PRODUCT_STANDARD_SERVER_V 0x00000024 -#define PRODUCT_DATACENTER_SERVER_V 0x00000025 -#define PRODUCT_ENTERPRISE_SERVER_V 0x00000026 -#define PRODUCT_DATACENTER_SERVER_CORE_V 0x00000027 -#define PRODUCT_STANDARD_SERVER_CORE_V 0x00000028 -#define PRODUCT_ENTERPRISE_SERVER_CORE_V 0x00000029 -#define PRODUCT_HYPERV 0x0000002a -#define PRODUCT_STORAGE_EXPRESS_SERVER_CORE 0x0000002b -#define PRODUCT_STORAGE_STANDARD_SERVER_CORE 0x0000002c -#define PRODUCT_STORAGE_WORKGROUP_SERVER_CORE 0x0000002d -#define PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE 0x0000002e -#define PRODUCT_STARTER_N 0x0000002f -#define PRODUCT_PROFESSIONAL 0x00000030 -#define PRODUCT_PROFESSIONAL_N 0x00000031 -#define PRODUCT_SB_SOLUTION_SERVER 0x00000032 -#define PRODUCT_SERVER_FOR_SB_SOLUTIONS 0x00000033 -#define PRODUCT_STANDARD_SERVER_SOLUTIONS 0x00000034 -#define PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE 0x00000035 -#define PRODUCT_SB_SOLUTION_SERVER_EM 0x00000036 -#define PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM 0x00000037 -#define PRODUCT_SOLUTION_EMBEDDEDSERVER 0x00000038 -#define PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE 0x00000039 -#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT 0x0000003B -#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL 0x0000003C -#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC 0x0000003D -#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC 0x0000003E -#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE 0x0000003f -#define PRODUCT_CLUSTER_SERVER_V 0x00000040 -#define PRODUCT_EMBEDDED 0x00000041 -#define PRODUCT_STARTER_E 0x00000042 -#define PRODUCT_HOME_BASIC_E 0x00000043 -#define PRODUCT_HOME_PREMIUM_E 0x00000044 -#define PRODUCT_PROFESSIONAL_E 0x00000045 -#define PRODUCT_ENTERPRISE_E 0x00000046 -#define PRODUCT_ULTIMATE_E 0x00000047 -#endif #ifndef PRODUCT_CORE_N // Win8 -#define PRODUCT_CORE_N 0x00000062 -#define PRODUCT_CORE_COUNTRYSPECIFIC 0x00000063 #define PRODUCT_CORE_SINGLELANGUAGE 0x00000064 -#define PRODUCT_CORE 0x00000065 #define PRODUCT_PROFESSIONAL_WMC 0x00000067 -#define PRODUCT_UNLICENSED 0xABCDABCD #endif typedef BOOL(WINAPI *PGPI)(DWORD, DWORD, DWORD, DWORD, PDWORD); -- cgit v1.2.3