|
|
|
|
@ -1010,7 +1010,7 @@ static int etcp_send_ping_raw(struct ETCP_DGRAM* dgram, socket_t fd, sc_context_
|
|
|
|
|
DEBUG_ERROR(DEBUG_CATEGORY_BGP, "sendto failed for ping, err=%d addr=%s fd=%d len=%d", socket_get_error(), sockaddr_storage_to_str(addr).str, fd, enc_buf_len + dgram->noencrypt_len); |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
DEBUG_TRACE(DEBUG_CATEGORY_BGP, "ping sendto succeeded to %s sent=%zd bytes fd=%d", sockaddr_storage_to_str(addr).str, sent, fd); |
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_BGP, "ping sendto succeeded to %s sent=%zd bytes fd=%d", sockaddr_storage_to_str(addr).str, sent, fd); |
|
|
|
|
return (int)sent; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -1124,7 +1124,7 @@ int etcp_send_ping_to_socket(struct UTUN_INSTANCE* instance, struct ETCP_SOCKET*
|
|
|
|
|
last->next = ctx; |
|
|
|
|
} |
|
|
|
|
ctx->timeout_timer = uasync_set_timeout(instance->ua, timeout_ms * 10, ctx, ping_timeout_cbk, "ping_timeout"); |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_BGP, "ping sent nonce=%016llx timeout=%d ulen=%zu", |
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_BGP, "ping sent nonce=%016llx timeout=%d ulen=%zu", |
|
|
|
|
(unsigned long long)ctx->nonce, timeout_ms, user_data_len); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
@ -1143,7 +1143,7 @@ int etcp_send_ping(struct UTUN_INSTANCE* instance, const uint8_t* peer_pubkey_bi
|
|
|
|
|
DEBUG_ERROR(DEBUG_CATEGORY_BGP, "no socket"); |
|
|
|
|
return -2; |
|
|
|
|
} |
|
|
|
|
DEBUG_ERROR(DEBUG_CATEGORY_BGP, "ping N1 [%s]", sockaddr_storage_to_str(addr).str); |
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_BGP, "ping N1 [%s]", sockaddr_storage_to_str(addr).str); |
|
|
|
|
return etcp_send_ping_to_socket(instance, e_sock, peer_pubkey_bin, addr, timeout_ms, |
|
|
|
|
cb, user_arg, user_data, user_data_len); |
|
|
|
|
} |
|
|
|
|
@ -1296,7 +1296,7 @@ void etcp_connections_read_callback_socket(socket_t sock, void* arg) {
|
|
|
|
|
sc_context_t resp_sc; |
|
|
|
|
sc_init_ctx(&resp_sc, &e_sock->instance->my_keys); |
|
|
|
|
if (sc_set_peer_public_key(&resp_sc, decrypted_pubkey, SC_PEER_PUBKEY_BIN) == SC_OK) { |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_BGP, "PONG send nonce=%016llx to=%s fd=%d", |
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_BGP, "PONG send nonce=%016llx to=%s fd=%d", |
|
|
|
|
(unsigned long long)nonce, sockaddr_storage_to_str(&addr).str, e_sock->fd); |
|
|
|
|
etcp_send_ping_raw(resp, e_sock->fd, &resp_sc, &addr, 0); |
|
|
|
|
} |
|
|
|
|
@ -1320,7 +1320,7 @@ void etcp_connections_read_callback_socket(socket_t sock, void* arg) {
|
|
|
|
|
udata = pkt->data + 19; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_BGP, "PONG recv nonce=%016llx data_len=%u from=%s socket=%s", |
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_BGP, "PONG recv nonce=%016llx data_len=%u from=%s socket=%s", |
|
|
|
|
(unsigned long long)nonce, (unsigned)pkt->data_len, |
|
|
|
|
sockaddr_storage_to_str(&addr).str, e_sock->name); |
|
|
|
|
struct PING_CONTEXT* ctx = e_sock->instance->pending_pings; |
|
|
|
|
@ -1337,7 +1337,7 @@ void etcp_connections_read_callback_socket(socket_t sock, void* arg) {
|
|
|
|
|
} |
|
|
|
|
uint64_t now = get_time_tb(); |
|
|
|
|
uint16_t rtt = (now >= ctx->send_time) ? (uint16_t)(now - ctx->send_time) : 0; |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_BGP, "PONG matched nonce=%016llx rtt=%u", |
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_BGP, "PONG matched nonce=%016llx rtt=%u", |
|
|
|
|
(unsigned long long)nonce, (unsigned)rtt); |
|
|
|
|
ctx->cb(1, rtt, ctx->arg, nonce, udata, ulen); |
|
|
|
|
if (ctx->user_data) u_free(ctx->user_data); |
|
|
|
|
|