MCPcopy Create free account
hub / github.com/bcndev/bytecoin / msg_handshake

Method msg_handshake

src/p2p/P2PProtocolBasic.cpp:138–175  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

136}
137
138void P2PProtocolBasic::msg_handshake(p2p::Handshake::Request &&req) {
139 if (!is_incoming()) {
140 disconnect("p2p::Handshake from outgoing node");
141 return;
142 }
143 if (req.node_data.network_id != config.network_id) {
144 if (!config.allow_empty_network_id || req.node_data.network_id != UUID{}) {
145 disconnect("202 wrong network");
146 return;
147 }
148 }
149 if (req.node_data.version < config.p2p_minimum_version) {
150 disconnect("202 old version");
151 return;
152 }
153 // on self-connect, incoming side replies so that outgoing side can add to ban
154 p2p::Handshake::Response msg;
155 msg.payload_data = get_my_sync_data();
156 msg.node_data = get_my_node_data();
157 msg.local_peerlist = get_legacy_peers_to_share();
158 if (msg.local_peerlist.size() > p2p::Handshake::Response::MAX_SEND_PEER_COUNT)
159 msg.local_peerlist.resize(p2p::Handshake::Response::MAX_SEND_PEER_COUNT);
160 msg.peerlist = get_peers_to_share();
161 if (msg.peerlist.size() > p2p::Handshake::Response::MAX_SEND_PEER_COUNT)
162 msg.peerlist.resize(p2p::Handshake::Response::MAX_SEND_PEER_COUNT);
163
164 BinaryArray raw_msg = LevinProtocol::send(msg);
165 send(std::move(raw_msg));
166 peer_version = req.node_data.version;
167 set_peer_sync_data(req.payload_data);
168 peer_unique_number = req.node_data.peer_id;
169 update_my_port(req.node_data.my_port); // We set port to unknown on accept
170
171 std::cout << "P2p p2p::Handshake request version=" << int(req.node_data.version)
172 << " unique_number=" << req.node_data.peer_id << " current_height=" << req.payload_data.current_height
173 << " from " << get_address() << std::endl;
174 on_msg_handshake(std::move(req));
175}
176void P2PProtocolBasic::msg_handshake(p2p::Handshake::Response &&req) {
177 if (is_incoming())
178 return disconnect("p2p::Handshake response from incoming node");

Callers

nothing calls this directly

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected