X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_pdump%2Frte_pdump.c;fp=lib%2Flibrte_pdump%2Frte_pdump.c;h=70efd96b46889ae199101575fc0273aef314dd53;hb=bdd8dcc6e2886e80bed96e2e5c6f833791fef721;hp=c921f5176664cc7f25deddd2391ddf9b6c00323f;hpb=f0cb66e3de4037beea44ead0a89ccee9686a1e6a;p=dpdk.git diff --git a/lib/librte_pdump/rte_pdump.c b/lib/librte_pdump/rte_pdump.c index c921f51766..70efd96b46 100644 --- a/lib/librte_pdump/rte_pdump.c +++ b/lib/librte_pdump/rte_pdump.c @@ -50,8 +50,10 @@ #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 DPDK_DIR "/.dpdk" +#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 +446,26 @@ 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 dpdk_dir[PATH_MAX] = {0}; + 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); + snprintf(dpdk_dir, sizeof(dpdk_dir), "%s%s", + dir_home, DPDK_DIR); + } else + snprintf(dpdk_dir, sizeof(dpdk_dir), "%s%s", + SOCKET_PATH_VAR_RUN, DPDK_DIR); + + mkdir(dpdk_dir, 700); + snprintf(dir, sizeof(dir), "%s%s", + dpdk_dir, SOCKET_DIR); } mkdir(dir, 700);