[PATCH v4 1/5] pdump: fix default socket path
From: Reshma Pattan <hidden>
Date: 2016-06-24 13:54:48
Subsystem:
library code, the rest · Maintainers:
Andrew Morton, Linus Torvalds
SOCKET_PATH_HOME is to specify environment variable "HOME",
so it should not contain "/pdump_sockets" in the macro.
So remove "/pdump_sockets" from SOCKET_PATH_HOME
and create new macro for "/pdump_sockets". Similary removed
"/pdump_sockets" from SOCKET_PATH_VAR_RUN.
Changes are done in pdump_get_socket_path() to accommodate
new socket path changes.
Fixes: 278f945402c5 ("pdump: add new library for packet capture")
Signed-off-by: Reshma Pattan <redacted>
---
lib/librte_pdump/rte_pdump.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/lib/librte_pdump/rte_pdump.c b/lib/librte_pdump/rte_pdump.c
index c921f51..5c335ba 100644
--- a/lib/librte_pdump/rte_pdump.c
+++ b/lib/librte_pdump/rte_pdump.c@@ -50,8 +50,9 @@ #include "rte_pdump.h" -#define SOCKET_PATH_VAR_RUN "/var/run/pdump_sockets" -#define SOCKET_PATH_HOME "HOME/pdump_sockets" +#define SOCKET_PATH_VAR_RUN "/var/run" +#define SOCKET_PATH_HOME "HOME" +#define SOCKET_DIR "/pdump_sockets" #define SERVER_SOCKET "%s/pdump_server_socket" #define CLIENT_SOCKET "%s/pdump_client_socket_%d_%u" #define DEVICE_ID_SIZE 64
@@ -444,17 +445,20 @@ set_pdump_rxtx_cbs(struct pdump_request *p) static void pdump_get_socket_path(char *buffer, int bufsz, enum rte_pdump_socktype type) { - const char *dir = NULL; + char dir[PATH_MAX] = {0}; + char *dir_home = NULL; if (type == RTE_PDUMP_SOCKET_SERVER && server_socket_dir[0] != 0) - dir = server_socket_dir; + snprintf(dir, sizeof(dir), "%s", server_socket_dir); else if (type == RTE_PDUMP_SOCKET_CLIENT && client_socket_dir[0] != 0) - dir = client_socket_dir; + snprintf(dir, sizeof(dir), "%s", client_socket_dir); else { - if (getuid() != 0) - dir = getenv(SOCKET_PATH_HOME); - else - dir = SOCKET_PATH_VAR_RUN; + if (getuid() != 0) { + dir_home = getenv(SOCKET_PATH_HOME); + strcat(dir, dir_home); + } else + strcat(dir, SOCKET_PATH_VAR_RUN); + strcat(dir, SOCKET_DIR); } mkdir(dir, 700);
--
2.5.0