|
|
|
|
@ -76,6 +76,9 @@ static void etcp_link_send_init(struct ETCP_LINK* link, uint8_t reset) {
|
|
|
|
|
dgram->data[offset++] = (link->keepalive_interval >> 8) & 0xFF; |
|
|
|
|
dgram->data[offset++] = link->keepalive_interval & 0xFF; |
|
|
|
|
|
|
|
|
|
dgram->data[offset++] = ((link->recovery_interval/100) >> 8) & 0xFF; |
|
|
|
|
dgram->data[offset++] = (link->recovery_interval/100) & 0xFF; |
|
|
|
|
|
|
|
|
|
dgram->data[offset++] = link->local_link_id; |
|
|
|
|
|
|
|
|
|
uint8_t salt[SC_PUBKEY_ENC_SALT_SIZE]; |
|
|
|
|
@ -841,6 +844,7 @@ static void etcp_connections_read_callback_socket(socket_t sock, void* arg) {
|
|
|
|
|
uint8_t id[8]; |
|
|
|
|
uint8_t mtu[2]; |
|
|
|
|
uint8_t keepalive[2]; |
|
|
|
|
uint8_t recovery[2]; |
|
|
|
|
uint8_t link_id; |
|
|
|
|
uint8_t pubkey[SC_PUBKEY_SIZE]; |
|
|
|
|
} *ack_hdr=(void*)&pkt->data[0]; |
|
|
|
|
@ -910,6 +914,9 @@ static void etcp_connections_read_callback_socket(socket_t sock, void* arg) {
|
|
|
|
|
if (ack_hdr->code == ETCP_INIT_REQUEST) { |
|
|
|
|
etcp_conn_reset(conn); |
|
|
|
|
} |
|
|
|
|
link->keepalive_interval=(ack_hdr->keepalive[0]<<8) | ack_hdr->keepalive[1]; |
|
|
|
|
link->recovery_interval=((ack_hdr->recovery[0]<<8) | ack_hdr->recovery[1])*100;// timebase в link, timebase/100 в кодограмме
|
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_CONNECTION, "set keepalive for link=%d", link->keepalive_interval); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
struct { |
|
|
|
|
|