Move APRS-IS connection code to aprs_is_connect()

Move APRS-IS connection code to aprs_is_connect() in src/aprs_is.c
This commit is contained in:
XANTRONIX Development 2020-09-18 17:57:34 -05:00 committed by XANTRONIX Industrial
parent 52350ad0e8
commit 606237606d

View file

@ -89,9 +89,8 @@ error_send_va:
return -1;
}
patty_ax25_aprs_is *patty_ax25_aprs_is_new(patty_ax25_aprs_is_info *info) {
patty_ax25_aprs_is *aprs;
static int aprs_is_connect(patty_ax25_aprs_is *aprs,
patty_ax25_aprs_is_info *info) {
struct addrinfo *ai0,
*ai;
@ -99,17 +98,6 @@ patty_ax25_aprs_is *patty_ax25_aprs_is_new(patty_ax25_aprs_is_info *info) {
goto error_getaddrinfo;
}
if ((aprs = malloc(sizeof(*aprs))) == NULL) {
goto error_malloc_aprs;
}
memset(aprs, '\0', sizeof(*aprs));
aprs->rx_bufsz = PATTY_AX25_APRS_IS_PACKET_MAX;
aprs->tx_bufsz = PATTY_AX25_APRS_IS_FRAME_MAX;
aprs->infosz = PATTY_AX25_APRS_IS_PAYLOAD_MAX;
aprs->state = APRS_IS_HEADER;
for (ai=ai0; ai; ai=ai->ai_next) {
if ((aprs->fd = socket(ai->ai_family,
ai->ai_socktype,
@ -135,15 +123,42 @@ patty_ax25_aprs_is *patty_ax25_aprs_is_new(patty_ax25_aprs_is_info *info) {
goto error_send_fmt;
}
return aprs;
return 0;
}
error_send_fmt:
close(aprs->fd);
error_getaddrinfo:
return -1;
}
patty_ax25_aprs_is *patty_ax25_aprs_is_new(patty_ax25_aprs_is_info *info) {
patty_ax25_aprs_is *aprs;
if ((aprs = malloc(sizeof(*aprs))) == NULL) {
goto error_malloc_aprs;
}
memset(aprs, '\0', sizeof(*aprs));
aprs->rx_bufsz = PATTY_AX25_APRS_IS_PACKET_MAX;
aprs->tx_bufsz = PATTY_AX25_APRS_IS_FRAME_MAX;
aprs->infosz = PATTY_AX25_APRS_IS_PAYLOAD_MAX;
aprs->state = APRS_IS_HEADER;
if (aprs_is_connect(aprs, info) < 0) {
goto error_connect;
}
return aprs;
error_connect:
close(aprs->fd);
free(aprs);
error_malloc_aprs:
error_getaddrinfo:
return NULL;
}