From 2c74d4a6e77a6bdf707d8588a906a90a4742fe19 Mon Sep 17 00:00:00 2001 From: "crypro.zoidberg" Date: Thu, 17 Jan 2019 13:50:51 +0300 Subject: [PATCH] disabled market, fixed p2p api --- .../include/serialization/keyvalue_serialization_overloads.h | 2 ++ src/daemon/daemon.cpp | 2 +- src/p2p/net_node.inl | 3 ++- src/p2p/p2p_protocol_defs.h | 4 +++- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/contrib/epee/include/serialization/keyvalue_serialization_overloads.h b/contrib/epee/include/serialization/keyvalue_serialization_overloads.h index 073fd441..7bc073bb 100644 --- a/contrib/epee/include/serialization/keyvalue_serialization_overloads.h +++ b/contrib/epee/include/serialization/keyvalue_serialization_overloads.h @@ -125,6 +125,7 @@ namespace epee template static bool serialize_stl_container_pod_val_as_blob(const stl_container& container, t_storage& stg, typename t_storage::hsection hparent_section, const char* pname) { + static_assert(std::is_trivial::value, "Item supposed to be 'trivial'(trivially copyable)"); if(!container.size()) return true; std::string mb; mb.resize(sizeof(typename stl_container::value_type)*container.size()); @@ -140,6 +141,7 @@ namespace epee template static bool unserialize_stl_container_pod_val_as_blob(stl_container& container, t_storage& stg, typename t_storage::hsection hparent_section, const char* pname) { + static_assert(std::is_trivial::value, "Item supposed to be 'trivial'(trivially copyable)"); container.clear(); std::string buff; bool res = stg.get_value(pname, buff, hparent_section); diff --git a/src/daemon/daemon.cpp b/src/daemon/daemon.cpp index bd0e8958..632bb62d 100644 --- a/src/daemon/daemon.cpp +++ b/src/daemon/daemon.cpp @@ -160,7 +160,7 @@ int main(int argc, char* argv[]) ccore.set_currency_protocol(&cprotocol); daemon_cmmands_handler dch(p2psrv, rpc_server); tools::miniupnp_helper upnp_helper; - ccore.get_blockchain_storage().get_attachment_services_manager().add_service(&offers_service); + //ccore.get_blockchain_storage().get_attachment_services_manager().add_service(&offers_service); if (command_line::get_arg(vm, command_line::arg_show_rpc_autodoc)) { diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl index 4ccac2ba..0ba340e4 100644 --- a/src/p2p/net_node.inl +++ b/src/p2p/net_node.inl @@ -1061,7 +1061,8 @@ namespace nodetool ce.time_started = cntxt.m_started; ce.last_recv = cntxt.m_last_recv; ce.last_send = cntxt.m_last_send; - ce.version = cntxt.m_remote_version; + std::strncpy(ce.version, cntxt.m_remote_version.c_str(), std::min(sizeof(ce.version), cntxt.m_remote_version.size())); + ce.version[sizeof(ce.version) - 1] = 0; //null terminating just to be sure rsp.connections_list.push_back(ce); return true; }); diff --git a/src/p2p/p2p_protocol_defs.h b/src/p2p/p2p_protocol_defs.h index c7920678..ed245e39 100644 --- a/src/p2p/p2p_protocol_defs.h +++ b/src/p2p/p2p_protocol_defs.h @@ -33,6 +33,8 @@ namespace nodetool time_t last_seen; }; +#define P2P_CONNECTION_ENTRY_VERSION_MAX_SIZE 50 + struct connection_entry { net_address adr; @@ -41,7 +43,7 @@ namespace nodetool uint64_t time_started; uint64_t last_recv; uint64_t last_send; - std::string version; + char version[P2P_CONNECTION_ENTRY_VERSION_MAX_SIZE]; }; #pragma pack(pop)