]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
rsocket: Return -1 from raccept in case of EAGAIN error
authorSasha Kotchubievsky <sashakot@mellanox.com>
Tue, 10 Feb 2015 20:23:52 +0000 (12:23 -0800)
committerSean Hefty <sean.hefty@intel.com>
Tue, 10 Feb 2015 20:23:52 +0000 (12:23 -0800)
If no pending connections are present for the rsocket
marked as nonblocknig, raccept should fail with the error
EAGAIN or EWOULDBLOCK.

Signed-off-by: Sasha Kotchubievsky <sashakot@mellanox.com>
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
src/rsocket.c

index 10557280af6d0ff6fc4f3d2af96123a5eaabb340..84013f865988ab649e841f9b7e30ee2e22141fba 100644 (file)
@@ -1242,12 +1242,14 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen)
        param.private_data = &cresp;
        param.private_data_len = sizeof cresp;
        ret = rdma_accept(new_rs->cm_id, &param);
-       if (!ret)
+       if (!ret) {
                new_rs->state = rs_connect_rdwr;
-       else if (errno == EAGAIN || errno == EWOULDBLOCK)
+       } else if (errno == EAGAIN || errno == EWOULDBLOCK) {
                new_rs->state = rs_accepting;
-       else
+               return 1;
+       } else {
                goto err;
+       }
 
        if (addr && addrlen)
                rgetpeername(new_rs->index, addr, addrlen);