This commit is contained in:
XANTRONIX Development 2015-07-26 01:31:38 -05:00 committed by XANTRONIX Industrial
parent 275dec9760
commit c4727bafb9

View file

@ -82,7 +82,6 @@ error_malloc_sock:
int patty_ax25_listen(patty_ax25 *ax25, int socket, const char *callsign, int ssid) { int patty_ax25_listen(patty_ax25 *ax25, int socket, const char *callsign, int ssid) {
patty_ax25_sock *sock; patty_ax25_sock *sock;
patty_ax25_address *addr;
if ((sock = patty_dict_get(ax25->fd_lookup, &socket, sizeof(socket))) == NULL) { if ((sock = patty_dict_get(ax25->fd_lookup, &socket, sizeof(socket))) == NULL) {
errno = EBADF; errno = EBADF;
@ -100,19 +99,13 @@ int patty_ax25_listen(patty_ax25 *ax25, int socket, const char *callsign, int ss
goto error_exists; goto error_exists;
} }
if ((addr = malloc(sizeof(*addr))) == NULL) { if ((sock->local = patty_ax25_address_create(callsign, ssid)) == NULL) {
goto error_malloc_addr; goto error_address_create;
} }
strncpy(addr->callsign, callsign, sizeof(addr->callsign));
addr->ssid = ssid;
addr->last = 0;
addr->c = 0;
return 0; return 0;
error_malloc_addr: error_address_create:
error_exists: error_exists:
error_dict_get: error_dict_get:
return -1; return -1;
@ -120,7 +113,6 @@ error_dict_get:
int patty_ax25_connect(patty_ax25 *ax25, int socket, const char *callsign, int ssid) { int patty_ax25_connect(patty_ax25 *ax25, int socket, const char *callsign, int ssid) {
patty_ax25_sock *sock; patty_ax25_sock *sock;
patty_ax25_address *addr;
if ((sock = patty_dict_get(ax25->fd_lookup, &socket, sizeof(socket))) == NULL) { if ((sock = patty_dict_get(ax25->fd_lookup, &socket, sizeof(socket))) == NULL) {
errno = EBADF; errno = EBADF;
@ -128,21 +120,20 @@ int patty_ax25_connect(patty_ax25 *ax25, int socket, const char *callsign, int s
goto error_dict_get; goto error_dict_get;
} }
if ((addr = malloc(sizeof(*addr))) == NULL) { if (sock->remote != NULL) {
goto error_malloc_addr; errno = EEXIST;
goto error_exists;
} }
strncpy(addr->callsign, callsign, sizeof(addr->callsign)); if ((sock->remote = patty_ax25_address_create(callsign, ssid)) == NULL) {
goto error_address_create;
addr->ssid = ssid; }
addr->last = 0;
addr->c = 0;
sock->remote = addr;
return 0; return 0;
error_malloc_addr: error_address_create:
error_exists:
error_dict_get: error_dict_get:
return -1; return -1;
} }