rtp: Fixed problem of mute audio on some calls

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.

Conflicts:
	openbsc/src/libtrau/rtp_proxy.c

[hfreyther: Fix typo, stop reading in all cases but ECONNREFUSED]
diff --git a/openbsc/src/libtrau/rtp_proxy.c b/openbsc/src/libtrau/rtp_proxy.c
index be00dde..8c982c9 100644
--- a/openbsc/src/libtrau/rtp_proxy.c
+++ b/openbsc/src/libtrau/rtp_proxy.c
@@ -392,7 +392,16 @@
 		return -ENOMEM;
 
 	rc = read(rss->bfd.fd, msg->data, RTP_ALLOC_SIZE);
-	if (rc <= 0) {
+	if (rc == 0) {
+		rss->bfd.when &= ~BSC_FD_READ;
+		goto out_free;
+	} else if (rc < 0) {
+		/* Ignore "connection refused". this happens, If we open the
+		 * socket faster than the remote side. */
+		if (errno == ECONNREFUSED)
+			goto out_free;
+		DEBUGPC(DLMUX, "Read of RTP socket (%p) failed (errno %d, "
+			"%s)\n", rs, errno, strerror(errno));
 		rss->bfd.when &= ~BSC_FD_READ;
 		goto out_free;
 	}