vcl: fix getting wrong non-blocking flags issue in VPPCOM_ATTR_GET_FLAGS action 97/28197/2
authorSimon Zhang <yuwei1.zhang@intel.com>
Thu, 6 Aug 2020 21:20:47 +0000 (05:20 +0800)
committerSimon Zhang <yuwei1.zhang@intel.com>
Sun, 9 Aug 2020 01:37:07 +0000 (01:37 +0000)
Type: fix

Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
Change-Id: If4c700b59b8936a43d6a73ed75cc6fdaf6cf141d

src/vcl/vppcom.c

index fd9136a..f1478f8 100644 (file)
@@ -3081,8 +3081,10 @@ vppcom_session_attr (uint32_t session_handle, uint32_t op,
     case VPPCOM_ATTR_GET_FLAGS:
       if (PREDICT_TRUE (buffer && buflen && (*buflen >= sizeof (*flags))))
        {
-         *flags = O_RDWR | (VCL_SESS_ATTR_TEST (session->attr,
-                                                VCL_SESS_ATTR_NONBLOCK));
+         *flags =
+           O_RDWR |
+           (VCL_SESS_ATTR_TEST (session->attr, VCL_SESS_ATTR_NONBLOCK) ?
+            O_NONBLOCK : 0);
          *buflen = sizeof (*flags);
          VDBG (2, "VPPCOM_ATTR_GET_FLAGS: sh %u, flags = 0x%08x, "
                "is_nonblocking = %u", session_handle, *flags,