diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2023-04-02 17:22:24 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2023-04-02 17:22:24 +0200 |
commit | 9940efe053263478c5f29367b11d6f7ed1276aa4 (patch) | |
tree | 99d1c9e9712c73ba4e6e8e145f007cb74294f12a /lib/fstree/src/get_by_path.c | |
parent | 32eb57dd9a19254565a0792ab9b627a3dac319f9 (diff) |
Move fstree CLI code to libcommon
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/fstree/src/get_by_path.c')
-rw-r--r-- | lib/fstree/src/get_by_path.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/fstree/src/get_by_path.c b/lib/fstree/src/get_by_path.c index 8742892..f5e7374 100644 --- a/lib/fstree/src/get_by_path.c +++ b/lib/fstree/src/get_by_path.c @@ -56,12 +56,20 @@ tree_node_t *fstree_get_node_by_path(fstree_t *fs, tree_node_t *root, n = child_by_name(root, path, len); if (n == NULL) { + struct stat sb; + if (!create_implicitly) { errno = ENOENT; return NULL; } - n = fstree_mknode(root, path, len, NULL, &fs->defaults); + memset(&sb, 0, sizeof(sb)); + sb.st_mode = S_IFDIR | (fs->defaults.mode & 07777); + sb.st_uid = fs->defaults.uid; + sb.st_gid = fs->defaults.gid; + sb.st_mtime = fs->defaults.mtime; + + n = fstree_mknode(root, path, len, NULL, &sb); if (n == NULL) return NULL; |