diff --git a/include/patty/ax25/sock.h b/include/patty/ax25/sock.h index 52ada80..a995752 100644 --- a/include/patty/ax25/sock.h +++ b/include/patty/ax25/sock.h @@ -89,11 +89,11 @@ typedef struct _patty_ax25_sock { unsigned int hops; } patty_ax25_sock; +void patty_ax25_sock_init(patty_ax25_sock *sock); + patty_ax25_sock *patty_ax25_sock_new(enum patty_ax25_proto proto, enum patty_ax25_sock_type type); -void patty_ax25_sock_reset(patty_ax25_sock *sock); - void patty_ax25_sock_destroy(patty_ax25_sock *sock); int patty_ax25_sock_upgrade(patty_ax25_sock *sock, diff --git a/src/server.c b/src/server.c index ad7c3a0..409eea5 100644 --- a/src/server.c +++ b/src/server.c @@ -1275,7 +1275,7 @@ static int handle_dm(patty_ax25_server *server, goto error_client_by_sock; } - patty_ax25_sock_reset(sock); + patty_ax25_sock_init(sock); return respond_connect(client, -1, ECONNREFUSED); @@ -1423,7 +1423,7 @@ static int handle_xid(patty_ax25_server *server, goto error_client_by_sock; } - patty_ax25_sock_reset(remote); + patty_ax25_sock_init(remote); return respond_connect(client, -1, errno); } diff --git a/src/sock.c b/src/sock.c index d2a0719..a44d143 100644 --- a/src/sock.c +++ b/src/sock.c @@ -104,6 +104,23 @@ error_realloc_tx_buf: return -1; } +void patty_ax25_sock_init(patty_ax25_sock *sock) { + sock->status = PATTY_AX25_SOCK_CLOSED; + sock->mode = PATTY_AX25_SOCK_DM; + sock->n_maxlen_tx = PATTY_AX25_SOCK_DEFAULT_MAXLEN; + sock->n_maxlen_rx = PATTY_AX25_SOCK_DEFAULT_MAXLEN; + sock->n_window_tx = PATTY_AX25_SOCK_DEFAULT_WINDOW; + 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, enum patty_ax25_sock_type type) { patty_ax25_sock *sock; @@ -114,7 +131,7 @@ patty_ax25_sock *patty_ax25_sock_new(enum patty_ax25_proto proto, memset(sock, '\0', sizeof(*sock)); - patty_ax25_sock_reset(sock); + patty_ax25_sock_init(sock); sock->proto = proto; sock->type = type; @@ -144,23 +161,6 @@ error_malloc_sock: return NULL; } -void patty_ax25_sock_reset(patty_ax25_sock *sock) { - sock->status = PATTY_AX25_SOCK_CLOSED; - sock->mode = PATTY_AX25_SOCK_DM; - sock->n_maxlen_tx = PATTY_AX25_SOCK_DEFAULT_MAXLEN; - sock->n_maxlen_rx = PATTY_AX25_SOCK_DEFAULT_MAXLEN; - sock->n_window_tx = PATTY_AX25_SOCK_DEFAULT_WINDOW; - 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); -} - void patty_ax25_sock_destroy(patty_ax25_sock *sock) { if (sock->fd) { if (sock->iface) {