Without returning EINTR, it is not possible to correctly terminate FRSH
applications such as wclient.
const fwp_sockaddr_t *sockaddr)
{
ssize_t ret;
const fwp_sockaddr_t *sockaddr)
{
ssize_t ret;
- while ((ret = sendto(s, buf, len, flags, (struct sockaddr*)&sockaddr->addr, sockaddr->addrlen)) < 0) {
- if (errno != EINTR) break;
- }
+ ret = sendto(s, buf, len, flags, (struct sockaddr*)&sockaddr->addr, sockaddr->addrlen);
fwp_sockaddr_t *sockaddr)
{
ssize_t ret;
fwp_sockaddr_t *sockaddr)
{
ssize_t ret;
- while ((ret = recvfrom(s, buf, len, flags, (struct sockaddr*)&sockaddr->addr,
- &sockaddr->addrlen)) < 0) {
- if (errno != EINTR) break;
- }
+ ret = recvfrom(s, buf, len, flags, (struct sockaddr*)&sockaddr->addr,
+ &sockaddr->addrlen);
_fwp_send(int s, const void *buf, size_t len, int flags)
{
ssize_t ret;
_fwp_send(int s, const void *buf, size_t len, int flags)
{
ssize_t ret;
- while ((ret = send(s, buf, len, flags)) < 0) {
- if (errno != EINTR) break;
- }
+ ret = send(s, buf, len, flags);
_fwp_recv(int s, void *buf, size_t len, int flags)
{
ssize_t ret;
_fwp_recv(int s, void *buf, size_t len, int flags)
{
ssize_t ret;
- while ((ret = recv(s, buf, len, flags)) < 0) {
- if (errno != EINTR) break;
- }
+ ret = recv(s, buf, len, flags);