X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdirs.c.in;h=658a74b4c6179d7be18fbb6d5e5cc1d00e7bf4bd;hb=refs%2Fheads%2Fmanual;hp=2b998b9fffda9216dbf4e1ae1a5748874912a571;hpb=f973f2af2fd4452c8e182caf6a4346cf2a2a394e;p=openvswitch diff --git a/lib/dirs.c.in b/lib/dirs.c.in index 2b998b9f..658a74b4 100644 --- a/lib/dirs.c.in +++ b/lib/dirs.c.in @@ -18,6 +18,7 @@ #include #include "dirs.h" #include +#include "util.h" struct directory { const char *value; /* Actual value; NULL if not yet determined. */ @@ -68,8 +69,18 @@ ovs_logdir(void) const char * ovs_dbdir(void) { - static struct directory d = { NULL, @DBDIR@, "OVS_DBDIR" }; - return get_dir(&d); + static const char *dbdir; + if (!dbdir) { + dbdir = getenv("OVS_DBDIR"); + if (!dbdir || !dbdir[0]) { + char *sysconfdir = getenv("OVS_SYSCONFDIR"); + + dbdir = (sysconfdir + ? xasprintf("%s/openvswitch", sysconfdir) + : @DBDIR@); + } + } + return dbdir; } const char *