diff options
Diffstat (limited to 'src/common/osmux.c')
-rw-r--r-- | src/common/osmux.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/common/osmux.c b/src/common/osmux.c index d1d83552..e443d1d0 100644 --- a/src/common/osmux.c +++ b/src/common/osmux.c @@ -78,6 +78,7 @@ static void osmux_deliver_cb(struct msgb *batch_msg, void *data) struct osmux_handle *handle = data; struct gsm_bts *bts = handle->bts; socklen_t dest_len; + ssize_t rc; switch (handle->rem_addr.u.sa.sa_family) { case AF_INET6: @@ -88,8 +89,14 @@ static void osmux_deliver_cb(struct msgb *batch_msg, void *data) dest_len = sizeof(handle->rem_addr.u.sin); break; } - sendto(bts->osmux.fd.fd, batch_msg->data, batch_msg->len, 0, + rc = sendto(bts->osmux.fd.fd, batch_msg->data, batch_msg->len, 0, (struct sockaddr *)&handle->rem_addr.u.sa, dest_len); + if (rc < 0) { + char errbuf[129]; + strerror_r(errno, errbuf, sizeof(errbuf)); + LOGP(DOSMUX, LOGL_ERROR, "osmux sendto(%s) failed: %s\n", + osmo_sockaddr_to_str(&handle->rem_addr), errbuf); + } msgb_free(batch_msg); } |