aboutsummaryrefslogtreecommitdiffstats
path: root/guts/openat.c
diff options
context:
space:
mode:
Diffstat (limited to 'guts/openat.c')
-rw-r--r--guts/openat.c67
1 files changed, 0 insertions, 67 deletions
diff --git a/guts/openat.c b/guts/openat.c
deleted file mode 100644
index c245796..0000000
--- a/guts/openat.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2008-2010 Wind River Systems; see
- * guts/COPYRIGHT for information.
- *
- * static int
- * wrap_openat(int dirfd, const char *path, int flags, ...mode_t mode) {
- * int rc = -1;
- */
- struct stat64 buf;
- int existed = 1;
- int save_errno;
-
-#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
- if (dirfd != AT_FDCWD) {
- errno = ENOSYS;
- return -1;
- }
-#endif
- /* if a creation has been requested, check whether file exists */
- if (flags & O_CREAT) {
- save_errno = errno;
-#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
- rc = real___xstat64(_STAT_VER, path, &buf);
-#else
- rc = real___fxstatat64(_STAT_VER, dirfd, path, &buf, 0);
-#endif
- existed = (rc != -1);
- if (!existed)
- pseudo_debug(2, "openat_creat: %s -> 0%o\n", path, mode);
- errno = save_errno;
- }
-
- /* because we are not actually root, secretly mask in 0700 to the
- * underlying mode
- */
-#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
- rc = real_open(path, flags, PSEUDO_FS_MODE(mode));
-#else
- rc = real_openat(dirfd, path, flags, PSEUDO_FS_MODE(mode));
-#endif
- save_errno = errno;
-
- if (rc != -1) {
- int stat_rc;
-#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
- stat_rc = real___xstat64(_STAT_VER, path, &buf);
-#else
- stat_rc = real___fxstatat64(_STAT_VER, dirfd, path, &buf, 0);
-#endif
-
- if (stat_rc != -1) {
- buf.st_mode = PSEUDO_DB_MODE(buf.st_mode, mode);
- if (!existed) {
- pseudo_client_op(OP_CREAT, 0, -1, dirfd, path, &buf);
- }
- pseudo_client_op(OP_OPEN, PSEUDO_ACCESS(flags), rc, dirfd, path, &buf);
- } else {
- pseudo_debug(1, "openat (fd %d, path %d/%s, flags %d) succeeded, but stat failed (%s).\n",
- rc, dirfd, path, flags, strerror(errno));
- pseudo_client_op(OP_OPEN, PSEUDO_ACCESS(flags), rc, dirfd, path, 0);
- }
- errno = save_errno;
- }
-
-/* return rc;
- * }
- */