Avoid including libds/common/roles.h in public loadparm.h header.
[amitay/samba.git] / lib / param / util.c
index f488540b7fafcfe62c9e3fb6bf523a553939e079..bf9e0b8c309dfe39525e66be38130bca42fc574a 100644 (file)
@@ -28,6 +28,7 @@
 #include "system/filesys.h"
 #include "system/dir.h"
 #include "param/param.h"
+#include "libds/common/roles.h"
 
 /**
  * @file
@@ -91,7 +92,7 @@ static char *lpcfg_common_path(TALLOC_CTX* mem_ctx,
        }
        trim_string(dname,"","/");
 
-       ok = directory_create_or_exist(dname, geteuid(), 0755);
+       ok = directory_create_or_exist(dname, 0755);
        if (!ok) {
                DEBUG(1, ("Unable to create directory %s for file %s. "
                          "Error was %s\n", dname, name, strerror(errno)));
@@ -114,7 +115,7 @@ static char *lpcfg_common_path(TALLOC_CTX* mem_ctx,
 char *lpcfg_lock_path(TALLOC_CTX* mem_ctx, struct loadparm_context *lp_ctx,
                         const char *name)
 {
-       return lpcfg_common_path(mem_ctx, lpcfg_lockdir(lp_ctx), name);
+       return lpcfg_common_path(mem_ctx, lpcfg_lock_directory(lp_ctx), name);
 }
 
 /**
@@ -123,7 +124,7 @@ char *lpcfg_lock_path(TALLOC_CTX* mem_ctx, struct loadparm_context *lp_ctx,
 char *lpcfg_state_path(TALLOC_CTX* mem_ctx, struct loadparm_context *lp_ctx,
                       const char *name)
 {
-       return lpcfg_common_path(mem_ctx, lpcfg_statedir(lp_ctx), name);
+       return lpcfg_common_path(mem_ctx, lpcfg_state_directory(lp_ctx), name);
 }
 
 /**
@@ -132,7 +133,7 @@ char *lpcfg_state_path(TALLOC_CTX* mem_ctx, struct loadparm_context *lp_ctx,
 char *lpcfg_cache_path(TALLOC_CTX* mem_ctx, struct loadparm_context *lp_ctx,
                       const char *name)
 {
-       return lpcfg_common_path(mem_ctx, lpcfg_cachedir(lp_ctx), name);
+       return lpcfg_common_path(mem_ctx, lpcfg_cache_directory(lp_ctx), name);
 }
 
 /**
@@ -189,6 +190,23 @@ char *lpcfg_private_path(TALLOC_CTX* mem_ctx,
        return fname;
 }
 
+/**
+ * @brief Returns an absolute path to a NTDB or TDB file in the Samba
+ * private directory.
+ *
+ * @param name File to find, relative to PRIVATEDIR, without .tdb extension.
+ *
+ * @retval Pointer to a talloc'ed string containing the full path, for
+ * use with dbwrap_local_open().
+ **/
+char *lpcfg_private_db_path(TALLOC_CTX *mem_ctx,
+                           struct loadparm_context *lp_ctx,
+                           const char *name)
+{
+       return talloc_asprintf(mem_ctx, "%s/%s.tdb",
+                              lpcfg_private_dir(lp_ctx), name);
+}
+
 /**
   return a path in the smbd.tmp directory, where all temporary file
   for smbd go. If NULL is passed for name then return the directory 
@@ -206,7 +224,7 @@ char *smbd_tmp_path(TALLOC_CTX *mem_ctx,
                return NULL;
        }
 
-       ok = directory_create_or_exist(dname, geteuid(), 0755);
+       ok = directory_create_or_exist(dname, 0755);
        if (!ok) {
                return NULL;
        }