From ed9542da284519ddfaa74c5f92c6ecdd1f2d76c5 Mon Sep 17 00:00:00 2001 From: Sergei Gunchenko Date: Mon, 7 Nov 2022 21:28:09 +0300 Subject: [PATCH 01/43] Pull request 458: Prevent proxy connections from outliving the corresponding upstream sockets Merge in ADGUARD-CORE-LIBS/dns-libs from fix/oproxy_crash to master Squashed commit of the following: commit d27323a7168e4f0a4e68e555eb780a4dade4e9eb Author: Sergei Gunchenko Date: Mon Nov 7 17:32:23 2022 +0200 do not do useless things commit 39765185006ee764e92b510a5708d0ccd18afa98 Author: Sergei Gunchenko Date: Mon Nov 7 17:16:52 2022 +0200 get rid of unsafe uncontrolled submit commit 5072cddbe03d3cece634eb77e7d4fff695cea372 Author: Sergei Gunchenko Date: Mon Nov 7 16:47:13 2022 +0200 Deinitialize socket factory instead of resetting commit de69f52c57120a2c04f582531b4ec4552f0f1cb7 Author: Sergei Gunchenko Date: Mon Nov 7 16:17:04 2022 +0200 minor commit e135fe04f4ddd259d7e4d297a9855a059f039fbe Author: Sergei Gunchenko Date: Mon Nov 7 16:14:26 2022 +0200 remove useless legacy logic, close proxy connections during destruction commit a1ac3bddc3a718b557259481a4a95d236115c3b3 Author: Sergei Gunchenko Date: Mon Nov 7 16:12:26 2022 +0200 minor --- net/include/dns/net/socket.h | 5 ++ net/outbound_direct_proxy.cpp | 49 +++---------- net/outbound_direct_proxy.h | 2 - net/outbound_http_proxy.cpp | 33 ++++----- net/outbound_http_proxy.h | 6 +- net/outbound_proxy.cpp | 29 +++++--- net/outbound_proxy.h | 3 +- net/outbound_socks_proxy.cpp | 129 ++++++++++++++-------------------- net/outbound_socks_proxy.h | 6 +- net/socket_factory.cpp | 45 ++++++------ proxy/dns_forwarder.cpp | 18 +++-- upstream/upstream_doh.cpp | 4 +- 12 files changed, 139 insertions(+), 190 deletions(-) diff --git a/net/include/dns/net/socket.h b/net/include/dns/net/socket.h index 50303580..41bf1992 100644 --- a/net/include/dns/net/socket.h +++ b/net/include/dns/net/socket.h @@ -111,6 +111,11 @@ class SocketFactory { SocketFactory &operator=(const SocketFactory &) = delete; + /** + * Deinitialize the factory + */ + void deinit(); + /** * Create a socket basing on the factory and provided parameters * @param parameters the socket parameters diff --git a/net/outbound_direct_proxy.cpp b/net/outbound_direct_proxy.cpp index 337391c0..491c1734 100644 --- a/net/outbound_direct_proxy.cpp +++ b/net/outbound_direct_proxy.cpp @@ -1,3 +1,5 @@ +#include + #include "outbound_direct_proxy.h" namespace ag::dns { @@ -7,31 +9,11 @@ DirectOProxy::DirectOProxy(Parameters parameters) } void DirectOProxy::reset_connections() { - std::scoped_lock l(m_guard); - - for (auto &[conn_id, conn] : m_connections) { - [[maybe_unused]] auto e = conn.socket->set_callbacks({}); - conn.parameters.loop->submit([this, conn_id = conn_id]() { - std::optional cbx; - - { - std::scoped_lock l(m_guard); - auto it = m_connections.find(conn_id); - if (it == m_connections.end()) { - return; - } - - cbx = it->second.parameters.callbacks; - if (cbx->on_close == nullptr) { - m_connections.erase(it); - } - } - - if (cbx.has_value() && cbx->on_close != nullptr) { - auto err = make_error(SocketError::AE_OUTBOUND_PROXY_ERROR, "Reset re-routed directly connection"); - cbx->on_close(cbx->arg, err); - } - }); + for (auto &[conn_id, conn] : std::exchange(m_connections, {})) { + if (conn.parameters.callbacks.on_close != nullptr) { + auto err = make_error(SocketError::AE_OUTBOUND_PROXY_ERROR, "Reset re-routed directly connection"); + conn.parameters.callbacks.on_close(conn.parameters.callbacks.arg, err); + } } } @@ -40,13 +22,11 @@ OutboundProxy::ProtocolsSet DirectOProxy::get_supported_protocols() const { } std::optional DirectOProxy::get_fd(uint32_t conn_id) const { - std::scoped_lock l(m_guard); auto it = m_connections.find(conn_id); return (it != m_connections.end()) ? it->second.socket->get_fd() : std::nullopt; } Error DirectOProxy::send(uint32_t conn_id, Uint8View data) { - std::scoped_lock l(m_guard); auto it = m_connections.find(conn_id); return (it != m_connections.end()) ? it->second.socket->send(data) @@ -54,15 +34,11 @@ Error DirectOProxy::send(uint32_t conn_id, Uint8View data) { } bool DirectOProxy::set_timeout(uint32_t conn_id, Micros timeout) { - std::scoped_lock l(m_guard); auto it = m_connections.find(conn_id); - return (it != m_connections.end()) - ? it->second.socket->set_timeout(timeout) - : false; + return (it != m_connections.end()) && it->second.socket->set_timeout(timeout); } Error DirectOProxy::set_callbacks_impl(uint32_t conn_id, Callbacks cbx) { - std::scoped_lock l(m_guard); auto it = m_connections.find(conn_id); if (it == m_connections.end()) { return make_error(SocketError::AE_CONNECTION_ID_NOT_FOUND, fmt::to_string(conn_id)); @@ -79,21 +55,13 @@ Error DirectOProxy::set_callbacks_impl(uint32_t conn_id, Callbacks } void DirectOProxy::close_connection_impl(uint32_t conn_id) { - std::scoped_lock l(m_guard); auto node = m_connections.extract(conn_id); if (node.empty()) { return; } Connection &conn = node.mapped(); - m_closing_connections.insert(std::move(node)); - [[maybe_unused]] auto e = conn.socket->set_callbacks({}); - conn.parameters.callbacks = {}; - conn.parameters.loop->submit([this, conn_id]() { - std::scoped_lock l(m_guard); - m_closing_connections.erase(conn_id); - }); } Error DirectOProxy::connect_to_proxy(uint32_t conn_id, const ConnectParameters ¶meters) { @@ -102,7 +70,6 @@ Error DirectOProxy::connect_to_proxy(uint32_t conn_id, const Connec Error DirectOProxy::connect_through_proxy( uint32_t conn_id, const ConnectParameters ¶meters) { - std::scoped_lock l(m_guard); Connection &conn = m_connections .emplace(conn_id, Connection{ diff --git a/net/outbound_direct_proxy.h b/net/outbound_direct_proxy.h index 2d87e402..a48c3dbe 100644 --- a/net/outbound_direct_proxy.h +++ b/net/outbound_direct_proxy.h @@ -26,7 +26,6 @@ class DirectOProxy : public OutboundProxy { void reset_connections(); private: - mutable std::mutex m_guard; struct Connection { DirectOProxy *proxy = nullptr; uint32_t id = 0; @@ -35,7 +34,6 @@ class DirectOProxy : public OutboundProxy { }; HashMap m_connections; - HashMap m_closing_connections; [[nodiscard]] ProtocolsSet get_supported_protocols() const override; [[nodiscard]] std::optional get_fd(uint32_t conn_id) const override; diff --git a/net/outbound_http_proxy.cpp b/net/outbound_http_proxy.cpp index 97ccdb43..174b47ef 100644 --- a/net/outbound_http_proxy.cpp +++ b/net/outbound_http_proxy.cpp @@ -36,12 +36,24 @@ HttpOProxy::HttpOProxy(const OutboundProxySettings *settings, Parameters paramet } } +HttpOProxy::~HttpOProxy() { + std::vector connections; + connections.reserve(m_connections.size()); + std::transform(m_connections.begin(), m_connections.end(), std::back_inserter(connections), [](const auto &iter) { + return iter.first; + }); + for (uint32_t conn_id : connections) { + this->HttpOProxy::close_connection_impl(conn_id); + } + + assert(m_connections.empty()); +} + OutboundProxy::ProtocolsSet HttpOProxy::get_supported_protocols() const { return 1 << utils::TP_TCP; } std::optional HttpOProxy::get_fd(uint32_t conn_id) const { - std::scoped_lock l(m_guard); auto it = m_connections.find(conn_id); return (it != m_connections.end()) ? it->second->socket->get_fd() : std::nullopt; } @@ -49,7 +61,6 @@ std::optional HttpOProxy::get_fd(uint32_t conn_id) const { Error HttpOProxy::send(uint32_t conn_id, Uint8View data) { log_conn(this, conn_id, trace, "{}", data.size()); - std::scoped_lock l(m_guard); auto it = m_connections.find(conn_id); if (it == m_connections.end()) { return make_error(SocketError::AE_CONNECTION_ID_NOT_FOUND, fmt::to_string(conn_id)); @@ -67,7 +78,6 @@ Error HttpOProxy::send(uint32_t conn_id, Uint8View data) { bool HttpOProxy::set_timeout(uint32_t conn_id, Micros timeout) { log_conn(this, conn_id, trace, "{}", timeout); - std::scoped_lock l(m_guard); auto it = m_connections.find(conn_id); if (it == m_connections.end()) { log_conn(this, conn_id, dbg, "Non-existent connection: {}", conn_id); @@ -80,7 +90,6 @@ bool HttpOProxy::set_timeout(uint32_t conn_id, Micros timeout) { Error HttpOProxy::set_callbacks_impl(uint32_t conn_id, Callbacks cbx) { log_conn(this, conn_id, trace, "..."); - std::scoped_lock l(m_guard); auto it = m_connections.find(conn_id); if (it == m_connections.end()) { return make_error(SocketError::AE_CONNECTION_ID_NOT_FOUND, fmt::to_string(conn_id)); @@ -99,7 +108,6 @@ Error HttpOProxy::set_callbacks_impl(uint32_t conn_id, Callbacks cb void HttpOProxy::close_connection_impl(uint32_t conn_id) { log_conn(this, conn_id, trace, "..."); - std::scoped_lock l(m_guard); auto node = m_connections.extract(conn_id); if (node.empty()) { log_conn(this, conn_id, dbg, "Connection was not found"); @@ -107,26 +115,15 @@ void HttpOProxy::close_connection_impl(uint32_t conn_id) { } Connection *conn = node.mapped().get(); - m_closing_connections.insert(std::move(node)); - if (conn->state == CS_CONNECTING_SOCKET) { conn->parameters.callbacks.on_proxy_connection_failed(conn->parameters.callbacks.arg, {}); } - conn->parameters.callbacks = {}; - - [[maybe_unused]] auto e = conn->socket->set_callbacks({}); - - conn->parameters.loop->submit([this, conn_id]() { - std::scoped_lock l(m_guard); - m_closing_connections.erase(conn_id); - }); } Error HttpOProxy::connect_to_proxy(uint32_t conn_id, const ConnectParameters ¶meters) { log_conn(this, conn_id, trace, "{} == {}", m_resolved_proxy_address->str(), parameters.peer.str()); assert(parameters.proto == utils::TP_TCP); - std::scoped_lock l(m_guard); auto &conn = m_connections[conn_id]; if (conn != nullptr) { return make_error(SocketError::AE_DUPLICATE_ID, fmt::to_string(conn_id)); @@ -158,7 +155,6 @@ static Uint8View string_to_bytes(std::string_view str) { Error HttpOProxy::connect_through_proxy(uint32_t conn_id, const ConnectParameters ¶meters) { log_conn(this, conn_id, trace, "{}:{} == {}", m_settings->address, m_settings->port, parameters.peer.str()); - std::scoped_lock l(m_guard); auto &conn = m_connections[conn_id]; if (conn == nullptr) { return make_error(SocketError::AE_CONNECTION_ID_NOT_FOUND, fmt::to_string(conn_id)); @@ -313,8 +309,7 @@ void HttpOProxy::handle_http_response_chunk(Connection *conn, std::string_view c } HttpOProxy::Callbacks HttpOProxy::get_connection_callbacks_locked(Connection *conn) { - std::scoped_lock l(m_guard); - assert(m_connections.count(conn->id) != 0); + assert(m_connections.contains(conn->id)); return conn->parameters.callbacks; } diff --git a/net/outbound_http_proxy.h b/net/outbound_http_proxy.h index 30cd8b47..b2f7f385 100644 --- a/net/outbound_http_proxy.h +++ b/net/outbound_http_proxy.h @@ -2,7 +2,7 @@ #include -#include + #include "common/defs.h" #include "dns/net/tls_session_cache.h" #include "outbound_proxy.h" @@ -13,7 +13,7 @@ namespace ag::dns { class HttpOProxy : public OutboundProxy { public: HttpOProxy(const OutboundProxySettings *settings, Parameters parameters); - ~HttpOProxy() override = default; + ~HttpOProxy() override; HttpOProxy(HttpOProxy &&) = delete; HttpOProxy &operator=(HttpOProxy &&) = delete; @@ -22,10 +22,8 @@ class HttpOProxy : public OutboundProxy { private: struct Connection; - mutable std::mutex m_guard; HashMap> m_connections; std::optional m_tls_session_cache; - HashMap> m_closing_connections; [[nodiscard]] ProtocolsSet get_supported_protocols() const override; [[nodiscard]] std::optional get_fd(uint32_t conn_id) const override; diff --git a/net/outbound_proxy.cpp b/net/outbound_proxy.cpp index 6d9f2e8b..ffded384 100644 --- a/net/outbound_proxy.cpp +++ b/net/outbound_proxy.cpp @@ -1,4 +1,6 @@ #include +#include +#include #include "outbound_proxy.h" @@ -25,6 +27,12 @@ OutboundProxy::OutboundProxy( , m_parameters(parameters) { } +OutboundProxy::~OutboundProxy() { + on_bootstrap_ready(make_error(SocketError::AE_OUTBOUND_PROXY_ERROR, "Proxy has been destroyed")); + assert(m_bootstrap_waiters.empty()); +} + + OutboundProxy::ConnectResult OutboundProxy::connect(ConnectParameters p) { uint32_t conn_id = get_next_connection_id(); @@ -71,19 +79,22 @@ uint32_t OutboundProxy::get_next_connection_id() { } void OutboundProxy::on_bootstrap_ready(std::optional resolved) { - if (resolved.has_value()) { - m_resolved_proxy_address = resolved; - m_resolved_proxy_address->set_port(m_settings->port); + if (!resolved.has_value()) { + on_bootstrap_ready(make_error(SocketError::AE_OUTBOUND_PROXY_ERROR, "Bootstrap failure")); + return; } - decltype(m_bootstrap_waiters) waiters; - std::swap(waiters, m_bootstrap_waiters); + m_resolved_proxy_address = resolved; + m_resolved_proxy_address->set_port(m_settings->port); + on_bootstrap_ready(nullptr); +} + +void OutboundProxy::on_bootstrap_ready(Error bootstrap_error) { + decltype(m_bootstrap_waiters) waiters = std::exchange(m_bootstrap_waiters, {}); for (auto &[conn_id, parameters] : waiters) { - Error error; - if (m_resolved_proxy_address.has_value()) { + Error error = bootstrap_error; + if (error == nullptr) { error = this->connect_to_proxy(conn_id, parameters); - } else { - error = make_error(SocketError::AE_OUTBOUND_PROXY_ERROR, "Bootstrap failure"); } if (error != nullptr && parameters.callbacks.on_close != nullptr) { diff --git a/net/outbound_proxy.h b/net/outbound_proxy.h index 452d1e88..9a57e335 100644 --- a/net/outbound_proxy.h +++ b/net/outbound_proxy.h @@ -73,7 +73,7 @@ class OutboundProxy { IfIdVariant outbound_interface; }; - virtual ~OutboundProxy() = default; + virtual ~OutboundProxy(); /** * Connect to the peer via proxy @@ -160,6 +160,7 @@ class OutboundProxy { private: void on_bootstrap_ready(std::optional address); + void on_bootstrap_ready(Error address); }; } // namespace ag::dns diff --git a/net/outbound_socks_proxy.cpp b/net/outbound_socks_proxy.cpp index c48326f6..28ce1265 100644 --- a/net/outbound_socks_proxy.cpp +++ b/net/outbound_socks_proxy.cpp @@ -15,43 +15,43 @@ namespace ag::dns { -enum socks_version_number { +enum SocksVersionNumber { SVN_4 = 0x4, SVN_5 = 0x5, }; -enum socks4_command { +enum Socks4Command { S4CMD_CONNECT = 0x1, S4CMD_REQUEST_GRANTED = 0x90, // request granted // all other codes are errors }; -enum socks5_auth_method { +enum Socks5AuthMethod { S5AM_NO_AUTHENTICATION_REQUIRED = 0x00, S5AM_GSSAPI = 0x01, S5AM_USERNAME_PASSWORD = 0x02, S5AM_NO_ACCEPTABLE_METHODS = 0xff, }; -enum socks5_user_pass_auth_version_number { +enum Socks5UserPassAuthVersionNumber { S5UPAVN_1 = 0x01, }; -enum socks5_user_pass_auth_status { +enum Socks5UserPassAuthStatus { S5UPAS_SUCCESS = 0x00, }; -enum socks5_command { +enum Socks5Command { S5CMD_CONNECT = 0x01, S5CMD_UDP_ASSOCIATE = 0x03, }; -enum socks5_address_type { +enum Socks5AddressType { S5AT_IPV4 = 0x01, // a version-4 IP address, with a length of 4 octets S5AT_IPV6 = 0x04, // a version-6 IP address, with a length of 16 octets }; -enum socks5_reply_status { +enum Socks5ReplyStatus { S5RS_SUCCEEDED, }; @@ -117,7 +117,7 @@ struct Socks5UdpHeader { #pragma pack(pop) -enum connection_state { +enum ConnectionState { CS_IDLE, CS_CONNECTING_SOCKET, CS_CONNECTING_SOCKS, @@ -131,7 +131,7 @@ struct SocksOProxy::Connection { SocksOProxy *proxy; uint32_t id; ConnectParameters parameters = {}; - connection_state state = CS_IDLE; + ConnectionState state = CS_IDLE; SocketFactory::SocketPtr socket; Uint8Vector recv_buffer; @@ -159,18 +159,28 @@ SocksOProxy::SocksOProxy(const OutboundProxySettings *settings, Parameters param : OutboundProxy(__func__, settings, std::move(parameters)) { } -SocksOProxy::~SocksOProxy() = default; +SocksOProxy::~SocksOProxy() { + std::vector connections; + connections.reserve(m_connections.size()); + std::transform(m_connections.begin(), m_connections.end(), std::back_inserter(connections), + [](const auto &iter) { + return iter.first; + }); + for (uint32_t conn_id : connections) { + this->SocksOProxy::close_connection_impl(conn_id); + } + + assert(m_connections.empty()); + assert(m_udp_association == nullptr); +} OutboundProxy::ProtocolsSet SocksOProxy::get_supported_protocols() const { ProtocolsSet protocols = 1 << utils::TP_TCP; - if (m_settings->protocol == OutboundProxyProtocol::SOCKS5_UDP) { - protocols.set(utils::TP_UDP); - } + protocols.set(utils::TP_UDP, m_settings->protocol == OutboundProxyProtocol::SOCKS5_UDP); return protocols; } std::optional SocksOProxy::get_fd(uint32_t conn_id) const { - std::scoped_lock l(m_guard); auto it = m_connections.find(conn_id); return (it != m_connections.end() && it->second->socket != nullptr) ? it->second->socket->get_fd() : std::nullopt; } @@ -188,7 +198,6 @@ static size_t get_full_udp_header_size(const Socks5UdpHeader *h) { Error SocksOProxy::send(uint32_t conn_id, Uint8View data) { log_conn(this, conn_id, trace, "{}", data.size()); - std::scoped_lock l(m_guard); auto it = m_connections.find(conn_id); if (it == m_connections.end()) { return make_error(SocketError::AE_CONNECTION_ID_NOT_FOUND, fmt::to_string(conn_id)); @@ -241,7 +250,6 @@ Error SocksOProxy::send(uint32_t conn_id, Uint8View data) { bool SocksOProxy::set_timeout(uint32_t conn_id, Micros timeout) { log_conn(this, conn_id, trace, "{}", timeout); - std::scoped_lock l(m_guard); auto it = m_connections.find(conn_id); if (it == m_connections.end()) { log_conn(this, conn_id, dbg, "Non-existent connection: {}", conn_id); @@ -254,7 +262,6 @@ bool SocksOProxy::set_timeout(uint32_t conn_id, Micros timeout) { Error SocksOProxy::set_callbacks_impl(uint32_t conn_id, Callbacks cbx) { log_conn(this, conn_id, trace, "..."); - std::scoped_lock l(m_guard); auto it = m_connections.find(conn_id); if (it == m_connections.end()) { return make_error(SocketError::AE_CONNECTION_ID_NOT_FOUND, fmt::to_string(conn_id)); @@ -273,7 +280,6 @@ Error SocksOProxy::set_callbacks_impl(uint32_t conn_id, Callbacks c void SocksOProxy::close_connection_impl(uint32_t conn_id) { log_conn(this, conn_id, trace, "..."); - std::scoped_lock l(m_guard); auto node = m_connections.extract(conn_id); if (node.empty()) { log_conn(this, conn_id, dbg, "Connection was not found"); @@ -281,43 +287,28 @@ void SocksOProxy::close_connection_impl(uint32_t conn_id) { } Connection *conn = node.mapped().get(); - m_closing_connections.insert(std::move(node)); - if (conn->state == CS_CONNECTING_SOCKET) { conn->parameters.callbacks.on_proxy_connection_failed(conn->parameters.callbacks.arg, {}); } conn->parameters.callbacks = {}; - if (conn->socket != nullptr) { - [[maybe_unused]] auto e = conn->socket->set_callbacks({}); - } - - conn->parameters.loop->submit([this, conn_id]() { - std::scoped_lock l(m_guard); - auto node = m_closing_connections.extract(conn_id); - if (!node.empty()) { - this->close_connection(node.mapped().get()); - } - }); + this->close_connection(conn); } Error SocksOProxy::connect_to_proxy(uint32_t conn_id, const ConnectParameters ¶meters) { log_conn(this, conn_id, trace, "{} == {}", m_resolved_proxy_address->str(), m_settings->port, parameters.peer.str()); Connection *conn = nullptr; - { - std::scoped_lock l(m_guard); - if (auto &c = m_connections[conn_id]; c == nullptr) { - c = std::make_unique(Connection{this, conn_id, parameters}); - conn = c.get(); - } else { - return make_error(SocketError::AE_DUPLICATE_ID, fmt::to_string(conn_id)); - } + if (auto &c = m_connections[conn_id]; c == nullptr) { + c = std::make_unique(Connection{this, conn_id, parameters}); + conn = c.get(); + } else { + return make_error(SocketError::AE_DUPLICATE_ID, fmt::to_string(conn_id)); } + auto err = this->connect_to_proxy(conn); if (err) { - std::unique_lock l(m_guard); conn->parameters.callbacks = {}; // do not raise `on_close` callback this->close_connection(conn); m_connections.erase(conn_id); @@ -329,7 +320,6 @@ Error SocksOProxy::connect_to_proxy(uint32_t conn_id, const Connect Error SocksOProxy::connect_through_proxy(uint32_t conn_id, const ConnectParameters ¶meters) { log_conn(this, conn_id, trace, "{}:{} == {}", m_settings->address, m_settings->port, parameters.peer.str()); - std::unique_lock l(m_guard); auto &conn = m_connections[conn_id]; if (conn == nullptr) { return make_error(SocketError::AE_CONNECTION_ID_NOT_FOUND, fmt::to_string(conn_id)); @@ -343,9 +333,7 @@ Error SocksOProxy::connect_through_proxy(uint32_t conn_id, const Co if (conn->parameters.proto == utils::TP_UDP) { conn->state = CS_CONNECTED; if (conn->parameters.callbacks.on_connected != nullptr) { - l.unlock(); conn->parameters.callbacks.on_connected(conn->parameters.callbacks.arg, conn->id); - l.lock(); } return {}; } @@ -444,13 +432,10 @@ Error SocksOProxy::connect_to_proxy(Connection *conn) { if (proto == utils::TP_UDP) { assert(m_settings->protocol == OutboundProxyProtocol::SOCKS5_UDP); - std::scoped_lock l(m_guard); - auto assoc_it = m_udp_associations.find(conn->parameters.loop); - bool need_to_start_assoc = assoc_it == m_udp_associations.end(); + bool need_to_start_assoc = m_udp_association == nullptr; if (!need_to_start_assoc) { - UdpAssociation *association = assoc_it->second.get(); - if (auto assoc_conn_it = m_connections.find(association->conn_id); assoc_conn_it == m_connections.end()) { - log_conn(this, association->conn_id, dbg, "UDP association exists but related connection not found"); + if (auto assoc_conn_it = m_connections.find(m_udp_association->conn_id); assoc_conn_it == m_connections.end()) { + log_conn(this, m_udp_association->conn_id, dbg, "UDP association exists but related connection not found"); assert(0); need_to_start_assoc = true; } else if (assoc_conn_it->second->state != CS_CONNECTED) { @@ -467,15 +452,14 @@ Error SocksOProxy::connect_to_proxy(Connection *conn) { && i.second->parameters.proto == utils::TP_UDP; })); - auto &association = m_udp_associations[conn->parameters.loop]; - association = std::make_unique(); - association->conn_id = get_next_connection_id(); - log_conn(this, association->conn_id, dbg, "Starting UDP association"); + m_udp_association = std::make_unique(); + m_udp_association->conn_id = get_next_connection_id(); + log_conn(this, m_udp_association->conn_id, dbg, "Starting UDP association"); - auto &udp_association_conn = m_connections[association->conn_id]; + auto &udp_association_conn = m_connections[m_udp_association->conn_id]; udp_association_conn = std::make_unique(Connection{ this, - association->conn_id, + m_udp_association->conn_id, { conn->parameters.loop, utils::TP_TCP, @@ -490,7 +474,7 @@ Error SocksOProxy::connect_to_proxy(Connection *conn) { conn = udp_association_conn.get(); dst_addr = conn->parameters.peer; } else { - dst_addr = assoc_it->second->bound_addr; + dst_addr = m_udp_association->bound_addr; } } else { dst_addr = SocketAddress(m_settings->address, m_settings->port); @@ -527,14 +511,13 @@ void SocksOProxy::close_connection(Connection *conn) { return; } - auto assoc_it = m_udp_associations.find(loop); - if (assoc_it == m_udp_associations.end()) { - log_conn(this, conn_id, dbg, "UDP association is not found"); + if (m_udp_association == nullptr) { + log_conn(this, conn_id, dbg, "UDP association is not started"); assert(0); return; } - auto assoc_conn_it = m_connections.find(assoc_it->second->conn_id); + auto assoc_conn_it = m_connections.find(m_udp_association->conn_id); if (assoc_conn_it == m_connections.end()) { log_conn(this, conn_id, dbg, "TCP connection of UDP association is not found"); assert(0); @@ -548,10 +531,7 @@ void SocksOProxy::close_connection(Connection *conn) { } bool SocksOProxy::is_udp_association_connection(uint32_t conn_id) const { - std::scoped_lock l(m_guard); - return std::any_of(m_udp_associations.begin(), m_udp_associations.end(), [conn_id](const auto &i) { - return conn_id == i.second->conn_id; - }); + return m_udp_association != nullptr && m_udp_association->conn_id == conn_id; } void SocksOProxy::handle_connection_close(Connection *conn, Error error) { @@ -588,12 +568,10 @@ void SocksOProxy::on_udp_association_established(Connection *assoc_conn, SocketA std::vector udp_connections; - m_guard.lock(); - if (auto it = m_udp_associations.find(assoc_conn->parameters.loop); it != m_udp_associations.end()) { - it->second->bound_addr = bound_addr; + if (m_udp_association != nullptr) { + m_udp_association->bound_addr = bound_addr; } else { - log_conn(this, assoc_conn->id, dbg, "UDP association is not found"); - m_guard.unlock(); + log_conn(this, assoc_conn->id, dbg, "UDP association is not active"); auto error = make_error(SocketError::AE_UDP_ASSOCIATION_NOT_FOUND); this->terminate_udp_association(assoc_conn, error); return; @@ -604,7 +582,6 @@ void SocksOProxy::on_udp_association_established(Connection *assoc_conn, SocketA udp_connections.emplace_back(conn.get()); } } - m_guard.unlock(); for (Connection *conn : udp_connections) { auto e = this->connect_to_proxy(conn); @@ -621,8 +598,6 @@ void SocksOProxy::terminate_udp_association(Connection *assoc_conn, Errorid, trace, "..."); std::vector udp_connections_callbacks; - - m_guard.lock(); for (auto i = m_connections.begin(); i != m_connections.end();) { auto &conn = i->second; if (assoc_conn->parameters.loop == conn->parameters.loop && conn->parameters.proto == utils::TP_UDP) { @@ -634,7 +609,6 @@ void SocksOProxy::terminate_udp_association(Connection *assoc_conn, Errorterminate_udp_association_silently(assoc_conn, std::nullopt); - m_guard.unlock(); for (auto &cbx : udp_connections_callbacks) { if (cbx.on_close != nullptr) { @@ -651,14 +625,13 @@ void SocksOProxy::terminate_udp_association_silently( && i.second->parameters.proto == utils::TP_UDP; })); - if (auto it = m_udp_associations.find(assoc_conn->parameters.loop); it != m_udp_associations.end()) { - m_connections.erase(assoc_conn->id); - m_udp_associations.erase(it); + if (m_udp_association != nullptr) { + m_connections.erase(m_udp_association->conn_id); + m_udp_association.reset(); } } std::optional SocksOProxy::get_connection_callbacks_locked(Connection *conn) { - std::scoped_lock l(m_guard); return m_connections.contains(conn->id) ? std::make_optional(conn->parameters.callbacks) : std::nullopt; } diff --git a/net/outbound_socks_proxy.h b/net/outbound_socks_proxy.h index e9fe6755..9dcde147 100644 --- a/net/outbound_socks_proxy.h +++ b/net/outbound_socks_proxy.h @@ -1,7 +1,7 @@ #pragma once -#include +#include #include #include "common/defs.h" @@ -23,10 +23,8 @@ class SocksOProxy : public OutboundProxy { private: struct Connection; struct UdpAssociation; - mutable std::mutex m_guard; HashMap> m_connections; - HashMap> m_udp_associations; - HashMap> m_closing_connections; + std::unique_ptr m_udp_association; [[nodiscard]] ProtocolsSet get_supported_protocols() const override; [[nodiscard]] std::optional get_fd(uint32_t conn_id) const override; diff --git a/net/socket_factory.cpp b/net/socket_factory.cpp index 5e475692..cf2474ed 100644 --- a/net/socket_factory.cpp +++ b/net/socket_factory.cpp @@ -25,17 +25,17 @@ enum proxy_availability_status { }; struct SocketFactory::OutboundProxyState { + EventLoop *loop = nullptr; /// The main proxy std::unique_ptr main_proxy; /// The fallback proxy: used in case of the main one is not available std::unique_ptr fallback_proxy; - std::mutex guard; /// Whether the proxy is available. If not, the behavior depends on /// `outbound_proxy_settings#ignore_if_unavailable` flag ExpiringValue availability_status; - /// Whether the event for resetting bypassed connections is scheduled - bool reset_task_scheduled = false; + /// Resetting bypassed connections task + std::optional reset_task; /// The next reset event subscriber ID uint32_t next_subscriber_id = 0; /// The reset event subscribers @@ -44,7 +44,7 @@ struct SocketFactory::OutboundProxyState { static void on_successful_proxy_connection(void *arg) { auto *self = (SocketFactory *) arg; ((DirectOProxy *) self->m_proxy->fallback_proxy.get())->reset_connections(); - self->m_proxy->reset_task_scheduled = false; + self->m_proxy->reset_task.reset(); } static ProxiedSocket::ProxyConnectionFailedResult on_proxy_connection_failed(void *arg, Error err) { @@ -58,7 +58,11 @@ struct SocketFactory::OutboundProxyState { return ProxiedSocket::CloseConnection{}; } - ~OutboundProxyState() {} + ~OutboundProxyState() { + if (this->reset_task.has_value()) { + this->loop->cancel(std::exchange(this->reset_task, std::nullopt).value()); + } + } }; SocketFactory::SocketFactory(struct Parameters parameters) @@ -66,6 +70,7 @@ SocketFactory::SocketFactory(struct Parameters parameters) , m_router(parameters.enable_route_resolver ? RouteResolver::create() : RouteResolverPtr{nullptr}) { if (m_parameters.oproxy.settings != nullptr) { m_proxy = std::make_unique(); + m_proxy->loop = &m_parameters.loop; m_proxy->main_proxy.reset(this->make_proxy()); m_proxy->fallback_proxy.reset(this->make_fallback_proxy()); } @@ -73,6 +78,10 @@ SocketFactory::SocketFactory(struct Parameters parameters) SocketFactory::~SocketFactory() = default; +void SocketFactory::deinit() { + m_proxy.reset(); +} + SocketFactory::SocketPtr SocketFactory::make_socket(SocketParameters p) const { SocketPtr socket; if (p.ignore_proxy_settings || !this->should_route_through_proxy(p.proto)) { @@ -125,7 +134,8 @@ ErrString SocketFactory::prepare_fd( evutil_socket_t fd, const SocketAddress &peer, const IfIdVariant &outbound_interface) const { if (const uint32_t *if_index = std::get_if(&outbound_interface)) { return ag::utils::bind_socket_to_if(fd, peer.c_sockaddr()->sa_family, *if_index); - } else if (const std::string *if_name = std::get_if(&outbound_interface)) { + } + if (const std::string *if_name = std::get_if(&outbound_interface)) { return ag::utils::bind_socket_to_if(fd, peer.c_sockaddr()->sa_family, if_name->c_str()); } if (m_router == nullptr) { @@ -163,7 +173,6 @@ bool SocketFactory::should_route_through_proxy(utils::TransportProtocol proto) c return false; } - std::scoped_lock l(m_proxy->guard); return m_proxy->availability_status.get() != PAS_UNAVAILABLE || !this->get_outbound_proxy_settings()->ignore_if_unavailable; } @@ -178,12 +187,10 @@ bool SocketFactory::is_proxy_available() const { return true; } - std::scoped_lock l(m_proxy->guard); return m_proxy->availability_status.get() != PAS_UNAVAILABLE; } void SocketFactory::on_successful_proxy_connection() { - std::scoped_lock l(m_proxy->guard); m_proxy->availability_status = {PAS_AVAILABLE, PROXY_AVAILABLE_TIMEOUT}; } @@ -196,22 +203,16 @@ SocketFactory::ProxyConectionFailedResult SocketFactory::on_proxy_connection_fai return SFPCFR_CLOSE_CONNECTION; } - if (std::scoped_lock l(m_proxy->guard); m_proxy->availability_status.get() != PAS_AVAILABLE) { + if (m_proxy->availability_status.get() != PAS_AVAILABLE) { m_proxy->availability_status = {PAS_UNAVAILABLE, PROXY_UNAVAILABLE_TIMEOUT}; } - if (!m_proxy->reset_task_scheduled) { + if (!m_proxy->reset_task.has_value()) { this->subscribe_to_reset_bypassed_proxy_connections_event({on_reset_bypassed_proxy_connections, this}); - m_parameters.loop.schedule(PROXY_UNAVAILABLE_TIMEOUT, [this]() { - decltype(m_proxy->reset_subscribers) subscribers; - - { - std::scoped_lock l(m_proxy->guard); - m_proxy->reset_task_scheduled = false; - subscribers.swap(m_proxy->reset_subscribers); - } - + m_proxy->reset_task = m_parameters.loop.schedule(PROXY_UNAVAILABLE_TIMEOUT, [this]() { + m_proxy->reset_task.reset(); + decltype(m_proxy->reset_subscribers) subscribers = std::exchange(m_proxy->reset_subscribers, {}); for (auto &[_, s] : subscribers) { s.func(s.arg); } @@ -223,12 +224,10 @@ SocketFactory::ProxyConectionFailedResult SocketFactory::on_proxy_connection_fai uint32_t SocketFactory::subscribe_to_reset_bypassed_proxy_connections_event( ResetBypassedProxyConnectionsSubscriber subscriber) { - std::scoped_lock l(m_proxy->guard); return m_proxy->reset_subscribers.emplace(m_proxy->next_subscriber_id++, subscriber).first->first; } void SocketFactory::unsubscribe_from_reset_bypassed_proxy_connections_event(uint32_t id) { - std::scoped_lock l(m_proxy->guard); m_proxy->reset_subscribers.erase(id); } @@ -280,7 +279,7 @@ SocketFactory::SocketPtr SocketFactory::on_make_proxy_socket( void SocketFactory::on_reset_bypassed_proxy_connections(void *arg) { auto *self = (SocketFactory *) arg; - self->m_proxy->reset_task_scheduled = false; + self->m_proxy->reset_task.reset(); ((DirectOProxy *) self->m_proxy->fallback_proxy.get())->reset_connections(); } diff --git a/proxy/dns_forwarder.cpp b/proxy/dns_forwarder.cpp index 2468c3df..7cde150e 100644 --- a/proxy/dns_forwarder.cpp +++ b/proxy/dns_forwarder.cpp @@ -458,12 +458,10 @@ void DnsForwarder::deinit() { m_settings = nullptr; m_shutdown_guard.reset(); - infolog(m_log, "Destroying upstreams..."); - m_upstreams.clear(); - infolog(m_log, "Done"); - - infolog(m_log, "Destroying fallback upstreams..."); - m_fallbacks.clear(); + infolog(m_log, "Deinitilizing socket factory..."); + if (m_socket_factory != nullptr) { + m_socket_factory->deinit(); + } infolog(m_log, "Done"); infolog(m_log, "Destroying DNS64 state..."); @@ -472,6 +470,14 @@ void DnsForwarder::deinit() { } infolog(m_log, "Done"); + infolog(m_log, "Destroying upstreams..."); + m_upstreams.clear(); + infolog(m_log, "Done"); + + infolog(m_log, "Destroying fallback upstreams..."); + m_fallbacks.clear(); + infolog(m_log, "Done"); + infolog(m_log, "Destroying DNS filter..."); m_filter.destroy(std::exchange(m_filter_handle, nullptr)); infolog(m_log, "Done"); diff --git a/upstream/upstream_doh.cpp b/upstream/upstream_doh.cpp index 5876c0d7..bf453239 100644 --- a/upstream/upstream_doh.cpp +++ b/upstream/upstream_doh.cpp @@ -141,9 +141,7 @@ struct DohUpstream::CheckProxyState { upstream->m_reset_bypassed_proxy_connections_subscribe_id = factory->subscribe_to_reset_bypassed_proxy_connections_event({[](void *arg) { auto *self = (DohUpstream *) arg; - self->config().loop.submit([self]() { - self->reset_bypassed_proxy_queries(); - }); + self->reset_bypassed_proxy_queries(); }, upstream}); break; } From ba5ae8da51b8384557a2143b1a494ce92b9a51dc Mon Sep 17 00:00:00 2001 From: Bamboo Date: Mon, 7 Nov 2022 18:28:46 +0000 Subject: [PATCH 02/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index 4505e1ae..8c839896 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.43" +#define AG_DNSLIBS_VERSION "2.0.44" diff --git a/conandata.yml b/conandata.yml index 2142010a..18c4f2d2 100644 --- a/conandata.yml +++ b/conandata.yml @@ -45,3 +45,5 @@ commit_hash: hash: "80da7d6b76d7962d869764afb4b7edf8191fe745" "2.0.43": hash: "8499ee8fd1df7dee796a118d90db091eff29900c" + "2.0.44": + hash: "ed9542da284519ddfaa74c5f92c6ecdd1f2d76c5" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index c6fa1f18..c1d4b7a3 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.43', code: 353] +version = [name: '2.0.44', code: 354] android { compileSdkVersion 29 diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 8e5bf1bd..18f241b6 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.43 + VERSION 2.0.44 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index a6365ba5..ca1f5f48 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,43,0 - PRODUCTVERSION 2,0,43,0 + FILEVERSION 2,0,44,0 + PRODUCTVERSION 2,0,44,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.43" + VALUE "ProductVersion", "2.0.44" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index eef0ecff..47b0084f 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.43")] -[assembly: AssemblyFileVersion("2.0.43")] +[assembly: AssemblyVersion("2.0.44")] +[assembly: AssemblyFileVersion("2.0.44")] From 708c0cb1b4ce792d8ba873afbe292b0e865fcfff Mon Sep 17 00:00:00 2001 From: Bamboo Date: Mon, 7 Nov 2022 19:39:24 +0000 Subject: [PATCH 03/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index 8c839896..ded7210c 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.44" +#define AG_DNSLIBS_VERSION "2.0.45" diff --git a/conandata.yml b/conandata.yml index 18c4f2d2..e0f4c479 100644 --- a/conandata.yml +++ b/conandata.yml @@ -47,3 +47,5 @@ commit_hash: hash: "8499ee8fd1df7dee796a118d90db091eff29900c" "2.0.44": hash: "ed9542da284519ddfaa74c5f92c6ecdd1f2d76c5" + "2.0.45": + hash: "ba5ae8da51b8384557a2143b1a494ce92b9a51dc" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index c1d4b7a3..76b9e927 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.44', code: 354] +version = [name: '2.0.45', code: 355] android { compileSdkVersion 29 diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 18f241b6..1ce85a4a 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.44 + VERSION 2.0.45 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index ca1f5f48..2ae7c27f 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,44,0 - PRODUCTVERSION 2,0,44,0 + FILEVERSION 2,0,45,0 + PRODUCTVERSION 2,0,45,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.44" + VALUE "ProductVersion", "2.0.45" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 47b0084f..530c964d 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.44")] -[assembly: AssemblyFileVersion("2.0.44")] +[assembly: AssemblyVersion("2.0.45")] +[assembly: AssemblyFileVersion("2.0.45")] From 4effe293fd07d8c9f4df5ad98dd6517697e4780a Mon Sep 17 00:00:00 2001 From: Maxim Grupper Date: Tue, 8 Nov 2022 12:16:37 +0300 Subject: [PATCH 04/43] Pull request #443: Add conan version export Merge in ADGUARD-CORE-LIBS/dns-libs from add_export_conan to master Squashed commit of the following: commit 4f2a8d19b693e48318b54f759c657a857c670b5c Author: Max Grupper Date: Mon Nov 7 15:16:39 2022 +0200 remove source_subfolder commit a125f545c30ff3199894238223567c3dfa9f78fd Author: Max Grupper Date: Mon Oct 17 17:15:11 2022 +0300 fix commit 855186cdf944ed5d0fcd678e4cff85587fb6fdfe Author: Max Grupper Date: Mon Oct 17 16:05:46 2022 +0300 use same version for increment & conan increment commit 442d6d80c074818dca725fd978af7669cbc80317 Author: Max Grupper Date: Mon Oct 17 15:29:58 2022 +0300 add trigger & edit conanfile commit 218d2e426c04a9b0c8ec8f50ab7abcad8e7e1e54 Author: Max Grupper Date: Mon Oct 17 13:18:29 2022 +0300 export conan task --- bamboo-specs/increment-version.yaml | 6 ++ bamboo-specs/upload-conan-recipes.yaml | 68 +++++++++++++++++++ cmake/conan_bootstrap.cmake | 1 - conanfile.py | 15 ++-- scripts/export_conan.py | 27 ++++++++ .../increment_conan_version.sh | 4 +- scripts/requirements.txt | 1 + 7 files changed, 113 insertions(+), 9 deletions(-) create mode 100644 bamboo-specs/upload-conan-recipes.yaml create mode 100755 scripts/export_conan.py rename increment_conan_version.sh => scripts/increment_conan_version.sh (76%) create mode 100644 scripts/requirements.txt diff --git a/bamboo-specs/increment-version.yaml b/bamboo-specs/increment-version.yaml index 9e0814e8..f36b6a91 100644 --- a/bamboo-specs/increment-version.yaml +++ b/bamboo-specs/increment-version.yaml @@ -61,12 +61,18 @@ DL - Increment version: case "${bamboo_repository_branch_name}" in master|stable-*) + cd scripts ./increment_conan_version.sh ${bamboo_custom_version} || exit 1 git add conandata.yml git commit -m "skipci: Automatic version increment by Bamboo" git push + BAMBOO_URL=$(echo ${bamboo_resultsUrl} | sed -ne 's|\(https://[^/]\+\)/.*|\1|p') + curl -H "Authorization: Bearer ${bamboo.bambooTriggerTokenSecret}" \ + "${BAMBOO_URL}/rest/api/latest/queue/CL-DNSUCR" -X POST -d "executeAllStages=1" + + ;; esac working-dir: dns-libs description: Increment version diff --git a/bamboo-specs/upload-conan-recipes.yaml b/bamboo-specs/upload-conan-recipes.yaml new file mode 100644 index 00000000..86ce1875 --- /dev/null +++ b/bamboo-specs/upload-conan-recipes.yaml @@ -0,0 +1,68 @@ +--- +version: 2 +plan: + project-key: CL + key: DNSUCR + name: DnsLibs - Upload conan recipes +stages: + - Default Stage: + manual: false + final: false + jobs: + - DnsLibs - Upload conan recipes +Default Job: + key: JOB1 + docker: + image: adguard/core-libs:latest + volumes: + ${bamboo.git.cache.directory}: ${bamboo.git.cache.directory} + ${system.HOME}/.ssh: /root/.ssh + docker-run-arguments: [ ] + tasks: + - !include docker-clean.yaml + - checkout: + force-clean-build: 'true' + description: Checkout + - script: + interpreter: SHELL + scripts: + - |- + # Clean up local cache + conan remove -f '*' + + conan remote add -i 0 art ${bamboo.conanRepoUrl} || true + + # Export packages + cd scripts + python3 -m pip install -r requirements.txt + ./export_conan.py + + conan user -p "${bamboo_artifactoryPassword}" -r art "${bamboo_artifactoryUser}" > upload.txt 2>&1 + + # Upload packages + conan upload -r art --all -c '*' >> upload.txt 2>&1 + echo conan upload finished with status $? + final-tasks: + - script: + interpreter: SHELL + scripts: + - |- + # Clean up + conan remove -f '*' + conan remove --locks + description: Clean up + requirements: + - adg-privileged-docker + artifact-subscriptions: [] +repositories: + - core-libs/native-libs-common: + scope: global +branches: + create: manually + delete: never + link-to-jira: true +triggers: [] +notifications: [] +labels: [] +other: + concurrent-build-plugin: system-default diff --git a/cmake/conan_bootstrap.cmake b/cmake/conan_bootstrap.cmake index e565d0aa..c2d4f4d0 100644 --- a/cmake/conan_bootstrap.cmake +++ b/cmake/conan_bootstrap.cmake @@ -1,6 +1,5 @@ function(conan_bootstrap) cmake_parse_arguments(BS "" "SRCROOT;CONANFILE;SCOPE_NAME" "" ${ARGN}) - set(CONAN_EXPORTED OFF) include("${BS_SRCROOT}/cmake/conan.cmake") if (NOT TARGET CONAN_DONE::${BS_SCOPE_NAME}) # Profile settings diff --git a/conanfile.py b/conanfile.py index 80690c1e..013a519c 100644 --- a/conanfile.py +++ b/conanfile.py @@ -3,7 +3,6 @@ class DnsLibsConan(ConanFile): name = "dns-libs" - version = "777" # use the `commit_hash` option to select the desired library version license = "Apache-2.0" author = "AdguardTeam" url = "https://github.com/AdguardTeam/DnsLibs" @@ -49,10 +48,14 @@ def config_options(self): del self.options.fPIC def source(self): - self.run("git clone https://github.com/AdguardTeam/DnsLibs.git source_subfolder") + self.run("git init . && git remote add origin https://github.com/AdguardTeam/DnsLibs.git && git fetch") - if self.options.commit_hash: - self.run("cd source_subfolder && git checkout %s" % self.options.commit_hash) + if self.version == "777": + if self.options.commit_hash: + self.run("git checkout -f %s" % self.options.commit_hash) + else: + version_hash = self.conan_data["commit_hash"][self.version]["hash"] + self.run("git checkout -f %s" % version_hash) def build(self): cmake = CMake(self) @@ -62,7 +65,7 @@ def build(self): cmake.definitions["CMAKE_CXX_FLAGS"] = "-stdlib=%s" % self.settings.compiler.libcxx if self.settings.compiler.version: cmake.definitions["CMAKE_CXX_COMPILER_VERSION"] = self.settings.compiler.version - cmake.configure(source_folder="source_subfolder/proxy") + cmake.configure(source_folder="proxy") cmake.build(target="dnsproxy") def package(self): @@ -77,7 +80,7 @@ def package(self): ] for m in MODULES: - self.copy("*.h", dst="include", src="source_subfolder/%s/include" % m) + self.copy("*.h", dst="include", src="%s/include" % m) self.copy("*.lib", dst="lib", keep_path=False) self.copy("*.dll", dst="bin", keep_path=False) diff --git a/scripts/export_conan.py b/scripts/export_conan.py new file mode 100755 index 00000000..b5a8b164 --- /dev/null +++ b/scripts/export_conan.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + +import os +import subprocess +import yaml + +work_dir = os.path.dirname(os.path.realpath(__file__)) +project_dir = os.path.dirname(work_dir) +global yaml_data + +versions = ["777"] +conandata_path = os.path.join(project_dir, "conandata.yml") +if os.path.exists(conandata_path): + yaml_data = yaml.safe_load(open(conandata_path, "r")) + for version in yaml_data["commit_hash"]: + versions.append(version) + +for version in versions: + if (version == "777"): + subprocess.run(["git", "checkout", "master"]) + else: + hash1 = yaml_data["commit_hash"][version]["hash"] + the_hash = subprocess.run(["git", "log", "--reverse", "--ancestry-path", hash1 + "..master", "--pretty=%h"], + capture_output=True, text=True).stdout.splitlines()[0] + print("HASH is ", the_hash) + subprocess.run(["git", "checkout", the_hash]) + subprocess.run(["conan", "export", project_dir, "dns-libs/" + version + "@AdguardTeam/NativeLibsCommon"]) diff --git a/increment_conan_version.sh b/scripts/increment_conan_version.sh similarity index 76% rename from increment_conan_version.sh rename to scripts/increment_conan_version.sh index 7ee78637..465d6b4b 100755 --- a/increment_conan_version.sh +++ b/scripts/increment_conan_version.sh @@ -10,7 +10,7 @@ increment_version() { argument_version=$1 if [ -z "$argument_version" ] then - VERSION=$(cat conandata.yml | grep "[0-9]*\.[0-9]*." | tail -1 | sed "s/\"//" | sed "s/\"\://") + VERSION=$(cat ../platform/android/dnsproxy/lib/build.gradle | grep "version =" | sed -e "s/,.*//g" | sed -e "s/.*://g" | sed -e "s/[' ]//g") echo "Last version was ${VERSION}" NEW_VERSION=$(increment_version ${VERSION}) echo "New version is ${NEW_VERSION}" @@ -27,4 +27,4 @@ fi COMMIT_HASH=$(git rev-parse master) echo "Last commit hash is ${COMMIT_HASH}" -[[ ! -z "$NEW_VERSION" ]] && (printf " \"${NEW_VERSION}\":\n hash: \"${COMMIT_HASH}\"\n" | tee -a conandata.yml) +[[ ! -z "$NEW_VERSION" ]] && (printf " \"${NEW_VERSION}\":\n hash: \"${COMMIT_HASH}\"\n" | tee -a ../conandata.yml) diff --git a/scripts/requirements.txt b/scripts/requirements.txt new file mode 100644 index 00000000..c3726e8b --- /dev/null +++ b/scripts/requirements.txt @@ -0,0 +1 @@ +pyyaml From 3fd1d82226c5665a98413d167531d2af96e9e53a Mon Sep 17 00:00:00 2001 From: Bamboo Date: Tue, 8 Nov 2022 09:17:20 +0000 Subject: [PATCH 05/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index ded7210c..e86ae346 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.45" +#define AG_DNSLIBS_VERSION "2.0.46" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 76b9e927..bd8399ed 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.45', code: 355] +version = [name: '2.0.46', code: 356] android { compileSdkVersion 29 diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 1ce85a4a..d7756261 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.45 + VERSION 2.0.46 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 2ae7c27f..2448e51b 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,45,0 - PRODUCTVERSION 2,0,45,0 + FILEVERSION 2,0,46,0 + PRODUCTVERSION 2,0,46,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.45" + VALUE "ProductVersion", "2.0.46" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 530c964d..5fd262f1 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.45")] -[assembly: AssemblyFileVersion("2.0.45")] +[assembly: AssemblyVersion("2.0.46")] +[assembly: AssemblyFileVersion("2.0.46")] From 6a1b555a82f6c3f8eb266525b98fad4304beca36 Mon Sep 17 00:00:00 2001 From: Bamboo Date: Tue, 8 Nov 2022 09:23:00 +0000 Subject: [PATCH 06/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index e86ae346..353afcd0 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.46" +#define AG_DNSLIBS_VERSION "2.0.47" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index bd8399ed..a2c57d08 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.46', code: 356] +version = [name: '2.0.47', code: 357] android { compileSdkVersion 29 diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index d7756261..cb7b726e 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.46 + VERSION 2.0.47 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 2448e51b..3b7b5645 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,46,0 - PRODUCTVERSION 2,0,46,0 + FILEVERSION 2,0,47,0 + PRODUCTVERSION 2,0,47,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.46" + VALUE "ProductVersion", "2.0.47" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 5fd262f1..00546b00 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.46")] -[assembly: AssemblyFileVersion("2.0.46")] +[assembly: AssemblyVersion("2.0.47")] +[assembly: AssemblyFileVersion("2.0.47")] From 70e682c9daa4fe439fbdaea9cd10091838f9ad7c Mon Sep 17 00:00:00 2001 From: Artem Burcha Date: Tue, 8 Nov 2022 18:35:59 +0300 Subject: [PATCH 07/43] Pull request #459: Upgrade cmake and gradle in dnslibs Merge in ADGUARD-CORE-LIBS/dns-libs from fix/upgrade-gradle to master Squashed commit of the following: commit c909f58b803fe8a0ce8b831e6db9151b1e2890fb Author: Artem Burcha Date: Mon Nov 7 18:35:59 2022 +0300 define ndk version commit bce0527ff54175eda1eed61cb0086696d416afbf Author: Artem Burcha Date: Mon Nov 7 17:48:40 2022 +0300 Upgrade cmake and gradle in dnslibs --- platform/android/dnsproxy/build.gradle | 2 +- .../android/dnsproxy/gradle/wrapper/gradle-wrapper.properties | 2 +- platform/android/dnsproxy/lib/build.gradle | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/platform/android/dnsproxy/build.gradle b/platform/android/dnsproxy/build.gradle index f18abcfd..24519b56 100644 --- a/platform/android/dnsproxy/build.gradle +++ b/platform/android/dnsproxy/build.gradle @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.1.3' } } diff --git a/platform/android/dnsproxy/gradle/wrapper/gradle-wrapper.properties b/platform/android/dnsproxy/gradle/wrapper/gradle-wrapper.properties index 963ffaf2..723c30dc 100644 --- a/platform/android/dnsproxy/gradle/wrapper/gradle-wrapper.properties +++ b/platform/android/dnsproxy/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-all.zip diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index a2c57d08..832e179e 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -3,6 +3,7 @@ apply plugin: 'com.android.library' version = [name: '2.0.47', code: 357] android { + ndkVersion "24.0.8215888" compileSdkVersion 29 defaultConfig { @@ -38,7 +39,7 @@ android { externalNativeBuild { cmake { path "CMakeLists.txt" - version "3.13.4" + version "3.18.1" } } From 0a218d35f64e91bd8621bad94c8ca473f3f9fd31 Mon Sep 17 00:00:00 2001 From: Bamboo Date: Tue, 8 Nov 2022 15:36:52 +0000 Subject: [PATCH 08/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index 353afcd0..9debb4aa 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.47" +#define AG_DNSLIBS_VERSION "2.0.48" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 832e179e..56737642 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.47', code: 357] +version = [name: '2.0.48', code: 358] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index cb7b726e..d8fba882 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.47 + VERSION 2.0.48 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 3b7b5645..5984e11f 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,47,0 - PRODUCTVERSION 2,0,47,0 + FILEVERSION 2,0,48,0 + PRODUCTVERSION 2,0,48,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.47" + VALUE "ProductVersion", "2.0.48" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 00546b00..3c216e0d 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.47")] -[assembly: AssemblyFileVersion("2.0.47")] +[assembly: AssemblyVersion("2.0.48")] +[assembly: AssemblyFileVersion("2.0.48")] From 71f9d472c871d55f81a6c4ed58bec1ecf25f58c9 Mon Sep 17 00:00:00 2001 From: Maxim Grupper Date: Wed, 9 Nov 2022 12:23:01 +0300 Subject: [PATCH 09/43] Pull request #462: fix increment version in bamboo-spec Merge in ADGUARD-CORE-LIBS/dns-libs from fix/increment_version to master Squashed commit of the following: commit e6784631cd0b91c1b223958f47cd52b27c5b3a18 Author: Maxim Grupper Date: Wed Nov 9 12:11:20 2022 +0300 increment-version.yaml edited online with Bitbucket --- bamboo-specs/increment-version.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bamboo-specs/increment-version.yaml b/bamboo-specs/increment-version.yaml index f36b6a91..5befd98d 100644 --- a/bamboo-specs/increment-version.yaml +++ b/bamboo-specs/increment-version.yaml @@ -64,7 +64,7 @@ DL - Increment version: cd scripts ./increment_conan_version.sh ${bamboo_custom_version} || exit 1 - git add conandata.yml + git add ../conandata.yml git commit -m "skipci: Automatic version increment by Bamboo" git push From 48e4ba48e551d6aa8d0a9991fafab7b7a30080cb Mon Sep 17 00:00:00 2001 From: Bamboo Date: Wed, 9 Nov 2022 09:23:50 +0000 Subject: [PATCH 10/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index 9debb4aa..6b262088 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.48" +#define AG_DNSLIBS_VERSION "2.0.49" diff --git a/conandata.yml b/conandata.yml index e0f4c479..1b42f3fd 100644 --- a/conandata.yml +++ b/conandata.yml @@ -49,3 +49,5 @@ commit_hash: hash: "ed9542da284519ddfaa74c5f92c6ecdd1f2d76c5" "2.0.45": hash: "ba5ae8da51b8384557a2143b1a494ce92b9a51dc" + "2.0.50": + hash: "71f9d472c871d55f81a6c4ed58bec1ecf25f58c9" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 56737642..bb8f70aa 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.48', code: 358] +version = [name: '2.0.49', code: 359] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index d8fba882..8dd46d37 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.48 + VERSION 2.0.49 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 5984e11f..65895abd 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,48,0 - PRODUCTVERSION 2,0,48,0 + FILEVERSION 2,0,49,0 + PRODUCTVERSION 2,0,49,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.48" + VALUE "ProductVersion", "2.0.49" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 3c216e0d..9086f61e 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.48")] -[assembly: AssemblyFileVersion("2.0.48")] +[assembly: AssemblyVersion("2.0.49")] +[assembly: AssemblyFileVersion("2.0.49")] From 84d3dc526067eebb01d9d4030a833e5c466f7d6e Mon Sep 17 00:00:00 2001 From: Maxim Grupper Date: Wed, 9 Nov 2022 12:56:06 +0300 Subject: [PATCH 11/43] Pull request #463: fix double increment in conan version Merge in ADGUARD-CORE-LIBS/dns-libs from fix/double_increment to master Squashed commit of the following: commit 21681dc164517ae39b17824e58e1c8abb23710d7 Author: Max Grupper Date: Wed Nov 9 11:53:59 2022 +0200 fix repo name commit c94adee7c4e374ccfbe4471f5bcff61d58af9c61 Author: Max Grupper Date: Wed Nov 9 11:52:46 2022 +0200 fix repo name commit 7677f20f6adb46be40147bea135f59b49dcbc2d4 Author: Max Grupper Date: Wed Nov 9 11:51:11 2022 +0200 fix job name commit c0b9022f36f171e706620ed0e789b23ef65dc73c Author: Max Grupper Date: Wed Nov 9 11:47:58 2022 +0200 try to fix commit ec19662de6463958e20aec645720cf545df9f6fa Author: Max Grupper Date: Wed Nov 9 11:42:40 2022 +0200 add task to bamboo.yaml commit bf3d0557652ee73d5819a15edd73979429643925 Author: Max Grupper Date: Wed Nov 9 11:35:21 2022 +0200 fix double increment --- bamboo-specs/bamboo.yaml | 2 ++ bamboo-specs/upload-conan-recipes.yaml | 6 +++--- conandata.yml | 2 -- scripts/increment_conan_version.sh | 11 +---------- 4 files changed, 6 insertions(+), 15 deletions(-) diff --git a/bamboo-specs/bamboo.yaml b/bamboo-specs/bamboo.yaml index 37999248..a0fc4f5a 100644 --- a/bamboo-specs/bamboo.yaml +++ b/bamboo-specs/bamboo.yaml @@ -8,3 +8,5 @@ !include 'run-tests.yaml' --- !include 'increment-version.yaml' +--- +!include 'upload-conan-recipes.yaml' diff --git a/bamboo-specs/upload-conan-recipes.yaml b/bamboo-specs/upload-conan-recipes.yaml index 86ce1875..58b36ccd 100644 --- a/bamboo-specs/upload-conan-recipes.yaml +++ b/bamboo-specs/upload-conan-recipes.yaml @@ -9,7 +9,7 @@ stages: manual: false final: false jobs: - - DnsLibs - Upload conan recipes + - Default Job Default Job: key: JOB1 docker: @@ -17,7 +17,7 @@ Default Job: volumes: ${bamboo.git.cache.directory}: ${bamboo.git.cache.directory} ${system.HOME}/.ssh: /root/.ssh - docker-run-arguments: [ ] + docker-run-arguments: [] tasks: - !include docker-clean.yaml - checkout: @@ -55,7 +55,7 @@ Default Job: - adg-privileged-docker artifact-subscriptions: [] repositories: - - core-libs/native-libs-common: + - dns-libs: scope: global branches: create: manually diff --git a/conandata.yml b/conandata.yml index 1b42f3fd..e0f4c479 100644 --- a/conandata.yml +++ b/conandata.yml @@ -49,5 +49,3 @@ commit_hash: hash: "ed9542da284519ddfaa74c5f92c6ecdd1f2d76c5" "2.0.45": hash: "ba5ae8da51b8384557a2143b1a494ce92b9a51dc" - "2.0.50": - hash: "71f9d472c871d55f81a6c4ed58bec1ecf25f58c9" diff --git a/scripts/increment_conan_version.sh b/scripts/increment_conan_version.sh index 465d6b4b..d2e4b3a5 100755 --- a/scripts/increment_conan_version.sh +++ b/scripts/increment_conan_version.sh @@ -1,18 +1,9 @@ #!/bin/bash -increment_version() { - major=${1%%.*} - minor=$(echo ${1#*.} | sed -e "s/\.[0-9]*//") - revision=${1##*.} - echo ${major}.${minor}.$((revision+1)) -} - argument_version=$1 if [ -z "$argument_version" ] then - VERSION=$(cat ../platform/android/dnsproxy/lib/build.gradle | grep "version =" | sed -e "s/,.*//g" | sed -e "s/.*://g" | sed -e "s/[' ]//g") - echo "Last version was ${VERSION}" - NEW_VERSION=$(increment_version ${VERSION}) + NEW_VERSION=$(cat ../platform/android/dnsproxy/lib/build.gradle | grep "version =" | sed -e "s/,.*//g" | sed -e "s/.*://g" | sed -e "s/[' ]//g") echo "New version is ${NEW_VERSION}" else if [[ "$argument_version" =~ ^[0-9]\.[0-9].[0-9]*$ ]] From c9582621ec4eb4dded30ae1af575e42af6a53a79 Mon Sep 17 00:00:00 2001 From: Bamboo Date: Wed, 9 Nov 2022 09:56:42 +0000 Subject: [PATCH 12/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index 6b262088..bee016c2 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.49" +#define AG_DNSLIBS_VERSION "2.0.50" diff --git a/conandata.yml b/conandata.yml index e0f4c479..d39eed92 100644 --- a/conandata.yml +++ b/conandata.yml @@ -49,3 +49,5 @@ commit_hash: hash: "ed9542da284519ddfaa74c5f92c6ecdd1f2d76c5" "2.0.45": hash: "ba5ae8da51b8384557a2143b1a494ce92b9a51dc" + "2.0.50": + hash: "84d3dc526067eebb01d9d4030a833e5c466f7d6e" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index bb8f70aa..3523f4e2 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.49', code: 359] +version = [name: '2.0.50', code: 360] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 8dd46d37..bee77207 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.49 + VERSION 2.0.50 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 65895abd..649b187c 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,49,0 - PRODUCTVERSION 2,0,49,0 + FILEVERSION 2,0,50,0 + PRODUCTVERSION 2,0,50,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.49" + VALUE "ProductVersion", "2.0.50" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 9086f61e..c9365eeb 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.49")] -[assembly: AssemblyFileVersion("2.0.49")] +[assembly: AssemblyVersion("2.0.50")] +[assembly: AssemblyFileVersion("2.0.50")] From fe08b51738e029abc151d3e9e17e8850f4c0d78f Mon Sep 17 00:00:00 2001 From: Sergey Fionov Date: Wed, 9 Nov 2022 12:06:37 +0200 Subject: [PATCH 13/43] CI fix --- conandata.yml | 50 ----------------------------------------- scripts/export_conan.py | 2 +- 2 files changed, 1 insertion(+), 51 deletions(-) diff --git a/conandata.yml b/conandata.yml index d39eed92..46deca9f 100644 --- a/conandata.yml +++ b/conandata.yml @@ -1,53 +1,3 @@ commit_hash: - "2.0.20": - hash: "e0ebc461e0441a528a3d3332d7e974f4470d273e" - "2.0.21": - hash: "bc040d0fa6c8bf9d933bff420a599ea355050234" - "2.0.22": - hash: "b7fb942e1a7a51153d3439276b014019d1bd27b3" - "2.0.23": - hash: "cc6a989ff9566d4863f088c8ab23d0ec91e6d580" - "2.0.24": - hash: "39d916ec922bdc3a1c2412554a69f898e74be0b7" - "2.0.25": - hash: "484b41433a28eab4ebf6501f53853072256b9986" - "2.0.26": - hash: "7b32666c18b4876756236547c3060d9f925c504c" - "2.0.28": - hash: "46aecd61ca4341b37f23c8e0e6c447336865f2d7" - "2.0.29": - hash: "f8ac9215e5d63006fdd7c1143f7b0acb06d91637" - "2.0.30": - hash: "d3698b3e8626acccbb8082d573a6d2f6110dfa06" - "2.0.31": - hash: "049a5f3f2752032b4498c60b8a072a8f6d4053bb" - "2.0.32": - hash: "566a6843ec184bd19956b65805ecc2c0e63755d3" - "2.0.33": - hash: "6fe0dd48e6d58e2d4c64dd97563d75cd858aefa5" - "2.0.34": - hash: "35bbe1dcd366b4ceabaf9327617a8a33f52ae9e7" - "2.0.35": - hash: "17f5aa90ffdc4d5dac77a1dcd2ccf4d6dad63d10" - "2.0.36": - hash: "a3531efe50623b77d0d060c3ff85290558da5a02" - "2.0.37": - hash: "072446cc2fc8cb5a59e5570a74f830c8a9269450" - "2.0.38": - hash: "1dc211e8b259a27e3c0a8eb94d7488676224f7b9" - "2.0.39": - hash: "cf5872f821de02c1faaccde0c8bc0ec49ccfe6aa" - "2.0.40": - hash: "23b55676e684b766563fa6b6937ff5e66704ef77" - "2.0.41": - hash: "71e3b1eed6d89ff61f29904a96f8891c0e0f9412" - "2.0.42": - hash: "80da7d6b76d7962d869764afb4b7edf8191fe745" - "2.0.43": - hash: "8499ee8fd1df7dee796a118d90db091eff29900c" - "2.0.44": - hash: "ed9542da284519ddfaa74c5f92c6ecdd1f2d76c5" - "2.0.45": - hash: "ba5ae8da51b8384557a2143b1a494ce92b9a51dc" "2.0.50": hash: "84d3dc526067eebb01d9d4030a833e5c466f7d6e" diff --git a/scripts/export_conan.py b/scripts/export_conan.py index b5a8b164..fdaeb5f6 100755 --- a/scripts/export_conan.py +++ b/scripts/export_conan.py @@ -17,7 +17,7 @@ for version in versions: if (version == "777"): - subprocess.run(["git", "checkout", "master"]) + subprocess.run(["git", "checkout", "-B", "master", "origin/master"]) else: hash1 = yaml_data["commit_hash"][version]["hash"] the_hash = subprocess.run(["git", "log", "--reverse", "--ancestry-path", hash1 + "..master", "--pretty=%h"], From 3f3ac765eee0d69041e5b7bc821470ac875c7c52 Mon Sep 17 00:00:00 2001 From: Bamboo Date: Wed, 9 Nov 2022 10:07:43 +0000 Subject: [PATCH 14/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index bee016c2..ff8ef41d 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.50" +#define AG_DNSLIBS_VERSION "2.0.51" diff --git a/conandata.yml b/conandata.yml index 46deca9f..344ee10c 100644 --- a/conandata.yml +++ b/conandata.yml @@ -1,3 +1,5 @@ commit_hash: "2.0.50": hash: "84d3dc526067eebb01d9d4030a833e5c466f7d6e" + "2.0.51": + hash: "fe08b51738e029abc151d3e9e17e8850f4c0d78f" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 3523f4e2..362651f9 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.50', code: 360] +version = [name: '2.0.51', code: 361] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index bee77207..f92dc4f6 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.50 + VERSION 2.0.51 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 649b187c..b3a0c152 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,50,0 - PRODUCTVERSION 2,0,50,0 + FILEVERSION 2,0,51,0 + PRODUCTVERSION 2,0,51,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.50" + VALUE "ProductVersion", "2.0.51" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index c9365eeb..4ee68580 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.50")] -[assembly: AssemblyFileVersion("2.0.50")] +[assembly: AssemblyVersion("2.0.51")] +[assembly: AssemblyFileVersion("2.0.51")] From a523561ed6482629128c5336ca0744261bc8602f Mon Sep 17 00:00:00 2001 From: Sergey Fionov Date: Thu, 10 Nov 2022 15:59:52 +0200 Subject: [PATCH 15/43] Update NLC to 2.0.32 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 013a519c..31b1b28e 100644 --- a/conanfile.py +++ b/conanfile.py @@ -31,7 +31,7 @@ def requirements(self): self.requires("klib/2021-04-06@AdguardTeam/NativeLibsCommon") self.requires("ldns/2021-03-29@AdguardTeam/NativeLibsCommon") self.requires("ngtcp2/0.8.0@AdguardTeam/NativeLibsCommon") - self.requires("native_libs_common/2.0.23@AdguardTeam/NativeLibsCommon") + self.requires("native_libs_common/2.0.32@AdguardTeam/NativeLibsCommon") def build_requirements(self): self.build_requires("gtest/1.11.0") From 15ddc3d70c2bd889b04c8bc7b5eb6819ccc532a1 Mon Sep 17 00:00:00 2001 From: Bamboo Date: Thu, 10 Nov 2022 14:00:44 +0000 Subject: [PATCH 16/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index ff8ef41d..f8891d20 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.51" +#define AG_DNSLIBS_VERSION "2.0.52" diff --git a/conandata.yml b/conandata.yml index 344ee10c..ec4d7709 100644 --- a/conandata.yml +++ b/conandata.yml @@ -3,3 +3,5 @@ commit_hash: hash: "84d3dc526067eebb01d9d4030a833e5c466f7d6e" "2.0.51": hash: "fe08b51738e029abc151d3e9e17e8850f4c0d78f" + "2.0.52": + hash: "a523561ed6482629128c5336ca0744261bc8602f" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 362651f9..da3499cf 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.51', code: 361] +version = [name: '2.0.52', code: 362] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index f92dc4f6..962b8ae6 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.51 + VERSION 2.0.52 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index b3a0c152..ebd7df54 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,51,0 - PRODUCTVERSION 2,0,51,0 + FILEVERSION 2,0,52,0 + PRODUCTVERSION 2,0,52,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.51" + VALUE "ProductVersion", "2.0.52" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 4ee68580..25f49230 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.51")] -[assembly: AssemblyFileVersion("2.0.51")] +[assembly: AssemblyVersion("2.0.52")] +[assembly: AssemblyFileVersion("2.0.52")] From c58abbe9879758946b0f6a04f4d3c39132866769 Mon Sep 17 00:00:00 2001 From: Sergey Fionov Date: Thu, 10 Nov 2022 17:47:22 +0200 Subject: [PATCH 17/43] Revert "Update NLC to 2.0.32" This reverts commit a523561ed6482629128c5336ca0744261bc8602f. --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 31b1b28e..013a519c 100644 --- a/conanfile.py +++ b/conanfile.py @@ -31,7 +31,7 @@ def requirements(self): self.requires("klib/2021-04-06@AdguardTeam/NativeLibsCommon") self.requires("ldns/2021-03-29@AdguardTeam/NativeLibsCommon") self.requires("ngtcp2/0.8.0@AdguardTeam/NativeLibsCommon") - self.requires("native_libs_common/2.0.32@AdguardTeam/NativeLibsCommon") + self.requires("native_libs_common/2.0.23@AdguardTeam/NativeLibsCommon") def build_requirements(self): self.build_requires("gtest/1.11.0") From 0bcdd2b8b3069b72200efaed13e99433ed6f419a Mon Sep 17 00:00:00 2001 From: Bamboo Date: Thu, 10 Nov 2022 15:48:29 +0000 Subject: [PATCH 18/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index f8891d20..157a71af 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.52" +#define AG_DNSLIBS_VERSION "2.0.53" diff --git a/conandata.yml b/conandata.yml index ec4d7709..73c40646 100644 --- a/conandata.yml +++ b/conandata.yml @@ -5,3 +5,5 @@ commit_hash: hash: "fe08b51738e029abc151d3e9e17e8850f4c0d78f" "2.0.52": hash: "a523561ed6482629128c5336ca0744261bc8602f" + "2.0.53": + hash: "5b54a9143031cd7ae7ac29ed4395ff08af42088d" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index da3499cf..9aff194e 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.52', code: 362] +version = [name: '2.0.53', code: 363] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 962b8ae6..d5ecc659 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.52 + VERSION 2.0.53 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index ebd7df54..234dd81d 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,52,0 - PRODUCTVERSION 2,0,52,0 + FILEVERSION 2,0,53,0 + PRODUCTVERSION 2,0,53,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.52" + VALUE "ProductVersion", "2.0.53" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 25f49230..9253a5a7 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.52")] -[assembly: AssemblyFileVersion("2.0.52")] +[assembly: AssemblyVersion("2.0.53")] +[assembly: AssemblyFileVersion("2.0.53")] From b830de744fe2f3dbaebb7fa05c3676dc01eb4832 Mon Sep 17 00:00:00 2001 From: Sergey Fionov Date: Thu, 10 Nov 2022 21:34:44 +0200 Subject: [PATCH 19/43] Update specs --- bamboo-specs/android-library.yaml | 4 ++-- bamboo-specs/increment-version.yaml | 2 +- bamboo-specs/run-tests.yaml | 2 +- bamboo-specs/upload-conan-recipes.yaml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bamboo-specs/android-library.yaml b/bamboo-specs/android-library.yaml index c8898de4..bc0820e9 100644 --- a/bamboo-specs/android-library.yaml +++ b/bamboo-specs/android-library.yaml @@ -16,7 +16,7 @@ DL - Android build and deploy: key: JOB1 description: Builds and deploy libraries docker: - image: adguard/core-libs:1.5 + image: adguard/core-libs:1.11 volumes: ${bamboo.working.directory}: ${bamboo.working.directory} ${bamboo.tmp.directory}: ${bamboo.tmp.directory} @@ -66,7 +66,7 @@ DL - Android build and deploy: esac if [ "${current_branch}" = "master" ]; then - conan export ../../.. AdguardTeam/NativeLibsCommon + conan export ../../.. /777@AdguardTeam/NativeLibsCommon fi working-dir: dns-libs/platform/android/dnsproxy description: Publishes or assembles libraries diff --git a/bamboo-specs/increment-version.yaml b/bamboo-specs/increment-version.yaml index 5befd98d..176827eb 100644 --- a/bamboo-specs/increment-version.yaml +++ b/bamboo-specs/increment-version.yaml @@ -13,7 +13,7 @@ stages: DL - Increment version: key: JOB1 docker: - image: adguard/core-libs:latest + image: adguard/core-libs:1.11 volumes: ${bamboo.working.directory}: ${bamboo.working.directory} ${bamboo.tmp.directory}: ${bamboo.tmp.directory} diff --git a/bamboo-specs/run-tests.yaml b/bamboo-specs/run-tests.yaml index 09ee136e..ce10f000 100644 --- a/bamboo-specs/run-tests.yaml +++ b/bamboo-specs/run-tests.yaml @@ -14,7 +14,7 @@ Run C++ tests: key: JOB1 description: Runs C++ tests docker: - image: adguard/core-libs:latest + image: adguard/core-libs:1.11 volumes: ${bamboo.working.directory}: ${bamboo.working.directory} ${bamboo.tmp.directory}: ${bamboo.tmp.directory} diff --git a/bamboo-specs/upload-conan-recipes.yaml b/bamboo-specs/upload-conan-recipes.yaml index 58b36ccd..0802b87b 100644 --- a/bamboo-specs/upload-conan-recipes.yaml +++ b/bamboo-specs/upload-conan-recipes.yaml @@ -13,7 +13,7 @@ stages: Default Job: key: JOB1 docker: - image: adguard/core-libs:latest + image: adguard/core-libs:1.11 volumes: ${bamboo.git.cache.directory}: ${bamboo.git.cache.directory} ${system.HOME}/.ssh: /root/.ssh From 2ba6ec05fc0c443d52356520bf08546795d2543d Mon Sep 17 00:00:00 2001 From: Bamboo Date: Thu, 10 Nov 2022 19:35:28 +0000 Subject: [PATCH 20/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index 157a71af..e7d67dfa 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.53" +#define AG_DNSLIBS_VERSION "2.0.54" diff --git a/conandata.yml b/conandata.yml index 73c40646..dd05f388 100644 --- a/conandata.yml +++ b/conandata.yml @@ -7,3 +7,5 @@ commit_hash: hash: "a523561ed6482629128c5336ca0744261bc8602f" "2.0.53": hash: "5b54a9143031cd7ae7ac29ed4395ff08af42088d" + "2.0.54": + hash: "b830de744fe2f3dbaebb7fa05c3676dc01eb4832" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 9aff194e..7520c23f 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.53', code: 363] +version = [name: '2.0.54', code: 364] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index d5ecc659..7952c6d5 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.53 + VERSION 2.0.54 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 234dd81d..41a2303d 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,53,0 - PRODUCTVERSION 2,0,53,0 + FILEVERSION 2,0,54,0 + PRODUCTVERSION 2,0,54,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.53" + VALUE "ProductVersion", "2.0.54" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 9253a5a7..cb49ff12 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.53")] -[assembly: AssemblyFileVersion("2.0.53")] +[assembly: AssemblyVersion("2.0.54")] +[assembly: AssemblyFileVersion("2.0.54")] From 75662502b9165b074259942e49ffb536fcc80c86 Mon Sep 17 00:00:00 2001 From: Nikita Gorskikh Date: Thu, 10 Nov 2022 23:44:55 +0300 Subject: [PATCH 21/43] Pull request #465: Fix nullptr dereference in DotConnection Merge in ADGUARD-CORE-LIBS/dns-libs from fix/nullptr_dereference_dot to master Squashed commit of the following: commit 952dedbcb023309772c1dccbec8d881dfefcd121 Author: Nikita Gorskikh Date: Thu Nov 10 18:29:13 2022 +0300 Fix nullptr dereference in DotConnection --- upstream/upstream_dot.cpp | 62 +++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/upstream/upstream_dot.cpp b/upstream/upstream_dot.cpp index 0f3eb9f2..a033fe77 100644 --- a/upstream/upstream_dot.cpp +++ b/upstream/upstream_dot.cpp @@ -46,39 +46,39 @@ class DotConnection : public DnsFramedConnection { auto &err = *result.error; log_conn(m_log, err, this, "Failed to bootstrap: {}", err.str()); this->on_close(make_error(DE_BOOTSTRAP_ERROR, result.error)); + co_return; + } + m_result = std::move(result); + assert(!m_result.addresses.empty()); + + static const std::string DOT_ALPN = "dot"; + + SocketAddress &addr = m_result.addresses[0]; + Millis timeout; + if (auto *upstream = (DotUpstream *) m_pool.lock()->upstream()) { + m_stream = upstream->make_secured_socket(utils::TP_TCP, + SocketFactory::SecureSocketParameters{ + .session_cache = &upstream->m_tls_session_cache, + .server_name = m_result.server_name.empty() ? addr.host_str() : m_result.server_name, + .alpn = {DOT_ALPN}, + }); + timeout = upstream->options().timeout; } else { - m_result = std::move(result); - assert(!m_result.addresses.empty()); - - static const std::string DOT_ALPN = "dot"; - - SocketAddress &addr = m_result.addresses[0]; - Millis timeout; - if (auto *upstream = (DotUpstream *) m_pool.lock()->upstream()) { - m_stream = upstream->make_secured_socket(utils::TP_TCP, - SocketFactory::SecureSocketParameters{ - .session_cache = &upstream->m_tls_session_cache, - .server_name = m_result.server_name.empty() ? addr.host_str() : m_result.server_name, - .alpn = {DOT_ALPN}, - }); - timeout = upstream->options().timeout; - } else { - on_close(make_error(DE_SHUTTING_DOWN, "Shutting down")); - } - dbglog(m_log, "{}", addr.str()); - m_address = addr; - auto err = m_stream->connect({ - &m_loop, - addr, - {on_connected, on_read, on_close, this}, - timeout, - }); - if (err) { - log_conn(m_log, err, this, "Failed to start connect: {}", err->str()); - on_close(this, err); - } + on_close(make_error(DE_SHUTTING_DOWN, "Shutting down")); + co_return; + } + dbglog(m_log, "{}", addr.str()); + m_address = addr; + auto err = m_stream->connect({ + &m_loop, + addr, + {on_connected, on_read, on_close, this}, + timeout, + }); + if (err) { + log_conn(m_log, err, this, "Failed to start connect: {}", err->str()); + on_close(this, err); } - co_return; } void connect() override { From f65e2630b5e8441bacbee678f92e4449efda7d4d Mon Sep 17 00:00:00 2001 From: Bamboo Date: Thu, 10 Nov 2022 20:45:35 +0000 Subject: [PATCH 22/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index e7d67dfa..2dee92ae 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.54" +#define AG_DNSLIBS_VERSION "2.0.55" diff --git a/conandata.yml b/conandata.yml index dd05f388..7a0dc975 100644 --- a/conandata.yml +++ b/conandata.yml @@ -9,3 +9,5 @@ commit_hash: hash: "5b54a9143031cd7ae7ac29ed4395ff08af42088d" "2.0.54": hash: "b830de744fe2f3dbaebb7fa05c3676dc01eb4832" + "2.0.55": + hash: "75662502b9165b074259942e49ffb536fcc80c86" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 7520c23f..869aa20c 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.54', code: 364] +version = [name: '2.0.55', code: 365] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 7952c6d5..6fc0ccc9 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.54 + VERSION 2.0.55 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 41a2303d..5c4c770e 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,54,0 - PRODUCTVERSION 2,0,54,0 + FILEVERSION 2,0,55,0 + PRODUCTVERSION 2,0,55,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.54" + VALUE "ProductVersion", "2.0.55" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index cb49ff12..58bc5fe0 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.54")] -[assembly: AssemblyFileVersion("2.0.54")] +[assembly: AssemblyVersion("2.0.55")] +[assembly: AssemblyFileVersion("2.0.55")] From dd68d129a2449083e0d99fc06cc040ddf7fd23de Mon Sep 17 00:00:00 2001 From: Sergei Gunchenko Date: Mon, 14 Nov 2022 19:29:11 +0300 Subject: [PATCH 23/43] Pull request 466: Expose a rule validation method on Windows Merge in ADGUARD-CORE-LIBS/dns-libs from fix/AG-17542 to master Squashed commit of the following: commit 5175f42e9a76df9cdcf14e8c95c7cf8200b96589 Author: Boris Date: Mon Nov 14 18:13:36 2022 +0200 fix #AG-17542, fis hash commit 123326f13bd1128b460285e42fa94942266c03c6 Author: Boris Date: Mon Nov 14 18:12:02 2022 +0200 fix #AG-17542, win part commit ab5bbe66fe7040180e742b6023a70fbce5dc0f3b Author: Sergei Gunchenko Date: Mon Nov 14 17:59:34 2022 +0200 windows: expose a rule validation method --- platform/windows/capi/include/ag_dns.h | 5 ++++ platform/windows/capi/src/ag_dns.cpp | 5 ++++ platform/windows/capi/src/ag_dns_h_hash.inc | 2 +- .../Adguard.Dns.Tests.csproj | 1 + .../Adguard.Dns.Tests/TestApi/TestDnsUtils.cs | 26 +++++++++++++++++++ .../cs/Adguard.Dns/Adguard.Dns/AGDnsApi.cs | 16 +++++++++++- .../Adguard.Dns/Adguard.Dns/Utils/DnsUtils.cs | 15 +++++++++++ 7 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 platform/windows/cs/Adguard.Dns/Adguard.Dns.Tests/TestApi/TestDnsUtils.cs diff --git a/platform/windows/capi/include/ag_dns.h b/platform/windows/capi/include/ag_dns.h index 27466dc6..01b6017a 100644 --- a/platform/windows/capi/include/ag_dns.h +++ b/platform/windows/capi/include/ag_dns.h @@ -460,6 +460,11 @@ AG_EXPORT const char *ag_dns_stamp_prettier_url(ag_dns_stamp *stamp); AG_EXPORT const char *ag_test_upstream(const ag_upstream_options *upstream, bool ipv6_available, ag_certificate_verification_cb on_certificate_verification, bool offline); +/** + * Check if string is a valid rule + */ +AG_EXPORT bool ag_is_valid_dns_rule(const char *str); + /** * Return the C API version (hash of this file). */ diff --git a/platform/windows/capi/src/ag_dns.cpp b/platform/windows/capi/src/ag_dns.cpp index 5b60fdb9..bfec7beb 100644 --- a/platform/windows/capi/src/ag_dns.cpp +++ b/platform/windows/capi/src/ag_dns.cpp @@ -2,6 +2,7 @@ #include +#include "dns/dnsfilter/dnsfilter.h" #include "dns/proxy/dnsproxy.h" #include "dns/upstream/upstream_utils.h" @@ -641,6 +642,10 @@ const char *ag_test_upstream(const ag_upstream_options *c_upstream, bool ipv6_av return marshal_str(result.value_or("")); } +bool ag_is_valid_dns_rule(const char *str) { + return DnsFilter::is_valid_rule(str); +} + void ag_str_free(const char *str) { std::free((void *) str); } diff --git a/platform/windows/capi/src/ag_dns_h_hash.inc b/platform/windows/capi/src/ag_dns_h_hash.inc index aa7c57ec..40df0b43 100644 --- a/platform/windows/capi/src/ag_dns_h_hash.inc +++ b/platform/windows/capi/src/ag_dns_h_hash.inc @@ -1 +1 @@ -#define AG_DNSLIBS_H_HASH "d6cad016242d50dd33b79e34ab944d8a82fd53d32db4bf96889c322cad55434d" +#define AG_DNSLIBS_H_HASH "9e354bcab6fea09519b905baa129a377ccf54fcd65308c28e7fe3c0de857f49d" diff --git a/platform/windows/cs/Adguard.Dns/Adguard.Dns.Tests/Adguard.Dns.Tests.csproj b/platform/windows/cs/Adguard.Dns/Adguard.Dns.Tests/Adguard.Dns.Tests.csproj index bb3733ed..95304503 100644 --- a/platform/windows/cs/Adguard.Dns/Adguard.Dns.Tests/Adguard.Dns.Tests.csproj +++ b/platform/windows/cs/Adguard.Dns/Adguard.Dns.Tests/Adguard.Dns.Tests.csproj @@ -78,6 +78,7 @@ + diff --git a/platform/windows/cs/Adguard.Dns/Adguard.Dns.Tests/TestApi/TestDnsUtils.cs b/platform/windows/cs/Adguard.Dns/Adguard.Dns.Tests/TestApi/TestDnsUtils.cs new file mode 100644 index 00000000..d2a5c26b --- /dev/null +++ b/platform/windows/cs/Adguard.Dns/Adguard.Dns.Tests/TestApi/TestDnsUtils.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using Adguard.Dns.Utils; +using NUnit.Framework; + +namespace Adguard.Dns.Tests.TestApi +{ + [TestFixture] + public class TestDnsUtils + { + [Test] + public void TesRuleValidation() + { + Dictionary ruleValidationTable = new Dictionary + { + {"||browser.events.data.microsoft.com^$dnstype=~A", true} + }; + + foreach (var pair in ruleValidationTable) + { + Console.WriteLine("Rule: {0}", pair.Key); + Assert.AreEqual(DnsUtils.IsRuleValid(pair.Key), pair.Value); + } + } + } +} \ No newline at end of file diff --git a/platform/windows/cs/Adguard.Dns/Adguard.Dns/AGDnsApi.cs b/platform/windows/cs/Adguard.Dns/Adguard.Dns/AGDnsApi.cs index 5280b682..e941ab8d 100644 --- a/platform/windows/cs/Adguard.Dns/Adguard.Dns/AGDnsApi.cs +++ b/platform/windows/cs/Adguard.Dns/Adguard.Dns/AGDnsApi.cs @@ -22,7 +22,7 @@ public static class AGDnsApi /// /// The current API version hash with which the ProxyServer was tested /// - private const string API_VERSION_HASH = "d6cad016242d50dd33b79e34ab944d8a82fd53d32db4bf96889c322cad55434d"; + private const string API_VERSION_HASH = "9e354bcab6fea09519b905baa129a377ccf54fcd65308c28e7fe3c0de857f49d"; #endregion #region API Functions @@ -115,6 +115,20 @@ internal static extern IntPtr ag_test_upstream( [MarshalAs(UnmanagedType.FunctionPtr)] cbd_onCertificateVerification onCertificateVerification, [MarshalAs(UnmanagedType.I1)] bool offline); + + /// + /// Check if the specified rule is valid + /// + /// Rule text + /// True, is specified rule is valid, otherwise false + [DllImport(DnsLibName, CallingConvention = CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ag_is_valid_dns_rule( + [MarshalAs( + UnmanagedType.CustomMarshaler, + MarshalTypeRef = typeof(ManualStringToPtrMarshaler))] string ruleText); + + /// /// Parses a DNS stamp string and returns a instance or an error /// The caller is responsible for freeing diff --git a/platform/windows/cs/Adguard.Dns/Adguard.Dns/Utils/DnsUtils.cs b/platform/windows/cs/Adguard.Dns/Adguard.Dns/Utils/DnsUtils.cs index 60434f54..27bf1fd5 100644 --- a/platform/windows/cs/Adguard.Dns/Adguard.Dns/Utils/DnsUtils.cs +++ b/platform/windows/cs/Adguard.Dns/Adguard.Dns/Utils/DnsUtils.cs @@ -167,6 +167,21 @@ public static string GetDnsStampString(DnsStamp dnsStamp) } } + /// + /// Checks if specified rule is valid + /// + /// Rule text + /// True, is specified rule is valid, otherwise false + public static bool IsRuleValid(string ruleText) + { + if (string.IsNullOrEmpty(ruleText)) + { + return false; + } + + return AGDnsApi.ag_is_valid_dns_rule(ruleText); + } + /// /// Checks if upstream is valid and available /// From e18d0431c823597a6c680589111b12e503c4abb8 Mon Sep 17 00:00:00 2001 From: Bamboo Date: Mon, 14 Nov 2022 16:29:52 +0000 Subject: [PATCH 24/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index 2dee92ae..b9069efc 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.55" +#define AG_DNSLIBS_VERSION "2.0.56" diff --git a/conandata.yml b/conandata.yml index 7a0dc975..1f3e4a1e 100644 --- a/conandata.yml +++ b/conandata.yml @@ -11,3 +11,5 @@ commit_hash: hash: "b830de744fe2f3dbaebb7fa05c3676dc01eb4832" "2.0.55": hash: "75662502b9165b074259942e49ffb536fcc80c86" + "2.0.56": + hash: "dd68d129a2449083e0d99fc06cc040ddf7fd23de" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 869aa20c..e4b51dda 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.55', code: 365] +version = [name: '2.0.56', code: 366] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 6fc0ccc9..74f0d8d0 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.55 + VERSION 2.0.56 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 5c4c770e..d64df477 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,55,0 - PRODUCTVERSION 2,0,55,0 + FILEVERSION 2,0,56,0 + PRODUCTVERSION 2,0,56,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.55" + VALUE "ProductVersion", "2.0.56" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 58bc5fe0..acbcaba1 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.55")] -[assembly: AssemblyFileVersion("2.0.55")] +[assembly: AssemblyVersion("2.0.56")] +[assembly: AssemblyFileVersion("2.0.56")] From fe4097c4b9372d9d30386ca4b84abef93e88e4ac Mon Sep 17 00:00:00 2001 From: Sergei Gunchenko Date: Thu, 17 Nov 2022 13:41:43 +0300 Subject: [PATCH 25/43] Pull request 468: Destroy socket factory after upstreams Merge in ADGUARD-CORE-LIBS/dns-libs from fix/crash_oproxy to master Squashed commit of the following: commit 1831f149b323dc63b9db4bf59f8a4266d01a1c7d Author: Sergei Gunchenko Date: Thu Nov 17 09:04:57 2022 +0200 Destroy socket factory after upstreams --- proxy/dns_forwarder.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/proxy/dns_forwarder.cpp b/proxy/dns_forwarder.cpp index 7cde150e..49429d3e 100644 --- a/proxy/dns_forwarder.cpp +++ b/proxy/dns_forwarder.cpp @@ -458,12 +458,6 @@ void DnsForwarder::deinit() { m_settings = nullptr; m_shutdown_guard.reset(); - infolog(m_log, "Deinitilizing socket factory..."); - if (m_socket_factory != nullptr) { - m_socket_factory->deinit(); - } - infolog(m_log, "Done"); - infolog(m_log, "Destroying DNS64 state..."); if (m_dns64_state) { m_dns64_state->discovering_upstream.reset(); @@ -478,6 +472,12 @@ void DnsForwarder::deinit() { m_fallbacks.clear(); infolog(m_log, "Done"); + infolog(m_log, "Deinitilizing socket factory..."); + if (m_socket_factory != nullptr) { + m_socket_factory->deinit(); + } + infolog(m_log, "Done"); + infolog(m_log, "Destroying DNS filter..."); m_filter.destroy(std::exchange(m_filter_handle, nullptr)); infolog(m_log, "Done"); From 18c344d70f664720b5b922461fca7f2bed47aa70 Mon Sep 17 00:00:00 2001 From: Bamboo Date: Thu, 17 Nov 2022 10:42:24 +0000 Subject: [PATCH 26/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index b9069efc..6307efa0 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.56" +#define AG_DNSLIBS_VERSION "2.0.57" diff --git a/conandata.yml b/conandata.yml index 1f3e4a1e..fda8e67c 100644 --- a/conandata.yml +++ b/conandata.yml @@ -13,3 +13,5 @@ commit_hash: hash: "75662502b9165b074259942e49ffb536fcc80c86" "2.0.56": hash: "dd68d129a2449083e0d99fc06cc040ddf7fd23de" + "2.0.57": + hash: "fe4097c4b9372d9d30386ca4b84abef93e88e4ac" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index e4b51dda..d05e82e6 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.56', code: 366] +version = [name: '2.0.57', code: 367] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 74f0d8d0..1ea128bc 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.56 + VERSION 2.0.57 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index d64df477..0b407aa4 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,56,0 - PRODUCTVERSION 2,0,56,0 + FILEVERSION 2,0,57,0 + PRODUCTVERSION 2,0,57,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.56" + VALUE "ProductVersion", "2.0.57" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index acbcaba1..701adf19 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.56")] -[assembly: AssemblyFileVersion("2.0.56")] +[assembly: AssemblyVersion("2.0.57")] +[assembly: AssemblyFileVersion("2.0.57")] From 0f7c3db8e1fc36408fa15d5ecad05cd875dbe4cc Mon Sep 17 00:00:00 2001 From: Sergey Fionov Date: Thu, 17 Nov 2022 17:10:08 +0300 Subject: [PATCH 27/43] Pull request 469: Do not double deinit forwarder when bootstrap is empty Merge in ADGUARD-CORE-LIBS/dns-libs from fix/forwarder_double_deinit to master Squashed commit of the following: commit b478bd79ad50b8dd6af368adca8015ebd4648333 Author: Sergey Fionov Date: Thu Nov 17 13:42:24 2022 +0200 unique_ptr -> optional commit d563d84976be764c5f2443e2b3ffade3566ecfcd Author: Sergey Fionov Date: Thu Nov 17 13:36:32 2022 +0200 Do not double deinit forwarder --- proxy/dnsproxy.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/proxy/dnsproxy.cpp b/proxy/dnsproxy.cpp index 22bda189..3d242045 100644 --- a/proxy/dnsproxy.cpp +++ b/proxy/dnsproxy.cpp @@ -81,7 +81,7 @@ const DnsProxySettings &DnsProxySettings::get_default() { struct DnsProxy::Impl { Logger log{"DNS proxy"}; EventLoopPtr loop; - DnsForwarder forwarder; + std::optional forwarder; DnsProxySettings settings; DnsProxyEvents events; std::vector listeners; @@ -106,8 +106,10 @@ std::pair DnsProxy::init(DnsProxySettings settings, DnsProxyEve } proxy->loop = EventLoop::create(); - auto [result, err_or_warn] = proxy->forwarder.init(proxy->loop, proxy->settings, proxy->events); + proxy->forwarder.emplace(); + auto [result, err_or_warn] = proxy->forwarder->init(proxy->loop, proxy->settings, proxy->events); if (!result) { + proxy->forwarder.reset(); this->deinit(); return {false, err_or_warn}; } @@ -145,7 +147,9 @@ void DnsProxy::deinit() { proxy->listeners.clear(); infolog(proxy->log, "Shutting down listeners done"); - proxy->forwarder.deinit(); + if (proxy->forwarder) { + proxy->forwarder->deinit(); + } infolog(proxy->log, "Stopping event loop"); proxy->loop->stop(); @@ -165,7 +169,7 @@ const DnsProxySettings &DnsProxy::get_settings() const { coro::Task DnsProxy::handle_message(Uint8View message, const DnsMessageInfo *info) { std::unique_ptr &proxy = m_pimpl; - Uint8Vector response = co_await proxy->forwarder.handle_message(message, info); + Uint8Vector response = co_await proxy->forwarder->handle_message(message, info); co_return response; } From f768655158108551549221d041865dcfd26aec93 Mon Sep 17 00:00:00 2001 From: Sergey Fionov Date: Thu, 17 Nov 2022 17:10:26 +0300 Subject: [PATCH 28/43] Pull request 470: Turn off optimizations of parallel unit on Windows Merge in ADGUARD-CORE-LIBS/dns-libs from fix/parallel_optimize_windows to master Squashed commit of the following: commit 57ce0c04a34c9992ae173719a0ca9e4766e6d2b5 Author: Sergey Fionov Date: Thu Nov 17 15:36:06 2022 +0200 Turn off optimizations of parallel unit on Windows --- upstream/bootstrapper.cpp | 6 ++++++ upstream/dns_framed.h | 6 ++++++ upstream/upstream_doq.cpp | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/upstream/bootstrapper.cpp b/upstream/bootstrapper.cpp index 522cd9c4..01ac8851 100644 --- a/upstream/bootstrapper.cpp +++ b/upstream/bootstrapper.cpp @@ -1,7 +1,13 @@ #include #include +#if defined _WIN32 && !defined __clang__ +#pragma optimize( "", off ) +#endif #include "common/parallel.h" +#if defined _WIN32 && !defined __clang__ +#pragma optimize( "", on ) +#endif #include "common/utils.h" #include "dns/dnsstamp/dns_stamp.h" #include "dns/upstream/bootstrapper.h" diff --git a/upstream/dns_framed.h b/upstream/dns_framed.h index 8422f785..b737fbd8 100644 --- a/upstream/dns_framed.h +++ b/upstream/dns_framed.h @@ -7,7 +7,13 @@ #include #include "common/logger.h" +#if defined _WIN32 && !defined __clang__ +#pragma optimize( "", off ) +#endif #include "common/parallel.h" +#if defined _WIN32 && !defined __clang__ +#pragma optimize( "", on ) +#endif #include "dns/common/event_loop.h" #include "dns/net/tcp_dns_buffer.h" #include "dns/net/tls_session_cache.h" diff --git a/upstream/upstream_doq.cpp b/upstream/upstream_doq.cpp index 17284a24..2461aab4 100644 --- a/upstream/upstream_doq.cpp +++ b/upstream/upstream_doq.cpp @@ -12,7 +12,13 @@ #endif #include "common/clock.h" +#if defined _WIN32 && !defined __clang__ +#pragma optimize( "", off ) +#endif #include "common/parallel.h" +#if defined _WIN32 && !defined __clang__ +#pragma optimize( "", on ) +#endif #include "common/time_utils.h" #include "dns/upstream/upstream.h" From 0e0b97aea8adbc6cc5f28c70818988e17ba9c40a Mon Sep 17 00:00:00 2001 From: Bamboo Date: Thu, 17 Nov 2022 14:11:20 +0000 Subject: [PATCH 29/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index 6307efa0..d38e1162 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.57" +#define AG_DNSLIBS_VERSION "2.0.58" diff --git a/conandata.yml b/conandata.yml index fda8e67c..1c188dc8 100644 --- a/conandata.yml +++ b/conandata.yml @@ -15,3 +15,5 @@ commit_hash: hash: "dd68d129a2449083e0d99fc06cc040ddf7fd23de" "2.0.57": hash: "fe4097c4b9372d9d30386ca4b84abef93e88e4ac" + "2.0.58": + hash: "f768655158108551549221d041865dcfd26aec93" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index d05e82e6..dc60f474 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.57', code: 367] +version = [name: '2.0.58', code: 368] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 1ea128bc..aa79ab96 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.57 + VERSION 2.0.58 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 0b407aa4..14ac7b75 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,57,0 - PRODUCTVERSION 2,0,57,0 + FILEVERSION 2,0,58,0 + PRODUCTVERSION 2,0,58,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.57" + VALUE "ProductVersion", "2.0.58" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 701adf19..abfbb21e 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.57")] -[assembly: AssemblyFileVersion("2.0.57")] +[assembly: AssemblyVersion("2.0.58")] +[assembly: AssemblyFileVersion("2.0.58")] From a1448ab3165aaed99f5ffb183988d455e5dc9f26 Mon Sep 17 00:00:00 2001 From: Bamboo Date: Thu, 17 Nov 2022 14:39:07 +0000 Subject: [PATCH 30/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index d38e1162..d61743f5 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.58" +#define AG_DNSLIBS_VERSION "2.0.59" diff --git a/conandata.yml b/conandata.yml index 1c188dc8..96caad4a 100644 --- a/conandata.yml +++ b/conandata.yml @@ -17,3 +17,5 @@ commit_hash: hash: "fe4097c4b9372d9d30386ca4b84abef93e88e4ac" "2.0.58": hash: "f768655158108551549221d041865dcfd26aec93" + "2.0.59": + hash: "0e0b97aea8adbc6cc5f28c70818988e17ba9c40a" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index dc60f474..272d6535 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.58', code: 368] +version = [name: '2.0.59', code: 369] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index aa79ab96..6029562d 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.58 + VERSION 2.0.59 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 14ac7b75..87d80d14 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,58,0 - PRODUCTVERSION 2,0,58,0 + FILEVERSION 2,0,59,0 + PRODUCTVERSION 2,0,59,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.58" + VALUE "ProductVersion", "2.0.59" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index abfbb21e..17473500 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.58")] -[assembly: AssemblyFileVersion("2.0.58")] +[assembly: AssemblyVersion("2.0.59")] +[assembly: AssemblyFileVersion("2.0.59")] From 4112a483276498bb2aa305f17cb6d2fa959fef50 Mon Sep 17 00:00:00 2001 From: Bamboo Date: Fri, 2 Dec 2022 10:14:13 +0000 Subject: [PATCH 31/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index d61743f5..7df32566 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.59" +#define AG_DNSLIBS_VERSION "2.0.60" diff --git a/conandata.yml b/conandata.yml index 96caad4a..f5c13f41 100644 --- a/conandata.yml +++ b/conandata.yml @@ -19,3 +19,5 @@ commit_hash: hash: "f768655158108551549221d041865dcfd26aec93" "2.0.59": hash: "0e0b97aea8adbc6cc5f28c70818988e17ba9c40a" + "2.0.60": + hash: "a1448ab3165aaed99f5ffb183988d455e5dc9f26" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 272d6535..74a1b633 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.59', code: 369] +version = [name: '2.0.60', code: 370] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 6029562d..0b6e8215 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.59 + VERSION 2.0.60 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 87d80d14..fb87e694 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,59,0 - PRODUCTVERSION 2,0,59,0 + FILEVERSION 2,0,60,0 + PRODUCTVERSION 2,0,60,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.59" + VALUE "ProductVersion", "2.0.60" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 17473500..ef99e396 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.59")] -[assembly: AssemblyFileVersion("2.0.59")] +[assembly: AssemblyVersion("2.0.60")] +[assembly: AssemblyFileVersion("2.0.60")] From 1273e47a36fc338dd517c08a265bec9475763f9b Mon Sep 17 00:00:00 2001 From: Ivan Bretkin Date: Fri, 2 Dec 2022 13:30:05 +0300 Subject: [PATCH 32/43] Pull request #471: AG-12505 Add nrmap files to artifactory for core, dns, vpn adapters Merge in ADGUARD-CORE-LIBS/dns-libs from feature/AG-12505 to master Squashed commit of the following: commit f44619b7d767ab8373af2bce55d2adfb7ca277e6 Author: Ivan Bretkin Date: Tue Nov 29 17:26:23 2022 +0300 add nrmap to nuspec commit 03ac4ff3d8c8d4fa434f77e7cfc7ffe92f7c3ac0 Author: Ivan Bretkin Date: Tue Nov 29 17:23:51 2022 +0300 Revert "add obfuscation" This reverts commit 2188b7db0de3dbd29e288cf7f0dd8cd1525dc420. commit cf475bff60af0d35e92bc258e7467d80a893c41d Author: Ivan Bretkin Date: Tue Nov 29 15:26:52 2022 +0300 remove debug output commit 6ba4796ad01a5c2eb80f20e53fdd12fba79c8b68 Author: Ivan Bretkin Date: Tue Nov 29 15:18:18 2022 +0300 remove signing from obfuscation commit 3810c11755754b82efbfc937ac2e6165b6850b8c Author: Ivan Bretkin Date: Tue Nov 29 14:48:33 2022 +0300 change pfx to snk commit 84df8ffdc871619bd0a5b08a453a6bfe8f6db3ec Author: Ivan Bretkin Date: Tue Nov 29 14:06:33 2022 +0300 add debug output commit dc37e9ca3d11b843907543c4b468ca179042c517 Author: Ivan Bretkin Date: Tue Nov 29 13:24:51 2022 +0300 add start_command function commit 2188b7db0de3dbd29e288cf7f0dd8cd1525dc420 Author: Ivan Bretkin Date: Tue Nov 29 12:56:03 2022 +0300 add obfuscation --- platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec | 1 + .../cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec.snapshot | 1 + 2 files changed, 2 insertions(+) diff --git a/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec b/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec index d629bf15..c5b693ca 100644 --- a/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec +++ b/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec @@ -18,6 +18,7 @@ + diff --git a/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec.snapshot b/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec.snapshot index e2d97df5..b7b4ee46 100644 --- a/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec.snapshot +++ b/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec.snapshot @@ -18,6 +18,7 @@ + From 985f479574a57673da995ff3d05bb2b12c2c97e8 Mon Sep 17 00:00:00 2001 From: Bamboo Date: Fri, 2 Dec 2022 10:30:48 +0000 Subject: [PATCH 33/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index 7df32566..a6fd25f0 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.60" +#define AG_DNSLIBS_VERSION "2.0.61" diff --git a/conandata.yml b/conandata.yml index f5c13f41..f0b256d1 100644 --- a/conandata.yml +++ b/conandata.yml @@ -21,3 +21,5 @@ commit_hash: hash: "0e0b97aea8adbc6cc5f28c70818988e17ba9c40a" "2.0.60": hash: "a1448ab3165aaed99f5ffb183988d455e5dc9f26" + "2.0.61": + hash: "1273e47a36fc338dd517c08a265bec9475763f9b" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 74a1b633..2d737d32 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.60', code: 370] +version = [name: '2.0.61', code: 371] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 0b6e8215..5633fb70 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.60 + VERSION 2.0.61 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index fb87e694..cebaeb3a 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,60,0 - PRODUCTVERSION 2,0,60,0 + FILEVERSION 2,0,61,0 + PRODUCTVERSION 2,0,61,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.60" + VALUE "ProductVersion", "2.0.61" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index ef99e396..012961fb 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.60")] -[assembly: AssemblyFileVersion("2.0.60")] +[assembly: AssemblyVersion("2.0.61")] +[assembly: AssemblyFileVersion("2.0.61")] From 193c9be47355c2e5cd8421e2061ed8f3038a2766 Mon Sep 17 00:00:00 2001 From: Ivan Bretkin Date: Mon, 5 Dec 2022 13:24:22 +0300 Subject: [PATCH 34/43] Pull request #472: AG-12505 Add nrmap files to artifactory for core, dns, vpn adapters Merge in ADGUARD-CORE-LIBS/dns-libs from feature/AG-12505-1 to master Squashed commit of the following: commit 5bcd353edf14c0b25e4571a7ad5d2171f3fa453c Author: Ivan Bretkin Date: Mon Dec 5 11:28:54 2022 +0300 change forward slash to backslash commit 45c4185b05de9a8b2e6807a45f0e8adadca58bdb Author: Ivan Bretkin Date: Mon Dec 5 11:23:49 2022 +0300 change forward slash to backslash --- platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec | 2 +- .../cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec.snapshot | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec b/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec index c5b693ca..a8b7876c 100644 --- a/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec +++ b/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec @@ -18,7 +18,7 @@ - + diff --git a/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec.snapshot b/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec.snapshot index b7b4ee46..1305b4c3 100644 --- a/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec.snapshot +++ b/platform/windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.nuspec.snapshot @@ -18,7 +18,7 @@ - + From 00eef4d1ea6b56f9c60eb8525c5c4c766a603838 Mon Sep 17 00:00:00 2001 From: Bamboo Date: Mon, 5 Dec 2022 10:25:02 +0000 Subject: [PATCH 35/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index a6fd25f0..42eb41d3 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.61" +#define AG_DNSLIBS_VERSION "2.0.62" diff --git a/conandata.yml b/conandata.yml index f0b256d1..920270c0 100644 --- a/conandata.yml +++ b/conandata.yml @@ -23,3 +23,5 @@ commit_hash: hash: "a1448ab3165aaed99f5ffb183988d455e5dc9f26" "2.0.61": hash: "1273e47a36fc338dd517c08a265bec9475763f9b" + "2.0.62": + hash: "193c9be47355c2e5cd8421e2061ed8f3038a2766" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 2d737d32..3b36ad14 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.61', code: 371] +version = [name: '2.0.62', code: 372] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 5633fb70..734c61c3 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.61 + VERSION 2.0.62 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index cebaeb3a..773b45df 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,61,0 - PRODUCTVERSION 2,0,61,0 + FILEVERSION 2,0,62,0 + PRODUCTVERSION 2,0,62,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.61" + VALUE "ProductVersion", "2.0.62" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 012961fb..536a83ff 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.61")] -[assembly: AssemblyFileVersion("2.0.61")] +[assembly: AssemblyVersion("2.0.62")] +[assembly: AssemblyFileVersion("2.0.62")] From df9d906eb4768c0196f9ec6749f7d3574ea74b13 Mon Sep 17 00:00:00 2001 From: Sergei Gunchenko Date: Tue, 6 Dec 2022 14:07:13 +0300 Subject: [PATCH 36/43] Pull request 473: Fix crash during socket factory deinitialization Merge in ADGUARD-CORE-LIBS/dns-libs from fix/oproxy_crash to master Squashed commit of the following: commit 7beb6d72c450153807b64f3f1319ec7d3c589834 Author: Sergei Gunchenko Date: Tue Dec 6 08:59:06 2022 +0200 net: fix crash during socket factory deinitialization --- net/outbound_direct_proxy.cpp | 3 +++ net/outbound_direct_proxy.h | 1 + net/outbound_http_proxy.cpp | 4 +++- net/outbound_http_proxy.h | 1 + net/outbound_proxy.cpp | 8 +++++--- net/outbound_proxy.h | 4 ++++ net/outbound_socks_proxy.cpp | 4 +++- net/outbound_socks_proxy.h | 1 + net/socket_factory.cpp | 10 ++++++++++ 9 files changed, 31 insertions(+), 5 deletions(-) diff --git a/net/outbound_direct_proxy.cpp b/net/outbound_direct_proxy.cpp index 491c1734..4a869cc4 100644 --- a/net/outbound_direct_proxy.cpp +++ b/net/outbound_direct_proxy.cpp @@ -17,6 +17,9 @@ void DirectOProxy::reset_connections() { } } +void DirectOProxy::deinit_impl() { +} + OutboundProxy::ProtocolsSet DirectOProxy::get_supported_protocols() const { return (1u << utils::TP_TCP) | (1u << utils::TP_UDP); } diff --git a/net/outbound_direct_proxy.h b/net/outbound_direct_proxy.h index a48c3dbe..b77e778a 100644 --- a/net/outbound_direct_proxy.h +++ b/net/outbound_direct_proxy.h @@ -35,6 +35,7 @@ class DirectOProxy : public OutboundProxy { HashMap m_connections; + void deinit_impl() override; [[nodiscard]] ProtocolsSet get_supported_protocols() const override; [[nodiscard]] std::optional get_fd(uint32_t conn_id) const override; [[nodiscard]] Error send(uint32_t conn_id, Uint8View data) override; diff --git a/net/outbound_http_proxy.cpp b/net/outbound_http_proxy.cpp index 174b47ef..24c0e9d7 100644 --- a/net/outbound_http_proxy.cpp +++ b/net/outbound_http_proxy.cpp @@ -36,7 +36,9 @@ HttpOProxy::HttpOProxy(const OutboundProxySettings *settings, Parameters paramet } } -HttpOProxy::~HttpOProxy() { +HttpOProxy::~HttpOProxy() = default; + +void HttpOProxy::deinit_impl() { std::vector connections; connections.reserve(m_connections.size()); std::transform(m_connections.begin(), m_connections.end(), std::back_inserter(connections), [](const auto &iter) { diff --git a/net/outbound_http_proxy.h b/net/outbound_http_proxy.h index b2f7f385..61eb5d8f 100644 --- a/net/outbound_http_proxy.h +++ b/net/outbound_http_proxy.h @@ -25,6 +25,7 @@ class HttpOProxy : public OutboundProxy { HashMap> m_connections; std::optional m_tls_session_cache; + void deinit_impl() override; [[nodiscard]] ProtocolsSet get_supported_protocols() const override; [[nodiscard]] std::optional get_fd(uint32_t conn_id) const override; [[nodiscard]] Error send(uint32_t conn_id, Uint8View data) override; diff --git a/net/outbound_proxy.cpp b/net/outbound_proxy.cpp index ffded384..9e15e3c7 100644 --- a/net/outbound_proxy.cpp +++ b/net/outbound_proxy.cpp @@ -27,12 +27,14 @@ OutboundProxy::OutboundProxy( , m_parameters(parameters) { } -OutboundProxy::~OutboundProxy() { - on_bootstrap_ready(make_error(SocketError::AE_OUTBOUND_PROXY_ERROR, "Proxy has been destroyed")); +OutboundProxy::~OutboundProxy() = default; + +void OutboundProxy::deinit() { + this->on_bootstrap_ready(make_error(SocketError::AE_OUTBOUND_PROXY_ERROR, "Proxy has been destroyed")); assert(m_bootstrap_waiters.empty()); + this->deinit_impl(); } - OutboundProxy::ConnectResult OutboundProxy::connect(ConnectParameters p) { uint32_t conn_id = get_next_connection_id(); diff --git a/net/outbound_proxy.h b/net/outbound_proxy.h index 9a57e335..b3e0e92a 100644 --- a/net/outbound_proxy.h +++ b/net/outbound_proxy.h @@ -75,6 +75,8 @@ class OutboundProxy { virtual ~OutboundProxy(); + void deinit(); + /** * Connect to the peer via proxy * @param parameters the connection parameters @@ -133,6 +135,8 @@ class OutboundProxy { OutboundProxy(const std::string &logger_name, const OutboundProxySettings *settings, Parameters parameters); + virtual void deinit_impl() = 0; + /** * Connect to the proxy server */ diff --git a/net/outbound_socks_proxy.cpp b/net/outbound_socks_proxy.cpp index 28ce1265..b36aca2c 100644 --- a/net/outbound_socks_proxy.cpp +++ b/net/outbound_socks_proxy.cpp @@ -159,7 +159,9 @@ SocksOProxy::SocksOProxy(const OutboundProxySettings *settings, Parameters param : OutboundProxy(__func__, settings, std::move(parameters)) { } -SocksOProxy::~SocksOProxy() { +SocksOProxy::~SocksOProxy() = default; + +void SocksOProxy::deinit_impl() { std::vector connections; connections.reserve(m_connections.size()); std::transform(m_connections.begin(), m_connections.end(), std::back_inserter(connections), diff --git a/net/outbound_socks_proxy.h b/net/outbound_socks_proxy.h index 9dcde147..8e3322b8 100644 --- a/net/outbound_socks_proxy.h +++ b/net/outbound_socks_proxy.h @@ -26,6 +26,7 @@ class SocksOProxy : public OutboundProxy { HashMap> m_connections; std::unique_ptr m_udp_association; + void deinit_impl() override; [[nodiscard]] ProtocolsSet get_supported_protocols() const override; [[nodiscard]] std::optional get_fd(uint32_t conn_id) const override; [[nodiscard]] Error send(uint32_t conn_id, Uint8View data) override; diff --git a/net/socket_factory.cpp b/net/socket_factory.cpp index cf2474ed..8df823b4 100644 --- a/net/socket_factory.cpp +++ b/net/socket_factory.cpp @@ -62,6 +62,16 @@ struct SocketFactory::OutboundProxyState { if (this->reset_task.has_value()) { this->loop->cancel(std::exchange(this->reset_task, std::nullopt).value()); } + + if (this->main_proxy != nullptr) { + this->main_proxy->deinit(); + this->main_proxy.reset(); + } + + if (this->fallback_proxy != nullptr) { + this->fallback_proxy->deinit(); + this->fallback_proxy.reset(); + } } }; From 0a550c6ec4b50046dcd352f3ed9bb9bcbfac87cc Mon Sep 17 00:00:00 2001 From: Bamboo Date: Tue, 6 Dec 2022 11:20:36 +0000 Subject: [PATCH 37/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index 42eb41d3..599e827a 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.62" +#define AG_DNSLIBS_VERSION "2.0.63" diff --git a/conandata.yml b/conandata.yml index 920270c0..ae2362cb 100644 --- a/conandata.yml +++ b/conandata.yml @@ -25,3 +25,5 @@ commit_hash: hash: "1273e47a36fc338dd517c08a265bec9475763f9b" "2.0.62": hash: "193c9be47355c2e5cd8421e2061ed8f3038a2766" + "2.0.63": + hash: "df9d906eb4768c0196f9ec6749f7d3574ea74b13" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 3b36ad14..941ec27d 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.62', code: 372] +version = [name: '2.0.63', code: 373] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index 734c61c3..d5fd5fa3 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.62 + VERSION 2.0.63 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index 773b45df..ec234497 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,62,0 - PRODUCTVERSION 2,0,62,0 + FILEVERSION 2,0,63,0 + PRODUCTVERSION 2,0,63,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.62" + VALUE "ProductVersion", "2.0.63" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 536a83ff..78585e46 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.62")] -[assembly: AssemblyFileVersion("2.0.62")] +[assembly: AssemblyVersion("2.0.63")] +[assembly: AssemblyFileVersion("2.0.63")] From c492b594a99d0a774619c97f6051914d3ef37d71 Mon Sep 17 00:00:00 2001 From: Sergey Fionov Date: Wed, 7 Dec 2022 13:58:51 +0200 Subject: [PATCH 38/43] Add version tag to CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index baa60087..7b4004d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Changelog +## V2.0 + * [Feature] Add an option to strip Encrypted Client Hello parameters from responses, effectively blocking ECH. See `ag_dnsproxy_settings::block_ech` (C), `AGDnsProxyConfig.blockEch` (Apple), From 7cbe02e6085b1ac2965a7f1d298b728540a6ec6b Mon Sep 17 00:00:00 2001 From: Bamboo Date: Wed, 7 Dec 2022 12:11:55 +0000 Subject: [PATCH 39/43] skipci: Automatic version increment by Bamboo --- common/include/dns/common/version.h | 2 +- conandata.yml | 2 ++ platform/android/dnsproxy/lib/build.gradle | 2 +- platform/mac/framework/CMakeLists.txt | 2 +- platform/windows/capi/src/ag_dns.rc | 6 +++--- platform/windows/cs/Adguard.Dns/SolutionInfo.cs | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/common/include/dns/common/version.h b/common/include/dns/common/version.h index 599e827a..f317ab70 100644 --- a/common/include/dns/common/version.h +++ b/common/include/dns/common/version.h @@ -1,2 +1,2 @@ #pragma once -#define AG_DNSLIBS_VERSION "2.0.63" +#define AG_DNSLIBS_VERSION "2.0.64" diff --git a/conandata.yml b/conandata.yml index ae2362cb..5eb050c3 100644 --- a/conandata.yml +++ b/conandata.yml @@ -27,3 +27,5 @@ commit_hash: hash: "193c9be47355c2e5cd8421e2061ed8f3038a2766" "2.0.63": hash: "df9d906eb4768c0196f9ec6749f7d3574ea74b13" + "2.0.64": + hash: "c492b594a99d0a774619c97f6051914d3ef37d71" diff --git a/platform/android/dnsproxy/lib/build.gradle b/platform/android/dnsproxy/lib/build.gradle index 941ec27d..25d64488 100644 --- a/platform/android/dnsproxy/lib/build.gradle +++ b/platform/android/dnsproxy/lib/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -version = [name: '2.0.63', code: 373] +version = [name: '2.0.64', code: 374] android { ndkVersion "24.0.8215888" diff --git a/platform/mac/framework/CMakeLists.txt b/platform/mac/framework/CMakeLists.txt index d5fd5fa3..e6a61018 100644 --- a/platform/mac/framework/CMakeLists.txt +++ b/platform/mac/framework/CMakeLists.txt @@ -75,7 +75,7 @@ set_property(TARGET AGDnsProxy PROPERTY POSITION_INDEPENDENT_CODE ON) set_target_properties(AGDnsProxy PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION A - VERSION 2.0.63 + VERSION 2.0.64 MACOSX_FRAMEWORK_INFO_PLIST "${INFOPLIST_FILE}" MACOSX_FRAMEWORK_IDENTIFIER com.adguard.dnsproxy XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Performiks OOO (N33TQXN8C7)" diff --git a/platform/windows/capi/src/ag_dns.rc b/platform/windows/capi/src/ag_dns.rc index ec234497..94b64757 100644 --- a/platform/windows/capi/src/ag_dns.rc +++ b/platform/windows/capi/src/ag_dns.rc @@ -1,6 +1,6 @@ 1 VERSIONINFO - FILEVERSION 2,0,63,0 - PRODUCTVERSION 2,0,63,0 + FILEVERSION 2,0,64,0 + PRODUCTVERSION 2,0,64,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -19,7 +19,7 @@ BEGIN VALUE "LegalCopyright", "(C) 2009-2022 Adguard Software Ltd" VALUE "CompanyName", "Adguard Software Ltd" VALUE "ProductName", "Adguard DNS for Windows" - VALUE "ProductVersion", "2.0.63" + VALUE "ProductVersion", "2.0.64" VALUE "OriginalFilename", "AdguardDns.dll" VALUE "InternalName", "AdguardDns" END diff --git a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs index 78585e46..807ddcce 100644 --- a/platform/windows/cs/Adguard.Dns/SolutionInfo.cs +++ b/platform/windows/cs/Adguard.Dns/SolutionInfo.cs @@ -14,5 +14,5 @@ [assembly: AssemblyCopyright("Copyright © Adguard Software Ltd 2009-2022")] [assembly: AssemblyTrademark("Copyright © Adguard Software Ltd 2022")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.0.63")] -[assembly: AssemblyFileVersion("2.0.63")] +[assembly: AssemblyVersion("2.0.64")] +[assembly: AssemblyFileVersion("2.0.64")] From 0add627ee717867dfdc1f8bdf6f6dc5317d1159b Mon Sep 17 00:00:00 2001 From: Yaroslav Shneider Date: Wed, 7 Dec 2022 19:14:39 +0300 Subject: [PATCH 40/43] Pull request #474: AG-18117, Update win-projects up to 2.4.0.0 utils Merge in ADGUARD-CORE-LIBS/dns-libs from feature/AG-18117 to master Squashed commit of the following: commit 5813418947d9c8d01374b61b7d03b9b32b2abfd3 Author: y.shneider Date: Wed Dec 7 17:50:11 2022 +0200 remove tag commit fcfd04f11f185c55376711ed1485ad0ec6fc28b0 Author: Yaroslav Shneider Date: Wed Dec 7 17:40:13 2022 +0200 AG-18117, update utils --- .../Adguard.Dns.TestApp/Adguard.Dns.TestApp.csproj | 8 ++++---- .../cs/Adguard.Dns/Adguard.Dns.TestApp/packages.config | 2 +- .../Adguard.Dns.Tests/Adguard.Dns.Tests.csproj | 8 ++++---- .../cs/Adguard.Dns/Adguard.Dns.Tests/packages.config | 2 +- .../windows/cs/Adguard.Dns/Adguard.Dns/Adguard.Dns.csproj | 8 ++++---- .../windows/cs/Adguard.Dns/Adguard.Dns/packages.config | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/platform/windows/cs/Adguard.Dns/Adguard.Dns.TestApp/Adguard.Dns.TestApp.csproj b/platform/windows/cs/Adguard.Dns/Adguard.Dns.TestApp/Adguard.Dns.TestApp.csproj index 9a0025c4..43127ca4 100644 --- a/platform/windows/cs/Adguard.Dns/Adguard.Dns.TestApp/Adguard.Dns.TestApp.csproj +++ b/platform/windows/cs/Adguard.Dns/Adguard.Dns.TestApp/Adguard.Dns.TestApp.csproj @@ -37,8 +37,8 @@ 4 - - ..\packages\Adguard.Utils.2.3.23\lib\net45\AdGuard.Utils.dll + + ..\packages\Adguard.Utils.2.4.1\lib\net45\AdGuard.Utils.dll True @@ -94,9 +94,9 @@ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105.The missing file is {0}. - + - +