This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.
Alexey Shamrin shamrin at gmail.comHi Andreas, 19.02.2014, в 10:57, Andreas Eversberg <jolly at eversberg.eu> написал(а): > When reading from RTP socket, the first read() may fail right after > connecting to remote socket. Subsequent read() will work as it should. > > If the remote socket does not open fast enough, the transmitted RTP > payload can cause an ICMP (connection refused) packet reply. This causes > the read to fail with errno=111. In all other error cases, the errno is > logged at debug level. In all error cases, reading is not disabled. > --- > openbsc/src/libtrau/rtp_proxy.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/openbsc/src/libtrau/rtp_proxy.c b/openbsc/src/libtrau/rtp_proxy.c > index ad3dbb6..52abad0 100644 > --- a/openbsc/src/libtrau/rtp_proxy.c > +++ b/openbsc/src/libtrau/rtp_proxy.c > @@ -497,9 +497,16 @@ static int rtp_socket_read(struct rtp_socket *rs, struct rtp_sub_socket *rss) > return -ENOMEM; > > rc = read(rss->bfd.fd, msg->data, RTP_ALLOC_SIZE); > - if (rc <= 0) { > - rss->bfd.when &= ~BSC_FD_READ; > - return rc; > + if (rc == 0) > + goto out_free; > + if (rc < 0) { > + /* Ignore "connection refused". this happens, If we open the > + * socket faster than the remove side. */ Typo? s/remove/remote/ > + if (errno == ECONNREFUSED) > + goto out_free; > + DEBUGPC(DLMUX, "Read of RTP socket (%p) failed (errno %d, " > + "%s)\n", rs, errno, strerror(errno)); > + goto out_free; > } > > msgb_put(msg, rc); > -- > 1.8.1.5 > >