From d1f8752b7c888a385280b644bce343d73ab2cafa Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Mon, 16 Mar 2020 09:23:56 -0400 Subject: [PATCH 1/2] fix memleak in jsonrpc llarp_tcp_acceptor ticker wasn't being called so connections where not being cleaned up --- llarp/ev/ev_libuv.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/llarp/ev/ev_libuv.cpp b/llarp/ev/ev_libuv.cpp index 58088dbc20..6901fcd99b 100644 --- a/llarp/ev/ev_libuv.cpp +++ b/llarp/ev/ev_libuv.cpp @@ -304,9 +304,14 @@ namespace libuv Tick() { if(m_Accept && m_Accept->tick) + { m_Accept->tick(m_Accept); + return; + } if(m_Conn.tick) + { m_Conn.tick(&m_Conn); + } } void @@ -346,6 +351,7 @@ namespace libuv bool Server() { + uv_check_start(&m_Ticker, &OnTick); m_Accept->close = &ExplicitCloseAccept; return uv_tcp_bind(&m_Handle, m_Addr, 0) == 0 && uv_listen(Stream(), 5, &OnAccept) == 0; From 1e434c03f837e5687e90e1a04f1ff4adde3c67e0 Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Mon, 16 Mar 2020 10:04:33 -0400 Subject: [PATCH 2/2] cleanup --- llarp/ev/ev_libuv.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llarp/ev/ev_libuv.cpp b/llarp/ev/ev_libuv.cpp index 6901fcd99b..c80b060536 100644 --- a/llarp/ev/ev_libuv.cpp +++ b/llarp/ev/ev_libuv.cpp @@ -81,6 +81,7 @@ namespace libuv m_Accept->close = &ExplicitCloseAccept; m_Conn.write = nullptr; m_Conn.closed = nullptr; + m_Conn.tick = nullptr; } conn_glue(conn_glue* parent) : m_TCP(nullptr), m_Accept(nullptr) @@ -306,7 +307,6 @@ namespace libuv if(m_Accept && m_Accept->tick) { m_Accept->tick(m_Accept); - return; } if(m_Conn.tick) {