aboutsummaryrefslogtreecommitdiffstats
path: root/src/vppinfra/socket.c
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2021-05-26 10:21:10 -0700
committerDave Wallace <dwallacelf@gmail.com>2021-05-26 18:47:41 +0000
commit57e0af924b8b48cf39b1020bf11f10e3c227f22c (patch)
tree0f18adca9384fe9f8bf759bd795442baef2b4c17 /src/vppinfra/socket.c
parent46cb4c40941e06d726c116975c321603766d24bd (diff)
vppinfra: explicit blocking mode for sock connects
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I3a33230de13fef613dc9523cf24a9968d200c2e5
Diffstat (limited to 'src/vppinfra/socket.c')
-rw-r--r--src/vppinfra/socket.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/vppinfra/socket.c b/src/vppinfra/socket.c
index 1d8b2ca2e45..d8427852400 100644
--- a/src/vppinfra/socket.c
+++ b/src/vppinfra/socket.c
@@ -518,8 +518,10 @@ clib_socket_init (clib_socket_t * s)
s->fd, s->config);
goto done;
}
- /* Connect was blocking so set fd to non-blocking now */
+ /* Connect was blocking so set fd to non-blocking now unless
+ * blocking mode explicitly requested. */
if (!(s->flags & CLIB_SOCKET_F_NON_BLOCKING_CONNECT) &&
+ !(s->flags & CLIB_SOCKET_F_BLOCKING) &&
fcntl (s->fd, F_SETFL, O_NONBLOCK) < 0)
{
error = clib_error_return_unix (0, "fcntl NONBLOCK2 (fd %d, '%s')",