|
|
|
@ -304,10 +304,7 @@ int route_ping_send_req_addr(struct ROUTE_BGP* bgp, struct ETCP_CONN* to_conn, u |
|
|
|
req_pkt->count = count; |
|
|
|
req_pkt->count = count; |
|
|
|
req_pkt->interval_ms = interval_ms; |
|
|
|
req_pkt->interval_ms = interval_ms; |
|
|
|
req_pkt->timeout_ms = timeout_ms; |
|
|
|
req_pkt->timeout_ms = timeout_ms; |
|
|
|
req_pkt->target_ipv4[0] = target_ip;// ip уже в network byte order
|
|
|
|
memcpy(req_pkt->target_ipv4, &target_ip, 4); |
|
|
|
req_pkt->target_ipv4[1] = target_ip>>8; |
|
|
|
|
|
|
|
req_pkt->target_ipv4[2] = target_ip>>16; |
|
|
|
|
|
|
|
req_pkt->target_ipv4[3] = target_ip>>24; |
|
|
|
|
|
|
|
req_pkt->target_port = htons(target_port); |
|
|
|
req_pkt->target_port = htons(target_port); |
|
|
|
if (pubkey) { |
|
|
|
if (pubkey) { |
|
|
|
memcpy(req_pkt->pubkey, pubkey, SC_PUBKEY_SIZE); |
|
|
|
memcpy(req_pkt->pubkey, pubkey, SC_PUBKEY_SIZE); |
|
|
|
@ -370,7 +367,7 @@ void route_ping_destroy_pending(struct ROUTE_BGP* bgp) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void route_ping_handle_req(struct ROUTE_BGP* bgp, struct ETCP_CONN* from_conn, const uint8_t* data, size_t len) { |
|
|
|
void route_ping_handle_req(struct ROUTE_BGP* bgp, struct ETCP_CONN* from_conn, const uint8_t* data, size_t len) {// получен запрос сделать пинг.
|
|
|
|
const size_t base_len = offsetof(struct BGP_PING_REQUEST, target_ipv4); |
|
|
|
const size_t base_len = offsetof(struct BGP_PING_REQUEST, target_ipv4); |
|
|
|
const size_t addr_len = offsetof(struct BGP_PING_REQUEST, pubkey); |
|
|
|
const size_t addr_len = offsetof(struct BGP_PING_REQUEST, pubkey); |
|
|
|
if (!bgp || !from_conn || !data || (len != base_len && len != addr_len && len != sizeof(struct BGP_PING_REQUEST))) { |
|
|
|
if (!bgp || !from_conn || !data || (len != base_len && len != addr_len && len != sizeof(struct BGP_PING_REQUEST))) { |
|
|
|
@ -401,7 +398,7 @@ void route_ping_handle_req(struct ROUTE_BGP* bgp, struct ETCP_CONN* from_conn, c |
|
|
|
sock_count_v4 = 1; |
|
|
|
sock_count_v4 = 1; |
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_BGP, "using custom target %d.%d.%d.%d:%u for node %016llx", |
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_BGP, "using custom target %d.%d.%d.%d:%u for node %016llx", |
|
|
|
req_pkt->target_ipv4[0], req_pkt->target_ipv4[1], req_pkt->target_ipv4[2], req_pkt->target_ipv4[3], |
|
|
|
req_pkt->target_ipv4[0], req_pkt->target_ipv4[1], req_pkt->target_ipv4[2], req_pkt->target_ipv4[3], |
|
|
|
req_pkt->target_port, (unsigned long long)req_pkt->node_id); |
|
|
|
htons(req_pkt->target_port), (unsigned long long)req_pkt->node_id); |
|
|
|
// Check if embedded pubkey is non-zero (only when full packet length)
|
|
|
|
// Check if embedded pubkey is non-zero (only when full packet length)
|
|
|
|
if (len == sizeof(struct BGP_PING_REQUEST)) { |
|
|
|
if (len == sizeof(struct BGP_PING_REQUEST)) { |
|
|
|
int pubkey_zero = 1; |
|
|
|
int pubkey_zero = 1; |
|
|
|
|