From 475674ee5aa4e130a0ac0caf08ef9d579b8604b7 Mon Sep 17 00:00:00 2001 From: Chris Luke Date: Wed, 5 Jul 2017 18:02:53 -0400 Subject: unix: mkdir VPP_RUN_DIR before opening a socket in it Change https://gerrit.fd.io/r/#/c/7230/ added a Unix domain CLI socket in the default startup.conf; however unless you had previously run VPP with the DPDK plugin enabled the directory that it is created in. /run/vpp, would not exist and startup would fail. This directory is typically hosted in a tmpfs ramdisk and is thus ephemeral. This patch adds a function that attempts to mkdir VPP_RUN_DIR and uses it in both the DPDK plugin and the CLI code if the CLI socket is to be created in that directory. Change-Id: Ibbf925819099dce2b5eb0fa238b9edca1036d6fd Signed-off-by: Chris Luke --- src/vlib/unix/util.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/vlib/unix/util.c') diff --git a/src/vlib/unix/util.c b/src/vlib/unix/util.c index edc3e591..51b4a4ed 100644 --- a/src/vlib/unix/util.c +++ b/src/vlib/unix/util.c @@ -222,6 +222,19 @@ done: return r; } +clib_error_t * +unix_make_vpp_run_dir (void) +{ + int rv; + + rv = mkdir (VPP_RUN_DIR, 0755); + if (rv && errno != EEXIST) + return clib_error_return (0, "mkdir '%s' failed errno %d", + VPP_RUN_DIR, errno); + + return 0; +} + /* * fd.io coding-style-patch-verification: ON * -- cgit 1.2.3-korg