mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-16 08:49:01 +00:00
Fix fspr_socket_recv when receiving UDP with no data
This commit is contained in:
parent
b355bf21e6
commit
9c32f38dea
@ -117,8 +117,9 @@ APR_DECLARE(fspr_status_t) fspr_socket_recv(fspr_socket_t *sock, char *buf,
|
||||
return errno;
|
||||
}
|
||||
(*len) = rv;
|
||||
if (rv == 0)
|
||||
if (rv == 0 && sock->type == SOCK_STREAM)
|
||||
return APR_EOF;
|
||||
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
|
||||
@ -205,7 +206,7 @@ APR_DECLARE(fspr_status_t) fspr_socket_recvfrom(fspr_sockaddr_t *from,
|
||||
}
|
||||
|
||||
(*len) = rv;
|
||||
if (rv == 0)
|
||||
if (rv == 0 && sock->type == SOCK_STREAM)
|
||||
return APR_EOF;
|
||||
|
||||
return APR_SUCCESS;
|
||||
|
@ -100,7 +100,10 @@ APR_DECLARE(fspr_status_t) fspr_socket_recv(fspr_socket_t *sock, char *buf,
|
||||
}
|
||||
|
||||
(*len) = rv;
|
||||
return rv == 0 ? APR_EOF : APR_SUCCESS;
|
||||
if (rv == 0 && sock->type == SOCK_STREAM)
|
||||
return APR_EOF;
|
||||
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
@ -105,9 +105,10 @@ do_select:
|
||||
sock->options |= APR_INCOMPLETE_READ;
|
||||
}
|
||||
(*len) = rv;
|
||||
if (rv == 0) {
|
||||
if (rv == 0 && sock->type == SOCK_STREAM) {
|
||||
return APR_EOF;
|
||||
}
|
||||
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -90,7 +90,10 @@ APR_DECLARE(fspr_status_t) fspr_socket_recv(fspr_socket_t *sock, char *buf,
|
||||
}
|
||||
|
||||
*len = dwBytes;
|
||||
return dwBytes == 0 ? APR_EOF : APR_SUCCESS;
|
||||
if (rv == 0 && sock->type == SOCK_STREAM)
|
||||
return APR_EOF;
|
||||
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user