aboutsummaryrefslogtreecommitdiff
path: root/src/usocket.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/usocket.c')
-rw-r--r--src/usocket.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/usocket.c b/src/usocket.c
index e70806a..ef275b4 100644
--- a/src/usocket.c
+++ b/src/usocket.c
@@ -206,10 +206,10 @@ int socket_send(p_socket ps, const char *data, size_t count,
206 size_t *sent, p_timeout tm) 206 size_t *sent, p_timeout tm)
207{ 207{
208 int err; 208 int err;
209 *sent = 0;
209 /* avoid making system calls on closed sockets */ 210 /* avoid making system calls on closed sockets */
210 if (*ps == SOCKET_INVALID) return IO_CLOSED; 211 if (*ps == SOCKET_INVALID) return IO_CLOSED;
211 /* loop until we send something or we give up on error */ 212 /* loop until we send something or we give up on error */
212 *sent = 0;
213 for ( ;; ) { 213 for ( ;; ) {
214 long put = (long) send(*ps, data, count, 0); 214 long put = (long) send(*ps, data, count, 0);
215 /* if we sent anything, we are done */ 215 /* if we sent anything, we are done */
@@ -239,8 +239,8 @@ int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent,
239 SA *addr, socklen_t len, p_timeout tm) 239 SA *addr, socklen_t len, p_timeout tm)
240{ 240{
241 int err; 241 int err;
242 if (*ps == SOCKET_INVALID) return IO_CLOSED;
243 *sent = 0; 242 *sent = 0;
243 if (*ps == SOCKET_INVALID) return IO_CLOSED;
244 for ( ;; ) { 244 for ( ;; ) {
245 long put = (long) sendto(*ps, data, count, 0, addr, len); 245 long put = (long) sendto(*ps, data, count, 0, addr, len);
246 if (put > 0) { 246 if (put > 0) {
@@ -261,6 +261,7 @@ int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent,
261\*-------------------------------------------------------------------------*/ 261\*-------------------------------------------------------------------------*/
262int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm) { 262int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm) {
263 int err; 263 int err;
264 *got = 0;
264 if (*ps == SOCKET_INVALID) return IO_CLOSED; 265 if (*ps == SOCKET_INVALID) return IO_CLOSED;
265 for ( ;; ) { 266 for ( ;; ) {
266 long taken = (long) recv(*ps, data, count, 0); 267 long taken = (long) recv(*ps, data, count, 0);
@@ -269,7 +270,6 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm
269 return IO_DONE; 270 return IO_DONE;
270 } 271 }
271 err = errno; 272 err = errno;
272 *got = 0;
273 if (taken == 0) return IO_CLOSED; 273 if (taken == 0) return IO_CLOSED;
274 if (err == EINTR) continue; 274 if (err == EINTR) continue;
275 if (err != EAGAIN) return err; 275 if (err != EAGAIN) return err;
@@ -284,6 +284,7 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm
284int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got, 284int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
285 SA *addr, socklen_t *len, p_timeout tm) { 285 SA *addr, socklen_t *len, p_timeout tm) {
286 int err; 286 int err;
287 *got = 0;
287 if (*ps == SOCKET_INVALID) return IO_CLOSED; 288 if (*ps == SOCKET_INVALID) return IO_CLOSED;
288 for ( ;; ) { 289 for ( ;; ) {
289 long taken = (long) recvfrom(*ps, data, count, 0, addr, len); 290 long taken = (long) recvfrom(*ps, data, count, 0, addr, len);
@@ -292,7 +293,6 @@ int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
292 return IO_DONE; 293 return IO_DONE;
293 } 294 }
294 err = errno; 295 err = errno;
295 *got = 0;
296 if (taken == 0) return IO_CLOSED; 296 if (taken == 0) return IO_CLOSED;
297 if (err == EINTR) continue; 297 if (err == EINTR) continue;
298 if (err != EAGAIN) return err; 298 if (err != EAGAIN) return err;