mirror of https://github.com/aria2/aria2
fix some none portable code that was using GCC impl details
parent
38426a0075
commit
18fdffdf17
|
@ -68,10 +68,18 @@ void DHKeyExchange::init(const unsigned char* prime, size_t primeBits,
|
||||||
generator_ = n(gen.c_str(), gen.length());
|
generator_ = n(gen.c_str(), gen.length());
|
||||||
|
|
||||||
size_t pbytes = (privateKeyBits + 7) / 8;
|
size_t pbytes = (privateKeyBits + 7) / 8;
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
// MSVC will not compile dynamic arrays
|
||||||
|
unsigned char* buf = new unsigned char[pbytes];
|
||||||
|
#else
|
||||||
unsigned char buf[pbytes];
|
unsigned char buf[pbytes];
|
||||||
|
#endif
|
||||||
util::generateRandomData(buf, pbytes);
|
util::generateRandomData(buf, pbytes);
|
||||||
privateKey_ = n(reinterpret_cast<char*>(buf), pbytes);
|
privateKey_ = n(reinterpret_cast<char*>(buf), pbytes);
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
// clean up memory
|
||||||
|
delete[] buf;
|
||||||
|
#endif
|
||||||
keyLength_ = (primeBits + 7) / 8;
|
keyLength_ = (primeBits + 7) / 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ SocketRecvBuffer::~SocketRecvBuffer() = default;
|
||||||
|
|
||||||
ssize_t SocketRecvBuffer::recv()
|
ssize_t SocketRecvBuffer::recv()
|
||||||
{
|
{
|
||||||
size_t n = std::end(buf_) - last_;
|
size_t n = (buf_.data() + 16_k) - last_;
|
||||||
if (n == 0) {
|
if (n == 0) {
|
||||||
A2_LOG_DEBUG("Buffer full");
|
A2_LOG_DEBUG("Buffer full");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue