From c4727bafb9d60b47a0aecfe92b3d57fbcfeb5b5b Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Sun, 26 Jul 2015 01:31:38 -0500 Subject: [PATCH] Ah, nice --- src/ax25.c | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/src/ax25.c b/src/ax25.c index 37cd714..f72ea21 100644 --- a/src/ax25.c +++ b/src/ax25.c @@ -82,7 +82,6 @@ error_malloc_sock: int patty_ax25_listen(patty_ax25 *ax25, int socket, const char *callsign, int ssid) { patty_ax25_sock *sock; - patty_ax25_address *addr; if ((sock = patty_dict_get(ax25->fd_lookup, &socket, sizeof(socket))) == NULL) { errno = EBADF; @@ -100,19 +99,13 @@ int patty_ax25_listen(patty_ax25 *ax25, int socket, const char *callsign, int ss goto error_exists; } - if ((addr = malloc(sizeof(*addr))) == NULL) { - goto error_malloc_addr; + if ((sock->local = patty_ax25_address_create(callsign, ssid)) == NULL) { + goto error_address_create; } - strncpy(addr->callsign, callsign, sizeof(addr->callsign)); - - addr->ssid = ssid; - addr->last = 0; - addr->c = 0; - return 0; -error_malloc_addr: +error_address_create: error_exists: error_dict_get: return -1; @@ -120,7 +113,6 @@ error_dict_get: int patty_ax25_connect(patty_ax25 *ax25, int socket, const char *callsign, int ssid) { patty_ax25_sock *sock; - patty_ax25_address *addr; if ((sock = patty_dict_get(ax25->fd_lookup, &socket, sizeof(socket))) == NULL) { errno = EBADF; @@ -128,21 +120,20 @@ int patty_ax25_connect(patty_ax25 *ax25, int socket, const char *callsign, int s goto error_dict_get; } - if ((addr = malloc(sizeof(*addr))) == NULL) { - goto error_malloc_addr; + if (sock->remote != NULL) { + errno = EEXIST; + + goto error_exists; } - strncpy(addr->callsign, callsign, sizeof(addr->callsign)); - - addr->ssid = ssid; - addr->last = 0; - addr->c = 0; - - sock->remote = addr; + if ((sock->remote = patty_ax25_address_create(callsign, ssid)) == NULL) { + goto error_address_create; + } return 0; -error_malloc_addr: +error_address_create: +error_exists: error_dict_get: return -1; }