Welcome! Log In Create A New Profile

Advanced

[nginx] Fixed portability issues with union sigval.

Sergey Kandaurov
January 28, 2019 12:18PM
details: https://hg.nginx.org/nginx/rev/7f035fd1ec7b
branches:
changeset: 7448:7f035fd1ec7b
user: Sergey Kandaurov <pluknet@nginx.com>
date: Mon Jan 28 14:33:31 2019 +0000
description:
Fixed portability issues with union sigval.

AIO support in nginx was originally developed against FreeBSD versions 4-6,
where the sival_ptr field was named as sigval_ptr (seemingly by mistake[1]),
which made nginx use the only name available then. The standard-complaint
name was restored in 2005 (first appeared in FreeBSD 7.0, 2008), retaining
compatibility with previous versions[2][3]. In DragonFly, similar changes
were committed in 2009[4], with backward compatibility recently removed[5].

The change switches to the standard name, retaining compatibility with old
FreeBSD versions.

[1] https://svnweb.freebsd.org/changeset/base/48621
[2] https://svnweb.freebsd.org/changeset/base/152029
[3] https://svnweb.freebsd.org/changeset/base/174003
[4] https://gitweb.dragonflybsd.org/dragonfly.git/commit/3693401
[5] https://gitweb.dragonflybsd.org/dragonfly.git/commit/7875042

diffstat:

src/os/unix/ngx_file_aio_read.c | 2 +-
src/os/unix/ngx_freebsd_config.h | 6 ++++++
2 files changed, 7 insertions(+), 1 deletions(-)

diffs (30 lines):

diff -r f56a4c91b303 -r 7f035fd1ec7b src/os/unix/ngx_file_aio_read.c
--- a/src/os/unix/ngx_file_aio_read.c Mon Jan 28 13:23:37 2019 +0300
+++ b/src/os/unix/ngx_file_aio_read.c Mon Jan 28 14:33:31 2019 +0000
@@ -110,7 +110,7 @@ ngx_file_aio_read(ngx_file_t *file, u_ch
#if (NGX_HAVE_KQUEUE)
aio->aiocb.aio_sigevent.sigev_notify_kqueue = ngx_kqueue;
aio->aiocb.aio_sigevent.sigev_notify = SIGEV_KEVENT;
- aio->aiocb.aio_sigevent.sigev_value.sigval_ptr = ev;
+ aio->aiocb.aio_sigevent.sigev_value.sival_ptr = ev;
#endif
ev->handler = ngx_file_aio_event_handler;

diff -r f56a4c91b303 -r 7f035fd1ec7b src/os/unix/ngx_freebsd_config.h
--- a/src/os/unix/ngx_freebsd_config.h Mon Jan 28 13:23:37 2019 +0300
+++ b/src/os/unix/ngx_freebsd_config.h Mon Jan 28 14:33:31 2019 +0000
@@ -89,8 +89,14 @@


#if (NGX_HAVE_FILE_AIO)
+
#include <aio.h>
typedef struct aiocb ngx_aiocb_t;
+
+#if (__FreeBSD_version < 700005 && !defined __DragonFly__)
+#define sival_ptr sigval_ptr
+#endif
+
#endif


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

[nginx] Fixed portability issues with union sigval.

Sergey Kandaurov 254 January 28, 2019 12:18PM



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

Online Users

Guests: 323
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready