summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_kqueue_engine.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2023-03-28Don't conflate the error variable in nxt_kqueue_poll().Andrew Clayton1-3/+4
In nxt_kqueue_poll() error is declared as a nxt_bool_t aka unsigned int (on x86-64 anyway). It is used both as a boolean and as the return storage for a bitwise AND operation. This causes the following issue after we have changed nxt_bool_t to be a uint8_t (which will happen in a subsequent commit) gcc12 -c -pipe -fPIC -fvisibility=hidden -O -W -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wmissing-prototypes -Werror -g -O2 -I src -I build -I/usr/local/include -o build/src/nxt_kqueue_engine.o -MMD -MF build/src/nxt_kqueue_engine.dep -MT build/src/nxt_kqueue_engine.o src/nxt_kqueue_engine.c src/nxt_kqueue_engine.c: In function 'nxt_kqueue_poll': src/nxt_kqueue_engine.c:728:17: error: overflow in conversion from 'int' to 'nxt_bool_t' {aka 'unsigned char'} changes value from '(int)kev->flags & 16384' to '0' [-Werror=overflow] 728 | error = (kev->flags & EV_ERROR); | ^ cc1: all warnings being treated as errors EV_ERROR has the value 16384, after the AND operation error holds 16384, however this overflows and wraps around (64 times) exactly to 0. Rather than conflating the use of error, keep error as a boolean (it is used further down the function) but do the AND operation inside the if (). Reviewed-by: Alejandro Colomar <alx@nginx.com> Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2020-03-04The kqueue EOF flag might be ignored on some conditions.Igor Sysoev1-2/+2
If kqueue reported both the EVFILT_READ and the EVFILT_WRITE events for the socket but only the former had the EV_EOF flag set, the flag was silently ignored.
2019-10-03Ignoring EINTR error in kqueue.Igor Sysoev1-1/+4
2019-03-11Style.Andrey Zelenkov1-1/+1
2018-09-20Added SSL/TLS support on connection level.Igor Sysoev1-14/+12
2018-03-05Reduced number of critical log levels.Valentin Bartenev1-20/+18
2017-09-14Fixed textual socket name lengths and Unix domain sockaddr length.Igor Sysoev1-12/+8
2017-06-14nxt_event_conn_... functions and structures have been renamedIgor Sysoev1-59/+58
to nxt_conn_...
2017-06-06C99 style declaration of connection states.Igor Sysoev1-1/+1
2017-06-06Optimization of kqueue event processing on connection close.Igor Sysoev1-3/+12
2017-05-31Skeleton of router configuration and request processing.Igor Sysoev1-1/+5
2017-03-09Processes refactoring.Igor Sysoev1-3/+3
The cycle has been renamed to the runtime.
2017-02-22I/O operations refactoring.Igor Sysoev1-7/+6
2017-02-07Event engines refactoring.Igor Sysoev1-0/+1021