Anonymous User
February 13, 2012 11:14AM
Author: defan
Date: 2012-02-13 16:13:21 +0000 (Mon, 13 Feb 2012)
New Revision: 4476

Log:
Added openat()/fstatat().


Modified:
trunk/auto/unix
trunk/src/os/unix/ngx_errno.h
trunk/src/os/unix/ngx_files.h

Modified: trunk/auto/unix
===================================================================
--- trunk/auto/unix 2012-02-13 15:41:11 UTC (rev 4475)
+++ trunk/auto/unix 2012-02-13 16:13:21 UTC (rev 4476)
@@ -731,3 +731,17 @@
ngx_feature_libs=
ngx_feature_test="sysconf(_SC_NPROCESSORS_ONLN)"
. auto/feature
+
+
+ngx_feature="openat(), fstatat()"
+ngx_feature_name="NGX_HAVE_OPENAT"
+ngx_feature_run=no
+ngx_feature_incs="#include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>"
+ngx_feature_path=
+ngx_feature_libs=
+ngx_feature_test="struct stat sb;
+ openat(AT_FDCWD, \".\", O_RDONLY|O_NOFOLLOW);
+ fstatat(AT_FDCWD, \".\", &sb, AT_SYMLINK_NOFOLLOW);"
+. auto/feature

Modified: trunk/src/os/unix/ngx_errno.h
===================================================================
--- trunk/src/os/unix/ngx_errno.h 2012-02-13 15:41:11 UTC (rev 4475)
+++ trunk/src/os/unix/ngx_errno.h 2012-02-13 16:13:21 UTC (rev 4476)
@@ -48,6 +48,11 @@
#define NGX_EILSEQ EILSEQ
#define NGX_ENOMOREFILES 0

+#if (NGX_HAVE_OPENAT)
+#define NGX_EMLINK EMLINK
+#define NGX_ELOOP ELOOP
+#endif
+
#if (__hpux__)
#define NGX_EAGAIN EWOULDBLOCK
#else

Modified: trunk/src/os/unix/ngx_files.h
===================================================================
--- trunk/src/os/unix/ngx_files.h 2012-02-13 15:41:11 UTC (rev 4475)
+++ trunk/src/os/unix/ngx_files.h 2012-02-13 16:13:21 UTC (rev 4476)
@@ -76,6 +76,10 @@
#define NGX_FILE_APPEND O_WRONLY|O_APPEND
#define NGX_FILE_NONBLOCK O_NONBLOCK

+#if (NGX_HAVE_OPENAT)
+#define NGX_FILE_NOFOLLOW O_NOFOLLOW
+#endif
+
#define NGX_FILE_DEFAULT_ACCESS 0644
#define NGX_FILE_OWNER_ACCESS 0600

@@ -324,6 +328,21 @@
size_t ngx_fs_bsize(u_char *name);


+#if (NGX_HAVE_OPENAT)
+
+#define ngx_openat_file(fd, name, mode, create, access) \
+ openat(fd, (const char *) name, mode|create, access)
+
+#define ngx_openat_file_n "openat()"
+
+#define ngx_file_at_info(fd, name, sb, flag) \
+ fstatat(fd, (const char *) name, sb, flag)
+
+#define ngx_file_at_info_n "fstatat()"
+
+#endif
+
+
#define ngx_stderr STDERR_FILENO
#define ngx_set_stderr(fd) dup2(fd, STDERR_FILENO)
#define ngx_set_stderr_n "dup2(STDERR_FILENO)"

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] svn commit: r4476 - in trunk: auto src/os/unix

Anonymous User 1365 February 13, 2012 11:14AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 125
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready