From 62775e81863b45f7f8c896e7e8623ad783e8b6f3 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Mon, 25 Dec 2006 06:36:23 +0000 Subject: Fixed ticket #49: When socket is signaled for readability, recv()/recvfrom is called with flags set to zero. It should use the flags as specified when ioqueue_recv()/ioqueue_recvfrom() was called. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@859 74dad513-b988-da41-8d7b-12977e46ad98 --- pjlib/src/pj/ioqueue_common_abs.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'pjlib/src') diff --git a/pjlib/src/pj/ioqueue_common_abs.c b/pjlib/src/pj/ioqueue_common_abs.c index 97868fb7..18408b5a 100644 --- a/pjlib/src/pj/ioqueue_common_abs.c +++ b/pjlib/src/pj/ioqueue_common_abs.c @@ -417,12 +417,14 @@ void ioqueue_dispatch_read_event( pj_ioqueue_t *ioqueue, pj_ioqueue_key_t *h ) if ((read_op->op == PJ_IOQUEUE_OP_RECV_FROM)) { read_op->op = 0; - rc = pj_sock_recvfrom(h->fd, read_op->buf, &bytes_read, 0, + rc = pj_sock_recvfrom(h->fd, read_op->buf, &bytes_read, + read_op->flags, read_op->rmt_addr, read_op->rmt_addrlen); } else if ((read_op->op == PJ_IOQUEUE_OP_RECV)) { read_op->op = 0; - rc = pj_sock_recv(h->fd, read_op->buf, &bytes_read, 0); + rc = pj_sock_recv(h->fd, read_op->buf, &bytes_read, + read_op->flags); } else { pj_assert(read_op->op == PJ_IOQUEUE_OP_READ); read_op->op = 0; @@ -440,7 +442,8 @@ void ioqueue_dispatch_read_event( pj_ioqueue_t *ioqueue, pj_ioqueue_key_t *h ) */ # if defined(PJ_WIN32) && PJ_WIN32 != 0 || \ defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE != 0 - rc = pj_sock_recv(h->fd, read_op->buf, &bytes_read, 0); + rc = pj_sock_recv(h->fd, read_op->buf, &bytes_read, + read_op->flags); //rc = ReadFile((HANDLE)h->fd, read_op->buf, read_op->size, // &bytes_read, NULL); # elif (defined(PJ_HAS_UNISTD_H) && PJ_HAS_UNISTD_H != 0) -- cgit v1.2.3