Rename timers to their documented T1, T2, T3 names
This commit is contained in:
parent
8632e7ccb8
commit
1060ff6ab8
3 changed files with 34 additions and 40 deletions
|
@ -62,9 +62,9 @@ typedef struct _patty_ax25_sock {
|
|||
n_ack,
|
||||
n_retry;
|
||||
|
||||
struct timeval timer_ack, /* Timer T1 */
|
||||
timer_response,
|
||||
timer_keepalive;
|
||||
struct timeval timer_t1,
|
||||
timer_t2,
|
||||
timer_t3;
|
||||
|
||||
uint32_t flags_classes,
|
||||
flags_hdlc;
|
||||
|
@ -98,14 +98,14 @@ patty_ax25_sock *patty_ax25_sock_new(enum patty_ax25_proto proto,
|
|||
|
||||
void patty_ax25_sock_destroy(patty_ax25_sock *sock);
|
||||
|
||||
int patty_ax25_sock_timer_ack_expired(patty_ax25_sock *sock);
|
||||
int patty_ax25_sock_timer_t1_expired(patty_ax25_sock *sock);
|
||||
|
||||
void patty_ax25_sock_timer_ack_cancel(patty_ax25_sock *sock);
|
||||
void patty_ax25_sock_timer_t1_cancel(patty_ax25_sock *sock);
|
||||
|
||||
void patty_ax25_sock_timer_ack_start(patty_ax25_sock *sock,
|
||||
void patty_ax25_sock_timer_t1_start(patty_ax25_sock *sock,
|
||||
struct timeval *timer);
|
||||
|
||||
void patty_ax25_sock_timer_ack_sub(patty_ax25_sock *sock,
|
||||
void patty_ax25_sock_timer_t1_sub(patty_ax25_sock *sock,
|
||||
struct timeval *elapsed);
|
||||
|
||||
int patty_ax25_sock_reset(patty_ax25_sock *sock);
|
||||
|
|
14
src/server.c
14
src/server.c
|
@ -829,7 +829,7 @@ static int server_connect(patty_ax25_server *server,
|
|||
return respond_connect(client, -1, errno);
|
||||
}
|
||||
|
||||
patty_ax25_sock_timer_ack_start(sock, &server->timer);
|
||||
patty_ax25_sock_timer_t1_start(sock, &server->timer);
|
||||
|
||||
/*
|
||||
* At this point, we will wait for a DM, FRMR or XID response, which
|
||||
|
@ -1152,7 +1152,7 @@ static int handle_frmr(patty_ax25_server *server,
|
|||
if (sock->status == PATTY_AX25_SOCK_PENDING_CONNECT) {
|
||||
int ret = patty_ax25_sock_send_sabm(sock, PATTY_AX25_FRAME_POLL);
|
||||
|
||||
patty_ax25_sock_timer_ack_start(sock, &server->timer);
|
||||
patty_ax25_sock_timer_t1_start(sock, &server->timer);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -1250,7 +1250,7 @@ static int handle_ua(patty_ax25_server *server,
|
|||
return reply_dm(iface, frame, PATTY_AX25_FRAME_FINAL);
|
||||
}
|
||||
|
||||
patty_ax25_sock_timer_ack_cancel(sock);
|
||||
patty_ax25_sock_timer_t1_cancel(sock);
|
||||
|
||||
sock->status = PATTY_AX25_SOCK_ESTABLISHED;
|
||||
|
||||
|
@ -1452,7 +1452,7 @@ static int handle_xid(patty_ax25_server *server,
|
|||
|
||||
ret = patty_ax25_sock_send_sabm(remote, PATTY_AX25_FRAME_POLL);
|
||||
|
||||
patty_ax25_sock_timer_ack_start(remote, &server->timer);
|
||||
patty_ax25_sock_timer_t1_start(remote, &server->timer);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -1629,11 +1629,11 @@ static int handle_sock(uint32_t key,
|
|||
ssize_t len;
|
||||
|
||||
if (sock->status == PATTY_AX25_SOCK_PENDING_CONNECT) {
|
||||
if (patty_ax25_sock_timer_ack_expired(sock)) {
|
||||
if (patty_ax25_sock_timer_t1_expired(sock)) {
|
||||
if (sock->retries) {
|
||||
int ret = patty_ax25_sock_send_sabm(sock, PATTY_AX25_FRAME_POLL);
|
||||
|
||||
patty_ax25_sock_timer_ack_start(sock, &server->timer);
|
||||
patty_ax25_sock_timer_t1_start(sock, &server->timer);
|
||||
|
||||
return ret;
|
||||
} else {
|
||||
|
@ -1642,7 +1642,7 @@ static int handle_sock(uint32_t key,
|
|||
return sock_close(server, sock);
|
||||
}
|
||||
} else {
|
||||
patty_ax25_sock_timer_ack_sub(sock, &server->elapsed);
|
||||
patty_ax25_sock_timer_t1_sub(sock, &server->elapsed);
|
||||
}
|
||||
|
||||
goto done;
|
||||
|
|
38
src/sock.c
38
src/sock.c
|
@ -116,12 +116,6 @@ void patty_ax25_sock_init(patty_ax25_sock *sock) {
|
|||
sock->n_window_rx = PATTY_AX25_SOCK_DEFAULT_WINDOW;
|
||||
sock->n_ack = PATTY_AX25_SOCK_DEFAULT_ACK;
|
||||
sock->n_retry = PATTY_AX25_SOCK_DEFAULT_RETRY;
|
||||
sock->seq_send = 0;
|
||||
sock->seq_recv = 0;
|
||||
|
||||
timerclear(&sock->timer_ack);
|
||||
timerclear(&sock->timer_response);
|
||||
timerclear(&sock->timer_keepalive);
|
||||
}
|
||||
|
||||
patty_ax25_sock *patty_ax25_sock_new(enum patty_ax25_proto proto,
|
||||
|
@ -179,39 +173,39 @@ void patty_ax25_sock_destroy(patty_ax25_sock *sock) {
|
|||
free(sock);
|
||||
}
|
||||
|
||||
int patty_ax25_sock_timer_ack_expired(patty_ax25_sock *sock) {
|
||||
return (sock->timer_ack.tv_sec <= 0 && sock->timer_ack.tv_usec == 0)? 1: 0;
|
||||
int patty_ax25_sock_timer_t1_expired(patty_ax25_sock *sock) {
|
||||
return (sock->timer_t1.tv_sec <= 0 && sock->timer_t1.tv_usec == 0)? 1: 0;
|
||||
}
|
||||
|
||||
void patty_ax25_sock_timer_ack_cancel(patty_ax25_sock *sock) {
|
||||
sock->timer_ack.tv_sec = 0;
|
||||
sock->timer_ack.tv_usec = 0;
|
||||
void patty_ax25_sock_timer_t1_cancel(patty_ax25_sock *sock) {
|
||||
sock->timer_t1.tv_sec = 0;
|
||||
sock->timer_t1.tv_usec = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* AX.25 v2.2 Specification, Section 6.3.1 "AX.25 Link Connection Establishment"
|
||||
*/
|
||||
void patty_ax25_sock_timer_ack_start(patty_ax25_sock *sock,
|
||||
void patty_ax25_sock_timer_t1_start(patty_ax25_sock *sock,
|
||||
struct timeval *timer) {
|
||||
sock->timer_ack.tv_sec = sock->n_ack / 1000;
|
||||
sock->timer_ack.tv_usec = (sock->n_ack % 1000) * 1000;
|
||||
sock->timer_t1.tv_sec = sock->n_ack / 1000;
|
||||
sock->timer_t1.tv_usec = (sock->n_ack % 1000) * 1000;
|
||||
|
||||
if (timercmp(&sock->timer_ack, timer, >)) {
|
||||
if (timercmp(&sock->timer_t1, timer, >)) {
|
||||
struct timeval res;
|
||||
|
||||
timeradd(timer, &sock->timer_ack, &res);
|
||||
timeradd(timer, &sock->timer_t1, &res);
|
||||
|
||||
memcpy(timer, &res, sizeof(*timer));
|
||||
}
|
||||
}
|
||||
|
||||
void patty_ax25_sock_timer_ack_sub(patty_ax25_sock *sock,
|
||||
void patty_ax25_sock_timer_t1_sub(patty_ax25_sock *sock,
|
||||
struct timeval *elapsed) {
|
||||
struct timeval res;
|
||||
|
||||
timersub(&sock->timer_ack, elapsed, &res);
|
||||
timersub(&sock->timer_t1, elapsed, &res);
|
||||
|
||||
memcpy(&sock->timer_ack, &res, sizeof(sock->timer_ack));
|
||||
memcpy(&sock->timer_t1, &res, sizeof(sock->timer_t1));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -222,9 +216,9 @@ int patty_ax25_sock_reset(patty_ax25_sock *sock) {
|
|||
sock->seq_recv = 0;
|
||||
sock->retries = sock->n_retry;
|
||||
|
||||
memset(&sock->timer_ack, '\0', sizeof(sock->timer_ack));
|
||||
memset(&sock->timer_response, '\0', sizeof(sock->timer_response));
|
||||
memset(&sock->timer_keepalive, '\0', sizeof(sock->timer_keepalive));
|
||||
timerclear(&sock->timer_t1);
|
||||
timerclear(&sock->timer_t2);
|
||||
timerclear(&sock->timer_t3);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue