summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPavel Vinogradov2021-09-25 16:38:18 -0400
committerPavel Vinogradov2021-09-25 16:45:26 -0400
commit9b422154fc981c2f8d95038105f9870eeb6719a6 (patch)
treea73d9ed7c874774937b2fd6ba7434910468d1e19 /net
parent352ab72ae272f3d047cd3780720dfb9741975bc5 (diff)
net/i2pd: uses cmake from now on + more options
Diffstat (limited to 'net')
-rwxr-xr-xnet/i2pd/BUILD17
-rwxr-xr-xnet/i2pd/CONFIGURE37
-rwxr-xr-xnet/i2pd/DEPENDS12
-rwxr-xr-xnet/i2pd/DETAILS1
-rw-r--r--net/i2pd/HISTORY5
-rwxr-xr-xnet/i2pd/INSTALL5
-rwxr-xr-xnet/i2pd/PRE_BUILD10
-rw-r--r--net/i2pd/gcc46.patch391
-rw-r--r--net/i2pd/gcc46_upnp.patch31
9 files changed, 63 insertions, 446 deletions
diff --git a/net/i2pd/BUILD b/net/i2pd/BUILD
index 97330af169..e2fb09cde3 100755
--- a/net/i2pd/BUILD
+++ b/net/i2pd/BUILD
@@ -6,8 +6,15 @@ if spell_ok gcc && is_version_less $(installed_version gcc) 4.7; then
LDFLAGS="-lboost_chrono ${LDFLAGS}"
fi &&
-make $OPTS all api api_client &&
-
-if list_find "$LDFLAGS" "-s"; then
- make strip
-fi
+cd build &&
+prepare_cmake_flags &&
+cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_ROOT}/usr \
+ -DCMAKE_INSTALL_SYSCONFDIR=${INSTALL_ROOT}/etc \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_BINDIR=sbin \
+ -DCMAKE_BUILD_TYPE=${CM_BUILD_TYPE} \
+ -DCMAKE_C_FLAGS_RELEASE="${CFLAGS}" \
+ -DCMAKE_CXX_FLAGS_RELEASE="${CXXFLAGS}" \
+ ${OPTS} . &&
+cmake --build .
diff --git a/net/i2pd/CONFIGURE b/net/i2pd/CONFIGURE
index 52611f5ed5..ba47ca2a4a 100755
--- a/net/i2pd/CONFIGURE
+++ b/net/i2pd/CONFIGURE
@@ -1,7 +1,36 @@
+source "${GRIMOIRE}/CMAKE_CONFIGURE" &&
+
+list_remove I2PD_OPTS "USE_MESHNET=yes" &&
+list_remove I2PD_OPTS "USE_MESHNET=no" &&
+list_remove I2PD_OPTS "WEBSOCKETS=yes" &&
+list_remove I2PD_OPTS "WEBSOCKETS=no" &&
+
+config_query_option I2PD_OPTS "Enable AES-NI support?" n \
+ "-DWITH_AESNI=ON" \
+ "-DWITH_AESNI=OFF" &&
+
+config_query_option I2PD_OPTS "Enable AVX support?" n \
+ "-DWITH_AVX=ON" \
+ "-DWITH_AVX=OFF" &&
+
+config_query_option I2PD_OPTS "Enable hardening support?" n \
+ "-DWITH_HARDENING=ON" \
+ "-DWITH_HARDENING=OFF" &&
+
+config_query_option I2PD_OPTS "Build with Address Sanitizer?" n \
+ "-DWITH_ADDRSANITIZER=ON" \
+ "-DWITH_ADDRSANITIZER=OFF" &&
+
+if list_find I2PD_OPTS "-DWITH_ADDRSANITIZER=OFF"; then
+ config_query_option I2PD_OPTS "Build with Thread Sanitizer?" n \
+ "-DWITH_THREADSANITIZER=ON" \
+ "-DWITH_THREADSANITIZER=OFF"
+fi &&
+
config_query_option I2PD_OPTS "Enable MeshNet support?" n \
- "USE_MESHNET=yes" \
- "USE_MESHNET=no" &&
+ "-DWITH_MESHNET=ON" \
+ "-DWITH_MESHNET=OFF" &&
config_query_option I2PD_OPTS "Enable WebSockets support?" n \
- "WEBSOCKETS=yes" \
- "WEBSOCKETS=no"
+ "-DWITH_WEBSOCKETS=ON" \
+ "-DWITH_WEBSOCKETS=OFF"
diff --git a/net/i2pd/DEPENDS b/net/i2pd/DEPENDS
index 4fb20cc005..8347933aa8 100755
--- a/net/i2pd/DEPENDS
+++ b/net/i2pd/DEPENDS
@@ -1,4 +1,5 @@
. "${GRIMOIRE}/FUNCTIONS" &&
+source "${GRIMOIRE}/CMAKE_DEPENDS" &&
local BOOST_SUBDEPS="SYSTEM DATE_TIME FILESYSTEM PROGRAM_OPTIONS" &&
@@ -12,6 +13,11 @@ depends SSL &&
depends zlib &&
optional_depends miniupnpc \
- "USE_UPNP=yes" \
- "USE_UPNP=no" \
- "for UPnP support"
+ "-DWITH_UPNP=ON" \
+ "-DWITH_UPNP=OFF" \
+ "for UPnP support" &&
+
+optional_depends LUA \
+ "-DWITH_I2LUA=ON" \
+ "-DWITH_I2LUA=OFF" \
+ "for Lua support"
diff --git a/net/i2pd/DETAILS b/net/i2pd/DETAILS
index 4d04facf31..f72885f5c9 100755
--- a/net/i2pd/DETAILS
+++ b/net/i2pd/DETAILS
@@ -1,3 +1,4 @@
+source "${GRIMOIRE}/CMAKE_FUNCTIONS"
SPELL=i2pd
VERSION=2.39.0
SOURCE=${SPELL}-${VERSION}.tar.gz
diff --git a/net/i2pd/HISTORY b/net/i2pd/HISTORY
index c997b8145d..7afc24ad9e 100644
--- a/net/i2pd/HISTORY
+++ b/net/i2pd/HISTORY
@@ -1,3 +1,8 @@
+2021-09-25 Pavel Vinogradov <public@sourcemage.org>
+ * BUILD, cONFIGURE, DETAILS, INSTALL: converted to cmake, added options for
+ AES-NI, AVX, hardening, sanitizers; optionally depends on LUA
+ * PRE_BUILD, gcc46{,_upnp}.patch: dropped, don't work in this version
+
2021-09-23 Pavel Vinogradov <public@sourcemage.org>
* DETAILS: version 2.39.0
diff --git a/net/i2pd/INSTALL b/net/i2pd/INSTALL
index 05aa15d94d..601e93ea78 100755
--- a/net/i2pd/INSTALL
+++ b/net/i2pd/INSTALL
@@ -1,5 +1,6 @@
-install -vm 755 i2pd "${INSTALL_ROOT}/usr/sbin/i2pd" &&
-install -vm 755 libi2pd.so libi2pdclient.so "${INSTALL_ROOT}/usr/lib" &&
+default_install &&
+
+cd ${SOURCE_DIRECTORY} &&
install -vm 755 -d "${INSTALL_ROOT}/usr/share/i2pd" &&
cp -vr contrib/certificates "${INSTALL_ROOT}/usr/share/i2pd" &&
diff --git a/net/i2pd/PRE_BUILD b/net/i2pd/PRE_BUILD
deleted file mode 100755
index f1af7bd336..0000000000
--- a/net/i2pd/PRE_BUILD
+++ /dev/null
@@ -1,10 +0,0 @@
-default_pre_build &&
-cd "${SOURCE_DIRECTORY}" &&
-
-if spell_ok gcc && is_version_less $(installed_version gcc) 4.7; then
- patch -p0 < "${SPELL_DIRECTORY}/gcc46.patch" &&
-
- if is_depends_enabled ${SPELL} miniupnpc; then
- patch -p0 < "${SPELL_DIRECTORY}/gcc46_upnp.patch"
- fi
-fi
diff --git a/net/i2pd/gcc46.patch b/net/i2pd/gcc46.patch
deleted file mode 100644
index b49a639ce5..0000000000
--- a/net/i2pd/gcc46.patch
+++ /dev/null
@@ -1,391 +0,0 @@
---- Makefile.linux.orig 2017-08-17 15:44:59.293424249 -0400
-+++ Makefile.linux 2017-08-17 15:46:10.575386368 -0400
-@@ -18,7 +18,7 @@
- else ifeq ($(shell expr match ${CXXVER} "4\.[7-9]"),3) # >= 4.7
- NEEDED_CXXFLAGS += -std=c++11 -D_GLIBCXX_USE_NANOSLEEP=1
- else ifeq ($(shell expr match ${CXXVER} "4\.6"),3) # = 4.6
-- NEEDED_CXXFLAGS += -std=c++0x
-+ NEEDED_CXXFLAGS += -std=c++0x -D_GLIBCXX_USE_NANOSLEEP=1
- else ifeq ($(shell expr match ${CXXVER} "[5-9]"),1) # gcc >= 5
- NEEDED_CXXFLAGS += -std=c++11
- LDLIBS = -latomic
---- libi2pd/Tunnel.cpp.orig 2016-10-17 00:37:40.000000000 -0400
-+++ libi2pd/Tunnel.cpp 2016-10-19 19:56:06.096526898 -0400
-@@ -406,7 +406,7 @@
-
- void Tunnels::AddTransitTunnel (std::shared_ptr<TransitTunnel> tunnel)
- {
-- if (m_Tunnels.emplace (tunnel->GetTunnelID (), tunnel).second)
-+ if (m_Tunnels.insert (make_pair(tunnel->GetTunnelID (), tunnel)).second)
- m_TransitTunnels.push_back (tunnel);
- else
- LogPrint (eLogError, "Tunnel: tunnel with id ", tunnel->GetTunnelID (), " already exists");
-@@ -808,7 +808,7 @@
-
- void Tunnels::AddInboundTunnel (std::shared_ptr<InboundTunnel> newTunnel)
- {
-- if (m_Tunnels.emplace (newTunnel->GetTunnelID (), newTunnel).second)
-+ if (m_Tunnels.insert (make_pair(newTunnel->GetTunnelID (), newTunnel)).second)
- {
- m_InboundTunnels.push_back (newTunnel);
- auto pool = newTunnel->GetTunnelPool ();
---- libi2pd/TunnelPool.h.orig
-+++ libi2pd/TunnelPool.h
-@@ -123,8 +123,8 @@
- std::mutex m_CustomPeerSelectorMutex;
- ITunnelPeerSelector * m_CustomPeerSelector;
-
-- uint64_t m_MinLatency=0; // if > 0 this tunnel pool will try building tunnels with minimum latency by ms
-- uint64_t m_MaxLatency=0; // if > 0 this tunnel pool will try building tunnels with maximum latency by ms
-+ uint64_t m_MinLatency; // if > 0 this tunnel pool will try building tunnels with minimum latency by ms
-+ uint64_t m_MaxLatency; // if > 0 this tunnel pool will try building tunnels with maximum latency by ms
-
- public:
-
---- libi2pd/TunnelPool.cpp.orig
-+++ libi2pd/TunnelPool.cpp
-@@ -14,6 +14,12 @@
- #include "Event.h"
- #endif
-
-+template<typename T> struct decltype_t {
-+ typedef T type;
-+};
-+
-+#define DECLTYPE(expr) decltype_t<decltype(expr)>::type
-+
- namespace i2p
- {
- namespace tunnel
-@@ -22,7 +28,7 @@
- TunnelPool::TunnelPool (int numInboundHops, int numOutboundHops, int numInboundTunnels, int numOutboundTunnels):
- m_NumInboundHops (numInboundHops), m_NumOutboundHops (numOutboundHops),
- m_NumInboundTunnels (numInboundTunnels), m_NumOutboundTunnels (numOutboundTunnels), m_IsActive (true),
-- m_CustomPeerSelector(nullptr)
-+ m_CustomPeerSelector(nullptr), m_MinLatency(0), m_MaxLatency(0)
- {
- }
-
-@@ -326,7 +332,7 @@
- buf += 4;
- uint64_t timestamp = bufbe64toh (buf);
-
-- decltype(m_Tests)::mapped_type test;
-+ DECLTYPE(m_Tests)::mapped_type test;
- bool found = false;
- {
- std::unique_lock<std::mutex> l(m_TestsMutex);
---- libi2pd/Event.h.orig 2017-02-16 13:28:19.692773653 -0500
-+++ libi2pd/Event.h 2017-02-16 13:30:19.903805378 -0500
-@@ -25,6 +25,7 @@
- class EventCore
- {
- public:
-+ EventCore(): m_listener(nullptr) {}
- void QueueEvent(const EventType & ev);
- void CollectEvent(const std::string & type, const std::string & ident, uint64_t val);
- void SetListener(EventListener * l);
-@@ -39,7 +40,7 @@
- uint64_t Val;
- };
- std::map<std::string, CollectedEvent> m_collected;
-- EventListener * m_listener = nullptr;
-+ EventListener * m_listener;
- };
- #ifdef WITH_EVENTS
- extern EventCore core;
- extern EventCore core;
---- libi2pd/Log.cpp.orig
-+++ libi2pd/Log.cpp
-@@ -31,12 +31,12 @@
- static const char *LogMsgColors[] = { "", "", "", "", "", "" };
- #else /* UNIX */
- static const char *LogMsgColors[] = {
-- [eLogNone] = "\033[0m", /* reset */
-- [eLogError] = "\033[1;31m", /* red */
-- [eLogWarning] = "\033[1;33m", /* yellow */
-- [eLogInfo] = "\033[1;36m", /* cyan */
-- [eLogDebug] = "\033[1;34m", /* blue */
-- [eNumLogLevels] = "\033[0m", /* reset */
-+ "\033[0m", /* reset */
-+ "\033[1;31m", /* red */
-+ "\033[1;33m", /* yellow */
-+ "\033[1;36m", /* cyan */
-+ "\033[1;34m", /* blue */
-+ "\033[0m", /* reset */
- };
- #endif
-
---- libi2pd_client/HTTPProxy.h.orig 2017-12-04 13:40:32.000000000 -0500
-+++ libi2pd_client/HTTPProxy.h 2017-12-07 13:14:26.956591634 -0500
-@@ -7,8 +7,6 @@
- {
- public:
- HTTPProxy(const std::string& name, const std::string& address, int port, const std::string & outproxy, bool addresshelper, std::shared_ptr<i2p::client::ClientDestination> localDestination);
-- HTTPProxy(const std::string& name, const std::string& address, int port, std::shared_ptr<i2p::client::ClientDestination> localDestination = nullptr) :
-- HTTPProxy(name, address, port, "", true, localDestination) {} ;
- ~HTTPProxy() {};
-
- std::string GetOutproxyURL() const { return m_OutproxyUrl; }
---- libi2pd/Ed25519.h.orig 2018-06-26 10:46:01.000000000 -0700
-+++ libi2pd/Ed25519.h 2018-06-27 16:24:25.365149870 -0700
-@@ -10,14 +10,14 @@
- {
- struct EDDSAPoint
- {
-- BIGNUM * x {nullptr};
-- BIGNUM * y {nullptr};
-- BIGNUM * z {nullptr};
-- BIGNUM * t {nullptr}; // projective coordinates
-+ BIGNUM * x;
-+ BIGNUM * y;
-+ BIGNUM * z;
-+ BIGNUM * t; // projective coordinates
-
-- EDDSAPoint () {}
-- EDDSAPoint (const EDDSAPoint& other) { *this = other; }
-- EDDSAPoint (EDDSAPoint&& other) { *this = std::move (other); }
-+ EDDSAPoint (): x(nullptr), y(nullptr), z(nullptr), t(nullptr) {}
-+ EDDSAPoint (const EDDSAPoint& other): x(nullptr), y(nullptr), z(nullptr), t(nullptr) { *this = other; }
-+ EDDSAPoint (EDDSAPoint&& other): x(nullptr), y(nullptr), z(nullptr), t(nullptr) { *this = std::move (other); }
- EDDSAPoint (BIGNUM * x1, BIGNUM * y1, BIGNUM * z1 = nullptr, BIGNUM * t1 = nullptr)
- : x(x1)
- , y(y1)
---- libi2pd/NTCPSession.cpp.orig 2018-06-26 10:46:01.000000000 -0700
-+++ libi2pd/NTCPSession.cpp 2018-07-23 21:11:18.917335635 -0700
-@@ -183,7 +183,7 @@
- }
- }
- // TODO: check for number of pending keys
-- auto work = new NTCPWork{shared_from_this()};
-+ auto work = new NTCPWork({{shared_from_this()}});
- m_Server.Work(work->session, [work, this]() -> std::function<void(void)> {
- if (!work->session->m_DHKeysPair)
- work->session->m_DHKeysPair = transports.GetNextDHKeysPair ();
-@@ -249,7 +249,7 @@
- }
- else
- {
-- auto work = new NTCPWork{shared_from_this()};
-+ auto work = new NTCPWork({{shared_from_this()}});
- m_Server.Work(work->session, [work, this]() -> std::function<void(void)> {
- work->session->CreateAESKey (work->session->m_Establisher->phase2.pubKey);
- return std::bind(&NTCPSession::HandlePhase2, work->session, work);
---- libi2pd_client/I2PService.h.orig 2018-06-26 10:46:01.000000000 -0700
-+++ libi2pd_client/I2PService.h 2018-07-23 21:14:32.314300936 -0700
-@@ -70,7 +70,7 @@
- bool m_ReadyTimerTriggered;
- uint32_t m_ConnectTimeout;
-
-- const size_t NEVER_TIMES_OUT = 0;
-+ const size_t NEVER_TIMES_OUT;
-
- public:
- bool isUpdated; // transient, used during reload only
---- libi2pd_client/I2PService.cpp.orig 2018-06-26 10:46:01.000000000 -0700
-+++ libi2pd_client/I2PService.cpp 2018-07-23 21:15:59.847520946 -0700
-@@ -16,7 +16,8 @@
- m_ReadyTimer(m_LocalDestination->GetService()),
- m_ReadyTimerTriggered(false),
- m_ConnectTimeout(0),
-- isUpdated (true)
-+ isUpdated (true),
-+ NEVER_TIMES_OUT(0)
- {
- m_LocalDestination->Acquire ();
- }
-@@ -26,7 +26,8 @@
- m_LocalDestination (i2p::client::context.CreateNewLocalDestination (false, kt)),
- m_ReadyTimer(m_LocalDestination->GetService()),
- m_ConnectTimeout(0),
-- isUpdated (true)
-+ isUpdated (true),
-+ NEVER_TIMES_OUT(0)
- {
- m_LocalDestination->Acquire ();
- }
---- libi2pd/RouterInfo.h.orig 2018-08-23 08:10:05.000000000 -0700
-+++ libi2pd/RouterInfo.h 2018-08-25 09:48:51.706887850 -0700
-@@ -92,10 +92,12 @@
-
- struct NTCP2Ext
- {
-+ NTCP2Ext(): isPublished(false), isNTCP2Only(false) {};
-+
- Tag<32> staticKey;
- Tag<16> iv;
-- bool isPublished = false;
-- bool isNTCP2Only = false;
-+ bool isPublished;
-+ bool isNTCP2Only;
- };
-
- struct Address
---- libi2pd/Blinding.h.orig 2020-02-25 09:08:50.000000000 -0800
-+++ libi2pd/Blinding.h 2020-02-26 17:03:22.152844367 -0800
-@@ -39,7 +39,7 @@
-
- std::vector<uint8_t> m_PublicKey;
- i2p::data::SigningKeyType m_SigType, m_BlindedSigType;
-- bool m_IsClientAuth = false;
-+ bool m_IsClientAuth;
- };
- }
- }
---- libi2pd/LeaseSet.h.orig 2020-02-25 09:08:50.000000000 -0800
-+++ libi2pd/LeaseSet.h 2020-02-26 17:21:50.775527499 -0800
-@@ -165,8 +165,8 @@
- private:
-
- uint8_t m_StoreType;
-- uint32_t m_PublishedTimestamp = 0;
-- bool m_IsPublic = true, m_IsPublishedEncrypted = false;
-+ uint32_t m_PublishedTimestamp;
-+ bool m_IsPublic, m_IsPublishedEncrypted;
- std::shared_ptr<i2p::crypto::Verifier> m_TransientVerifier;
- CryptoKeyType m_EncryptionType;
- std::shared_ptr<i2p::crypto::CryptoKeyEncryptor> m_Encryptor; // for standardLS2
---- libi2pd/LeaseSet.cpp.orig 2020-02-25 09:08:50.000000000 -0800
-+++ libi2pd/LeaseSet.cpp 2020-02-26 17:20:39.170099671 -0800
-@@ -252,7 +252,7 @@
- }
-
- LeaseSet2::LeaseSet2 (uint8_t storeType, const uint8_t * buf, size_t len, bool storeLeases, CryptoKeyType preferredCrypto):
-- LeaseSet (storeLeases), m_StoreType (storeType), m_EncryptionType (preferredCrypto)
-+ LeaseSet (storeLeases), m_StoreType (storeType), m_EncryptionType (preferredCrypto), m_PublishedTimestamp (0), m_IsPublic (true), m_IsPublishedEncrypted (false)
- {
- SetBuffer (buf, len);
- if (storeType == NETDB_STORE_TYPE_ENCRYPTED_LEASESET2)
-@@ -263,7 +263,7 @@
-
- LeaseSet2::LeaseSet2 (const uint8_t * buf, size_t len, std::shared_ptr<const BlindedPublicKey> key,
- const uint8_t * secret, CryptoKeyType preferredCrypto):
-- LeaseSet (true), m_StoreType (NETDB_STORE_TYPE_ENCRYPTED_LEASESET2), m_EncryptionType (preferredCrypto)
-+ LeaseSet (true), m_StoreType (NETDB_STORE_TYPE_ENCRYPTED_LEASESET2), m_EncryptionType (preferredCrypto), m_PublishedTimestamp (0), m_IsPublic (true), m_IsPublishedEncrypted (false)
- {
- ReadFromBufferEncrypted (buf, len, key, secret);
- }
---- libi2pd/RouterContext.h.orig 2020-02-25 09:08:50.000000000 -0800
-+++ libi2pd/RouterContext.h 2020-02-26 17:25:18.440768256 -0800
-@@ -5,7 +5,7 @@
- #include <string>
- #include <memory>
- #include <mutex>
--#include <chrono>
-+#include <boost/chrono.hpp>
- #include <boost/asio.hpp>
- #include "Identity.h"
- #include "RouterInfo.h"
-@@ -142,7 +142,7 @@
- std::shared_ptr<i2p::crypto::CryptoKeyDecryptor> m_Decryptor;
- uint64_t m_LastUpdateTime; // in seconds
- bool m_AcceptsTunnels, m_IsFloodfill;
-- std::chrono::time_point<std::chrono::steady_clock> m_StartupTime;
-+ boost::chrono::time_point<boost::chrono::steady_clock> m_StartupTime;
- uint64_t m_BandwidthLimit; // allowed bandwidth
- int m_ShareRatio;
- RouterStatus m_Status;
---- libi2pd/RouterContext.cpp.orig 2020-02-25 09:08:50.000000000 -0800
-+++ libi2pd/RouterContext.cpp 2020-02-26 17:26:07.070058807 -0800
-@@ -27,7 +27,7 @@
- void RouterContext::Init ()
- {
- srand (i2p::util::GetMillisecondsSinceEpoch () % 1000);
-- m_StartupTime = std::chrono::steady_clock::now();
-+ m_StartupTime = boost::chrono::steady_clock::now();
-
- if (!Load ())
- CreateNewRouter ();
-@@ -717,7 +717,7 @@
-
- uint32_t RouterContext::GetUptime () const
- {
-- return std::chrono::duration_cast<std::chrono::seconds> (std::chrono::steady_clock::now() - m_StartupTime).count ();
-+ return boost::chrono::duration_cast<boost::chrono::seconds> (boost::chrono::steady_clock::now() - m_StartupTime).count ();
- }
-
- bool RouterContext::Decrypt (const uint8_t * encrypted, uint8_t * data, BN_CTX * ctx) const
---- libi2pd/ECIESX25519AEADRatchetSession.h.orig 2020-02-25 09:08:50.000000000 -0800
-+++ libi2pd/ECIESX25519AEADRatchetSession.h 2020-02-26 18:05:27.839321012 -0800
-@@ -115,10 +115,10 @@
- uint8_t m_H[32], m_CK[64] /* [chainkey, key] */, m_RemoteStaticKey[32];
- uint8_t m_Aepk[32]; // Alice's ephemeral keys TODO: for incoming only
- i2p::crypto::X25519Keys m_EphemeralKeys;
-- SessionState m_State = eSessionStateNew;
-- uint64_t m_LastActivityTimestamp = 0; // incoming
-+ SessionState m_State;
-+ uint64_t m_LastActivityTimestamp; // incoming
- RatchetTagSet m_SendTagset, m_ReceiveTagset;
-- int m_NumReceiveTags = 0;
-+ int m_NumReceiveTags;
- std::unique_ptr<i2p::data::IdentHash> m_Destination;// TODO: might not need it
- };
- }
---- libi2pd/ECIESX25519AEADRatchetSession.cpp.orig 2020-02-25 09:08:50.000000000 -0800
-+++ libi2pd/ECIESX25519AEADRatchetSession.cpp 2020-02-26 18:08:10.465397719 -0800
-@@ -61,7 +61,7 @@
- }
-
- ECIESX25519AEADRatchetSession::ECIESX25519AEADRatchetSession (GarlicDestination * owner):
-- GarlicRoutingSession (owner, true)
-+ GarlicRoutingSession (owner, true), m_State(eSessionStateNew), m_LastActivityTimestamp(0), m_NumReceiveTags(0)
- {
- ResetKeys ();
- }
---- libi2pd/Garlic.cpp.orig 2020-02-25 09:08:50.000000000 -0800
-+++ libi2pd/Garlic.cpp 2020-02-26 18:22:34.385236705 -0800
-@@ -959,7 +959,7 @@
-
- void GarlicDestination::AddECIESx25519SessionTag (int index, uint64_t tag, ECIESX25519AEADRatchetSessionPtr session)
- {
-- m_ECIESx25519Tags.emplace (tag, ECIESX25519AEADRatchetIndexSession{index, session, i2p::util::GetSecondsSinceEpoch ()});
-+ m_ECIESx25519Tags.insert({tag, ECIESX25519AEADRatchetIndexSession{index, session, i2p::util::GetSecondsSinceEpoch ()}});
- }
-
- void GarlicDestination::AddECIESx25519Session (const uint8_t * staticKey, ECIESX25519AEADRatchetSessionPtr session)
-@@ -976,7 +976,7 @@
- return;
- }
- }
-- m_ECIESx25519Sessions.emplace (staticKeyTag, session);
-+ m_ECIESx25519Sessions.insert({staticKeyTag, session});
- }
-
- }
---- libi2pd/Timestamp.cpp.orig 2020-02-25 09:08:50.000000000 -0800
-+++ libi2pd/Timestamp.cpp 2020-02-26 18:38:19.787128311 -0800
-@@ -187,7 +187,7 @@
-
- void GetDateString (uint64_t timestamp, char * date)
- {
-- using clock = std::chrono::system_clock;
-+ typedef std::chrono::system_clock clock;
- auto t = clock::to_time_t (clock::time_point (std::chrono::seconds(timestamp)));
- struct tm tm;
- #ifdef _WIN32
---- libi2pd/Identity.h.orig 2020-02-25 09:08:50.000000000 -0800
-+++ libi2pd/Identity.h 2020-02-27 14:45:08.012926508 -0800
-@@ -135,9 +135,9 @@
- {
- public:
-
-- PrivateKeys () = default;
-- PrivateKeys (const PrivateKeys& other) { *this = other; };
-- PrivateKeys (const Keys& keys) { *this = keys; };
-+ PrivateKeys (): m_TransientSignatureLen(0), m_TransientSigningPrivateKeyLen(0) {};
-+ PrivateKeys (const PrivateKeys& other): m_TransientSignatureLen(0), m_TransientSigningPrivateKeyLen(0) { *this = other; };
-+ PrivateKeys (const Keys& keys): m_TransientSignatureLen(0), m_TransientSigningPrivateKeyLen(0) { *this = keys; };
- PrivateKeys& operator=(const Keys& keys);
- PrivateKeys& operator=(const PrivateKeys& other);
- ~PrivateKeys () = default;
-@@ -182,8 +182,8 @@
- uint8_t m_SigningPrivateKey[128]; // assume private key doesn't exceed 128 bytes
- mutable std::unique_ptr<i2p::crypto::Signer> m_Signer;
- std::vector<uint8_t> m_OfflineSignature; // non zero length, if applicable
-- size_t m_TransientSignatureLen = 0;
-- size_t m_TransientSigningPrivateKeyLen = 0;
-+ size_t m_TransientSignatureLen;
-+ size_t m_TransientSigningPrivateKeyLen;
- };
-
- // kademlia
diff --git a/net/i2pd/gcc46_upnp.patch b/net/i2pd/gcc46_upnp.patch
deleted file mode 100644
index a5c3c9e39c..0000000000
--- a/net/i2pd/gcc46_upnp.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- daemon/UPnP.h.orig 2016-10-17 00:37:40.000000000 -0400
-+++ daemon/UPnP.h 2016-10-19 20:56:18.628270468 -0400
-@@ -60,7 +60,7 @@
- std::mutex m_StartedMutex;
- boost::asio::io_service m_Service;
- boost::asio::deadline_timer m_Timer;
-- bool m_upnpUrlsInitialized=false;
-+ bool m_upnpUrlsInitialized;
- struct UPNPUrls m_upnpUrls;
- struct IGDdatas m_upnpData;
-
-@@ -65,7 +65,7 @@
- struct IGDdatas m_upnpData;
-
- // For miniupnpc
-- struct UPNPDev * m_Devlist = 0;
-+ struct UPNPDev * m_Devlist;
- char m_NetworkAddr[64];
- char m_externalIPAddress[40];
- };
---- daemon/UPnP.cpp.orig 2016-10-17 00:37:40.000000000 -0400
-+++ daemon/UPnP.cpp 2016-10-19 21:02:23.135699101 -0400
-@@ -22,7 +22,7 @@
- {
- namespace transport
- {
-- UPnP::UPnP () : m_IsRunning(false), m_Thread (nullptr), m_Timer (m_Service)
-+ UPnP::UPnP () : m_IsRunning(false), m_Thread (nullptr), m_Timer (m_Service), m_Devlist(0), m_upnpUrlsInitialized(false)
- {
- }
-