diff options
author | George Hazan <ghazan@miranda.im> | 2018-12-08 15:55:53 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2018-12-08 15:55:53 +0300 |
commit | 7f1f391faf93d216bfe651131a95d70961f8ffa2 (patch) | |
tree | 625b4f8ad0af19c3b3af6f515645d18f2ac75d25 | |
parent | 2905b7c3e14cb2c96656f0c0c0a5c21513941cc3 (diff) |
PluginUpdater: added OS version detect
-rw-r--r-- | plugins/PluginUpdater/src/Utils.cpp | 16 | ||||
-rw-r--r-- | 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);
|