diff --git a/libnet/coind_node_data.h b/libnet/coind_node_data.h index 0dc2cfab..af4a3e98 100644 --- a/libnet/coind_node_data.h +++ b/libnet/coind_node_data.h @@ -23,7 +23,7 @@ class CoindNodeData ConnectionStatus* status; std::function send_block; //send block in p2p - HandlerManagerPtr handler_manager; + HandlerManagerPtr handler_manager; public: uint64_t cur_share_version = 0; coind::TXIDCache txidcache; @@ -43,7 +43,7 @@ class CoindNodeData Variable best_block_header; coind::HeightTracker get_height_rel_highest; // wanna for init get_block_height func! public: - CoindNodeData(io::io_context* _context, ConnectionStatus* _status) : context(_context), status(_status) + CoindNodeData(io::io_context* context_, ConnectionStatus* status_) : context(context_), status(status_) { handler_manager = std::make_shared>(); diff --git a/libnet/pool_node.h b/libnet/pool_node.h index 5eee9e59..3dbb8341 100644 --- a/libnet/pool_node.h +++ b/libnet/pool_node.h @@ -263,7 +263,7 @@ class PoolNodeClient : virtual PoolNodeData }; #define SET_POOL_DEFAULT_HANDLER(msg) \ - handler_manager->new_handler(#msg, [&](auto _msg, auto _proto){ handle_message_##msg(_msg, _proto); }); + handler_manager->new_handler(#msg, [&](auto msg_, auto proto_){ handle_message_##msg(msg_, proto_); }); class PoolNode : public virtual PoolNodeData, public NodeExceptionHandler, public SupervisorElement, PoolNodeServer, PoolNodeClient, protected WebPoolNode { diff --git a/libnet/pool_node_data.h b/libnet/pool_node_data.h index 9180c04a..7027379a 100644 --- a/libnet/pool_node_data.h +++ b/libnet/pool_node_data.h @@ -64,7 +64,7 @@ class PoolNodeData c2pool::dev::AddrStore* addr_store; ShareTracker* tracker; CoindNodeData* coind_node; - HandlerManagerPtr handler_manager; + HandlerManagerPtr handler_manager; //From CoindNode VariableDict known_txs; diff --git a/libnet/pool_protocol.h b/libnet/pool_protocol.h index 99651689..b688b70d 100644 --- a/libnet/pool_protocol.h +++ b/libnet/pool_protocol.h @@ -8,14 +8,16 @@ #include "pool_protocol_data.h" #include "pool_messages.h" +#include "pool_socket.h" #include #include +#include #include #include #include -class PoolProtocol : public Protocol, public PoolProtocolData, ProtocolPinger +class PoolProtocol : public BaseProtocol, public PoolProtocolData { public: // std::set remote_tx_hashes; @@ -27,31 +29,20 @@ class PoolProtocol : public Protocol, public PoolProtocolData, Pro // std::vector> known_txs_cache; public: - PoolProtocol(boost::asio::io_context* _context, Socket* _socket, HandlerManagerPtr _handler_manager, PoolProtocolData* _data) : - Protocol("Pool", _socket, _handler_manager), PoolProtocolData(*_data), - ProtocolPinger(_context, 100, [&](){out_time_ping();}, - [](){return 20; /*TODO: return c2pool::random::Expovariate(1/100);*/}, [&](){ send_ping(); }) - {} - - void send_ping() + PoolProtocol(boost::asio::io_context* context_, Socket* socket_, HandlerManagerPtr handler_manager_, PoolProtocolData* data_) + : BaseProtocol(socket_, handler_manager_, 20, 100), PoolProtocolData(*data_) { - auto ping_msg = std::make_shared(); - socket->write(ping_msg); } - void out_time_ping() + void timeout() override { //TODO: out of ping timer; throw make_except("out time ping", get_addr()); } - void bad_peer_happened() + void send_ping() override { - // TODO: + auto ping_msg = std::make_shared(); + socket->write(ping_msg); } - - void disconnect() override - { - socket->disconnect(); - } }; \ No newline at end of file