If the library fails to create the needed socket, add an additional
check to report if the error is due to a missing DPDK runtime dir.

Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>
Reviewed-by: David Marchand <david.march...@redhat.com>
Acked-by: Morten Brørup <m...@smartsharesystems.com>
Acked-by: Ciara Power <ciara.po...@intel.com>
---
 lib/telemetry/telemetry.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lib/telemetry/telemetry.c b/lib/telemetry/telemetry.c
index 6baba57ec2..8665db8d03 100644
--- a/lib/telemetry/telemetry.c
+++ b/lib/telemetry/telemetry.c
@@ -7,6 +7,7 @@
 #include <pthread.h>
 #include <sys/socket.h>
 #include <sys/un.h>
+#include <sys/stat.h>
 #include <dlfcn.h>
 #endif /* !RTE_EXEC_ENV_WINDOWS */
 
@@ -422,7 +423,11 @@ create_socket(char *path)
        strlcpy(sun.sun_path, path, sizeof(sun.sun_path));
        unlink(sun.sun_path);
        if (bind(sock, (void *) &sun, sizeof(sun)) < 0) {
+               struct stat st;
+
                TMTY_LOG(ERR, "Error binding socket: %s\n", strerror(errno));
+               if (stat(socket_dir, &st) < 0 || !S_ISDIR(st.st_mode))
+                       TMTY_LOG(ERR, "Cannot access DPDK runtime directory: 
%s\n", socket_dir);
                sun.sun_path[0] = 0;
                goto error;
        }
-- 
2.30.2

Reply via email to