1
This commit is contained in:
1 parent
58eea06f60
commit
ae2b654a67
3 files changed
+6
-7
No files matched your search
@@ -237,6 +237,8 @@ int etcp_send_ping(struct UTUN_INSTANCE* instance, const uint8_t* peer_pubkey_bi
|
||||
const struct sockaddr_storage* addr, int timeout_ms,
|
||||
etcp_ping_callback_t cb, void* user_arg,
|
||||
const uint8_t* user_data, size_t user_data_len);
|
||||
|
||||
// шлёт пинг на addr используя pubkey. в пакет помещает user_data[user_len]. при получении ответа или таймауте вызывает callback.
|
||||
int etcp_send_ping_to_socket(struct UTUN_INSTANCE* instance, struct ETCP_SOCKET* e_sock,
|
||||
const uint8_t* peer_pubkey_bin, const struct sockaddr_storage* addr,
|
||||
int timeout_ms, etcp_ping_callback_t cb, void* user_arg,
|
||||
|
||||
+1
-1
@@ -940,7 +940,7 @@ static void route_bgp_handle_nat_info(struct ROUTE_BGP* bgp, struct ETCP_CONN* f
|
||||
(unsigned)nat_port);
|
||||
}
|
||||
|
||||
static void route_bgp_handle_nat_check_req(struct ROUTE_BGP* bgp, struct ETCP_CONN* from_conn, const uint8_t* data, size_t len) {
|
||||
static void route_bgp_handle_nat_check_req(struct ROUTE_BGP* bgp, struct ETCP_CONN* from_conn, const uint8_t* data, size_t len) {// поиск нужного линка и запуск nat_check
|
||||
if (!bgp || !from_conn || !data || len < sizeof(struct BGP_NAT_CHECK_REQ)) return;
|
||||
|
||||
const struct BGP_NAT_CHECK_REQ* req = (const struct BGP_NAT_CHECK_REQ*)data;
|
||||
|
||||
+3
-6
@@ -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->interval_ms = interval_ms;
|
||||
req_pkt->timeout_ms = timeout_ms;
|
||||
req_pkt->target_ipv4[0] = target_ip;// ip уже в network byte order
|
||||
req_pkt->target_ipv4[1] = target_ip>>8;
|
||||
req_pkt->target_ipv4[2] = target_ip>>16;
|
||||
req_pkt->target_ipv4[3] = target_ip>>24;
|
||||
memcpy(req_pkt->target_ipv4, &target_ip, 4);
|
||||
req_pkt->target_port = htons(target_port);
|
||||
if (pubkey) {
|
||||
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 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))) {
|
||||
@@ -401,7 +398,7 @@ void route_ping_handle_req(struct ROUTE_BGP* bgp, struct ETCP_CONN* from_conn, c
|
||||
sock_count_v4 = 1;
|
||||
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_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)
|
||||
if (len == sizeof(struct BGP_PING_REQUEST)) {
|
||||
int pubkey_zero = 1;
|
||||
|
||||
Reference in new issue
Block a user