add DEBUG switch and fix win build error
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
|
||||
#include "CurlHttpClient.h"
|
||||
#include "Utils.h"
|
||||
#include <cassert>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
@@ -124,6 +125,10 @@ CurlHttpClient::makeRequest(const HttpRequest &request) {
|
||||
curl_easy_setopt(curlHandle_, CURLOPT_WRITEFUNCTION, recvBody);
|
||||
setCUrlProxy(curlHandle_, proxy());
|
||||
|
||||
if (GetEnv("DEBUG") == "sdk") {
|
||||
curl_easy_setopt(curlHandle_, CURLOPT_VERBOSE, 1L);
|
||||
}
|
||||
|
||||
CURLcode res = curl_easy_perform(curlHandle_);
|
||||
switch (res) {
|
||||
case CURLE_OK: {
|
||||
|
||||
@@ -44,7 +44,7 @@ std::string HmacSha1Signer::generate(const std::string & src,
|
||||
}my_blob;
|
||||
|
||||
DWORD kbLen = sizeof(my_blob) + secret.size();
|
||||
my_blob * kb = reinterpret_cast<my_blob *>LocalAlloc(LPTR, kbLen);
|
||||
my_blob * kb = (my_blob *)LocalAlloc(LPTR, kbLen);
|
||||
kb->hdr.bType = PLAINTEXTKEYBLOB;
|
||||
kb->hdr.bVersion = CUR_BLOB_VERSION;
|
||||
kb->hdr.reserved = 0;
|
||||
@@ -63,12 +63,10 @@ std::string HmacSha1Signer::generate(const std::string & src,
|
||||
|
||||
CryptAcquireContext(&hProv, NULL,
|
||||
MS_ENHANCED_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_NEWKEYSET);
|
||||
CryptImportKey(hProv,
|
||||
reinterpret_cast<BYTE*>(kb), kbLen, 0, CRYPT_IPSEC_HMAC_KEY, &hKey);
|
||||
CryptImportKey(hProv, (BYTE*)kb, kbLen, 0, CRYPT_IPSEC_HMAC_KEY, &hKey);
|
||||
CryptCreateHash(hProv, CALG_HMAC, hKey, 0, &hHmacHash);
|
||||
CryptSetHashParam(hHmacHash,
|
||||
HP_HMAC_INFO, reinterpret_cast<BYTE*>&HmacInfo, 0);
|
||||
CryptHashData(hHmacHash, reinterpret_cast<BYTE*>(src.c_str()), src.size(), 0);
|
||||
CryptSetHashParam(hHmacHash, HP_HMAC_INFO, (BYTE*)&HmacInfo, 0);
|
||||
CryptHashData(hHmacHash, (BYTE*)(src.c_str()), src.size(), 0);
|
||||
CryptGetHashParam(hHmacHash, HP_HASHVAL, pbHash, &dwDataLen, 0);
|
||||
|
||||
LocalFree(kb);
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "Utils.h"
|
||||
#include <sstream>
|
||||
#include <algorithm>
|
||||
#include <stdlib.h>
|
||||
#ifdef _WIN32
|
||||
#include <Windows.h>
|
||||
#else
|
||||
@@ -31,9 +32,9 @@ std::string AlibabaCloud::GenerateUuid() {
|
||||
char *data;
|
||||
UUID uuidhandle;
|
||||
UuidCreate(&uuidhandle);
|
||||
UuidToString(&uuidhandle, reinterpret_cast<RPC_CSTR*>&data);
|
||||
UuidToString(&uuidhandle, reinterpret_cast<RPC_CSTR*>(&data));
|
||||
std::string uuid(data);
|
||||
RpcStringFree(reinterpret_cast<RPC_CSTR*>&data);
|
||||
RpcStringFree(reinterpret_cast<RPC_CSTR*>(&data));
|
||||
return uuid;
|
||||
#else
|
||||
uuid_t uu;
|
||||
@@ -72,7 +73,7 @@ std::string AlibabaCloud::ComputeContentMD5(const char * data, size_t size) {
|
||||
|
||||
CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT);
|
||||
CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash);
|
||||
CryptHashData(hHash, reinterpret_cast<BYTE*>(data), size, 0);
|
||||
CryptHashData(hHash, (BYTE*)(data), size, 0);
|
||||
CryptGetHashParam(hHash, HP_HASHVAL, pbHash, &dwDataLen, 0);
|
||||
|
||||
CryptDestroyHash(hHash);
|
||||
@@ -186,3 +187,26 @@ std::string AlibabaCloud::canonicalizedHeaders(
|
||||
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
std::string AlibabaCloud::GetEnv(const std::string env) {
|
||||
#ifdef _WIN32
|
||||
char* buf = nullptr;
|
||||
size_t sz = 0;
|
||||
if (_dupenv_s(&buf, &sz, env.c_str()) == 0 && buf != nullptr) {
|
||||
std::string var(buf);
|
||||
free(buf);
|
||||
return var;
|
||||
} else {
|
||||
if (buf) {
|
||||
free(buf);
|
||||
}
|
||||
return std::string();
|
||||
}
|
||||
#else
|
||||
char* var = getenv(env.c_str());
|
||||
if (var) {
|
||||
return std::string(var);
|
||||
}
|
||||
return std::string();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -33,5 +33,6 @@ std::string UrlDecode(const std::string &src);
|
||||
std::string canonicalizedQuery(const std::map <std::string,
|
||||
std::string> ¶ms);
|
||||
std::string canonicalizedHeaders(const HttpMessage::HeaderCollection &headers);
|
||||
std::string GetEnv(const std::string env);
|
||||
} // namespace AlibabaCloud
|
||||
#endif // CORE_SRC_UTILS_H_
|
||||
|
||||
Reference in New Issue
Block a user