diff options
| author | Maksim Yevmenkin <emax@FreeBSD.org> | 2004-01-20 20:48:26 +0000 |
|---|---|---|
| committer | Maksim Yevmenkin <emax@FreeBSD.org> | 2004-01-20 20:48:26 +0000 |
| commit | 07be7a6c2edb7aa5b3f80ba3d13ace5e22d2b47d (patch) | |
| tree | c318d183c555f9482f9b067d6ac25de5901a5821 /lib/libsdp/search.c | |
| parent | be057190048a620b99399889d15ae19be50e382c (diff) | |
Notes
Diffstat (limited to 'lib/libsdp/search.c')
| -rw-r--r-- | lib/libsdp/search.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/libsdp/search.c b/lib/libsdp/search.c index 98e3e1857aeb..42f162daf831 100644 --- a/lib/libsdp/search.c +++ b/lib/libsdp/search.c @@ -133,7 +133,10 @@ sdp_search(void *xss, iov[1].iov_base = (void *) ss->req; iov[1].iov_len = req_cs - ss->req; - len = writev(ss->s, iov, sizeof(iov)/sizeof(iov[0])); + do { + len = writev(ss->s, iov, sizeof(iov)/sizeof(iov[0])); + } while (len < 0 && errno == EINTR); + if (len < 0) { ss->error = errno; return (-1); @@ -145,7 +148,10 @@ sdp_search(void *xss, iov[1].iov_base = (void *) rsp; iov[1].iov_len = ss->imtu; - len = readv(ss->s, iov, sizeof(iov)/sizeof(iov[0])); + do { + len = readv(ss->s, iov, sizeof(iov)/sizeof(iov[0])); + } while (len < 0 && errno == EINTR); + if (len < 0) { ss->error = errno; return (-1); |
