From 5785c0cfafa18a45734f0e383556219100632d2f Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Wed, 19 Apr 2006 14:45:08 +0000 Subject: Changed stream.c so it won't quit after recvfrom returns ECONNRESET git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@402 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia/stream.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'pjmedia/src') diff --git a/pjmedia/src/pjmedia/stream.c b/pjmedia/src/pjmedia/stream.c index 68cd2c9a..f63d2abb 100644 --- a/pjmedia/src/pjmedia/stream.c +++ b/pjmedia/src/pjmedia/stream.c @@ -508,6 +508,8 @@ static void on_rx_rtp( pj_ioqueue_key_t *key, if (bytes_read == 0) goto read_next_packet; + if (bytes_read < 0) + goto read_next_packet; /* Update RTP and RTCP session. */ status = pjmedia_rtp_decode_rtp(&channel->rtp, @@ -589,13 +591,19 @@ read_next_packet: &stream->rtp_src_addr, &stream->rtp_addrlen); - } while (status == PJ_SUCCESS); + if (status != PJ_SUCCESS) { + bytes_read = -status; + } + + } while (status == PJ_SUCCESS || + status == PJ_STATUS_FROM_OS(OSERR_ECONNRESET)); if (status != PJ_SUCCESS && status != PJ_EPENDING) { char errmsg[PJ_ERR_MSG_SIZE]; pj_strerror(status, errmsg, sizeof(errmsg)); - PJ_LOG(4,(THIS_FILE, "Error reading RTP packet: %s [status=%d]", + PJ_LOG(4,(THIS_FILE, "Error reading RTP packet: %s [status=%d]. " + "RTP stream thread quitting!", errmsg, status)); } } -- cgit v1.2.3