--- eiskaltdcpp-2.2.10.orig/dcpp/CryptoManager.cpp +++ eiskaltdcpp-2.2.10/dcpp/CryptoManager.cpp @@ -101,10 +101,15 @@ CryptoManager::CryptoManager() }; if(dh) { - dh->p = BN_bin2bn(dh4096_p, sizeof(dh4096_p), 0); - dh->g = BN_bin2bn(dh4096_g, sizeof(dh4096_g), 0); - - if (!dh->p || !dh->g) { + BIGNUM *p = BN_bin2bn(dh4096_p, sizeof(dh4096_p), 0); + BIGNUM *g = BN_bin2bn(dh4096_g, sizeof(dh4096_g), 0); +#if OPENSSL_VERSION_NUMBER < 0x10100000L + dh->p = p; + dh->g = g; +#else + DH_set0_pqg(dh, p, NULL, g); +#endif + if(!p || !g) { dh.reset(); } else { SSL_CTX_set_options(serverContext, SSL_OP_SINGLE_DH_USE); --- eiskaltdcpp-2.2.10.orig/dcpp/SSLSocket.cpp +++ eiskaltdcpp-2.2.10/dcpp/SSLSocket.cpp @@ -37,6 +37,13 @@ void SSLSocket::connect(const string& aI waitConnected(0); } +#if OPENSSL_VERSION_NUMBER < 0x10002000L +static inline int SSL_is_server(SSL *s) +{ + return s->server; +} +#endif + bool SSLSocket::waitConnected(uint32_t millis) { if(!ssl) { if(!Socket::waitConnected(millis)) { @@ -54,9 +61,9 @@ bool SSLSocket::waitConnected(uint32_t m } while(true) { - int ret = ssl->server?SSL_accept(ssl):SSL_connect(ssl); + int ret = SSL_is_server(ssl)?SSL_accept(ssl):SSL_connect(ssl); if(ret == 1) { - dcdebug("Connected to SSL server using %s as %s\n", SSL_get_cipher(ssl), ssl->server?"server":"client"); + dcdebug("Connected to SSL server using %s as %s\n", SSL_get_cipher(ssl), SSL_is_server(ssl)?"server":"client"); return true; } if(!waitWant(ret, millis)) {