summaryrefslogtreecommitdiff
path: root/file_io
diff options
context:
space:
mode:
Diffstat (limited to 'file_io')
-rw-r--r--file_io/unix/fileacc.c5
-rw-r--r--file_io/unix/filedup.c1
-rw-r--r--file_io/unix/open.c2
-rw-r--r--file_io/win32/filedup.c1
-rw-r--r--file_io/win32/open.c1
5 files changed, 9 insertions, 1 deletions
diff --git a/file_io/unix/fileacc.c b/file_io/unix/fileacc.c
index 6addcf9af..0a6dfcd7d 100644
--- a/file_io/unix/fileacc.c
+++ b/file_io/unix/fileacc.c
@@ -64,6 +64,11 @@ APR_DECLARE(apr_status_t) apr_file_name_get(const char **fname,
return APR_SUCCESS;
}
+APR_DECLARE(apr_int32_t) apr_file_flags_get(apr_file_t *f)
+{
+ return f->flags;
+}
+
#if !defined(OS2) && !defined(WIN32)
mode_t apr_unix_perms2mode(apr_fileperms_t perms)
{
diff --git a/file_io/unix/filedup.c b/file_io/unix/filedup.c
index 897429248..e7e6507d4 100644
--- a/file_io/unix/filedup.c
+++ b/file_io/unix/filedup.c
@@ -86,6 +86,7 @@ apr_status_t apr_file_dup(apr_file_t **new_file, apr_file_t *old_file, apr_pool_
(*new_file)->buffer = apr_palloc(p, APR_FILE_BUFSIZE);
}
(*new_file)->blocking = old_file->blocking; /* this is the way dup() works */
+ (*new_file)->flags = old_file->flags;
apr_pool_cleanup_register((*new_file)->cntxt, (void *)(*new_file), apr_unix_file_cleanup,
apr_pool_cleanup_null);
return APR_SUCCESS;
diff --git a/file_io/unix/open.c b/file_io/unix/open.c
index 87ee1b3a0..f3b9f9600 100644
--- a/file_io/unix/open.c
+++ b/file_io/unix/open.c
@@ -90,7 +90,7 @@ apr_status_t apr_file_open(apr_file_t **new, const char *fname, apr_int32_t flag
(*new) = (apr_file_t *)apr_pcalloc(cont, sizeof(apr_file_t));
(*new)->cntxt = cont;
- (*new)->oflags = oflags;
+ (*new)->flags = flag;
(*new)->filedes = -1;
if ((flag & APR_READ) && (flag & APR_WRITE)) {
diff --git a/file_io/win32/filedup.c b/file_io/win32/filedup.c
index e3e048ebe..e60eb1df6 100644
--- a/file_io/win32/filedup.c
+++ b/file_io/win32/filedup.c
@@ -103,6 +103,7 @@ APR_DECLARE(apr_status_t) apr_file_dup(apr_file_t **new_file,
return APR_ENOTIMPL;
}
+ (*new_file)->flags = old_file->flags;
(*new_file)->cntxt = old_file->cntxt;
(*new_file)->fname = apr_pstrdup(old_file->cntxt, old_file->fname);
(*new_file)->append = old_file->append;
diff --git a/file_io/win32/open.c b/file_io/win32/open.c
index 92b21df15..8a3a8eb13 100644
--- a/file_io/win32/open.c
+++ b/file_io/win32/open.c
@@ -259,6 +259,7 @@ APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **new, const char *fname,
(*new)->cntxt = cont;
(*new)->filehand = handle;
(*new)->fname = apr_pstrdup(cont, fname);
+ (*new)->flags = flag;
if (flag & APR_APPEND) {
(*new)->append = 1;