History log of /lighttpd1.4/src/fdevent.h (Results 1 – 25 of 72)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: lighttpd-1.4.69
# f0786a75 22-Jan-2023 Glenn Strauss <[email protected]>

[core] pass fdn to fdevent_sched_close,_unregister

remove issock flag; on _WIN32, select(), WSAPoll() work only on sockets


Revision tags: lighttpd-1.4.68
# 33fd0db9 03-Dec-2022 Glenn Strauss <[email protected]>

[core] remove libev fdevent option (ignore)

lighttpd directly uses native OS event handlers


Revision tags: lighttpd-1.4.67, lighttpd-1.4.66, lighttpd-1.4.65, lighttpd-1.4.64, lighttpd-1.4.63, lighttpd-1.4.62
# b7a8fd46 01-Nov-2021 Glenn Strauss <[email protected]>

[core] fdevent_socket_nb_cloexec_init()

fdevent_socket_nb_cloexec_init() separate from fdevent_init()


# d361f9cc 29-Oct-2021 Glenn Strauss <[email protected]>

[core] clean up fdlog_st and log_error_st decls

typedef redefinitions may cause issues with older compilers

(The intention behind the decls and defines were done to reduce the
number of unrelated

[core] clean up fdlog_st and log_error_st decls

typedef redefinitions may cause issues with older compilers

(The intention behind the decls and defines were done to reduce the
number of unrelated lines modified for the transition to fdlog_st)

x-ref:
https://trac.macports.org/ticket/63667
https://github.com/macports/macports-ports/pull/12658

show more ...


Revision tags: lighttpd-1.4.61, lighttpd-1.4.60, lighttpd-1.4.59, lighttpd-1.4.58, lighttpd-1.4.57, lighttpd-1.4.56
# cc2fcd3e 24-Nov-2020 Glenn Strauss <[email protected]>

[multiple] _WIN32 fdevent_pipe_cloexec()

Note: Under _WIN32, serious limitation in Windows APIs:
select() and WSAPoll() operate only on sockets (not pipes)
(directly affects mod_cgi; not current

[multiple] _WIN32 fdevent_pipe_cloexec()

Note: Under _WIN32, serious limitation in Windows APIs:
select() and WSAPoll() operate only on sockets (not pipes)
(directly affects mod_cgi; not currently handled)

show more ...


# 9f62f1b1 21-Sep-2021 Glenn Strauss <[email protected]>

[multiple] fdevent_mkostemp()

fdevent_mkostemp() with flags arg so that caller can pass O_APPEND

renamed from fdevent_mkstemp_append(), previously always O_APPEND


# 7b615d5d 12-Sep-2021 Glenn Strauss <[email protected]>

[multiple] de-dup file and piped loggers (fixes #3101)

de-dup file and piped loggers for error logs and access logs

x-ref:
"RFE: de-dup file and piped loggers"
https://redmine.lighttpd.net/issu

[multiple] de-dup file and piped loggers (fixes #3101)

de-dup file and piped loggers for error logs and access logs

x-ref:
"RFE: de-dup file and piped loggers"
https://redmine.lighttpd.net/issues/3101

show more ...


# 243510db 11-Sep-2021 Glenn Strauss <[email protected]>

[core] fdlog.[ch]; fdevent_*_logger_* -> fdlog_*

code move and rename fdevent_*_logger_*() to fdlog_*()


# 309c1693 12-Jul-2021 Glenn Strauss <[email protected]>

[multiple] Y2038 32-bit signed time_t mitigations

Most OS platforms have already provided solutions to
Y2038 32-bit signed time_t 5 - 10 years ago (or more!)
Notable exceptions are Linux i686 and Fr

[multiple] Y2038 32-bit signed time_t mitigations

Most OS platforms have already provided solutions to
Y2038 32-bit signed time_t 5 - 10 years ago (or more!)
Notable exceptions are Linux i686 and FreeBSD i386.

Since 32-bit systems tend to be embedded systems,
and since many distros take years to pick up new software,
this commit aims to provide Y2038 mitigations for lighttpd
running on 32-bit systems with Y2038-unsafe 32-bit signed time_t

* Y2038: lighttpd 1.4.60 and later report Y2038 safety
$ lighttpd -V
+ Y2038 support # Y2038-SAFE
$ lighttpd -V
- Y2038 support (unsafe 32-bit signed time_t) # Y2038-UNSAFE

* Y2038: general platform info
* Y2038-SAFE: lighttpd 64-bit builds on platforms using 64-bit time_t
- all major 64-bit platforms (known to this author) use 64-bit time_t
* Y2038-SAFE: lighttpd 32-bit builds on platforms using 64-bit time_t
- Linux x32 ABI (different from i686)
- FreeBSD all 32-bit and 64-bit architectures *except* 32-bit i386
- NetBSD 6.0 (released Oct 2012) all 32-bit and 64-bit architectures
- OpenBSD 5.5 (released May 2014) all 32-bit and 64-bit architectures
- Microsoft Windows XP and Visual Studio 2005 (? unsure ?)
Another reference suggests Visual Studio 2015 defaults to 64-bit time_t
- MacOS 10.15 Catalina (released 2019) drops support for 32-bit apps
* Y2038-SAFE: lighttpd 32-bit builds on platforms using 32-bit unsigned time_t
- e.g. OpenVMS (unknown if lighttpd builds on this platform)
* Y2038-UNSAFE: lighttpd 32-bit builds on platforms using 32-bit signed time_t
- Linux 32-bit (including i686)
- glibc 32-bit library support not yet available for 64-bit time_t
- https://sourceware.org/glibc/wiki/Y2038ProofnessDesign
- Linux kernel 5.6 on 32-bit platforms does support 64-bit time_t
https://itsubuntu.com/linux-kernel-5-6-to-fix-the-year-2038-issue-unix-y2k/
- https://www.gnu.org/software/libc/manual/html_node/64_002dbit-time-symbol-handling.html
"Note: at this point, 64-bit time support in dual-time
configurations is work-in-progress, so for these
configurations, the public API only makes the 32-bit time
support available. In a later change, the public API will
allow user code to choose the time size for a given
compilation unit."
- compiling with -D_TIME_BITS=64 currently has no effect
- glibc recent (Jul 2021) mailing list discussion
- https://public-inbox.org/bug-gnulib/[email protected]/T/
- FreeBSD i386
- DragonFlyBSD 32-bit

* Y2038 mitigations attempted on Y2038-UNSAFE platforms (32-bit signed time_t)
* lighttpd prefers system monotonic clock instead of realtime clock
in places where realtime clock is not required
* lighttpd treats negative time_t values as after 19 Jan 2038 03:14:07 GMT
* (lighttpd presumes that lighttpd will not encounter dates before 1970
during normal operation.)
* lighttpd casts struct stat st.st_mtime (and st.st_*time) through uint64_t
to convert negative timestamps for comparisions with 64-bit timestamps
(treating negative timestamp values as after 19 Jan 2038 03:14:07 GMT)
* lighttpd provides unix_time64_t (int64_t) and
* lighttpd provides struct unix_timespec64 (unix_timespec64_t)
(struct timespec equivalent using unix_time64_t tv_sec member)
* lighttpd provides gmtime64_r() and localtime64_r() wrappers
for platforms 32-bit platforms using 32-bit time_t and
lighttpd temporarily shifts the year in order to use
gmtime_r() and localtime_r() (or gmtime() and localtime())
from standard libraries, before readjusting year and passing
struct tm to formatting functions such as strftime()
* lighttpd provides TIME64_CAST() macro to cast signed 32-bit time_t to
unsigned 32-bit and then to unix_time64_t

* Note: while lighttpd tries handle times past 19 Jan 2038 03:14:07 GMT
on 32-bit platforms using 32-bit signed time_t, underlying libraries and
underlying filesystems might not behave properly after 32-bit signed time_t
overflows (19 Jan 2038 03:14:08 GMT). If a given 32-bit OS does not work
properly using negative time_t values, then lighttpd likely will not work
properly on that system.

* Other references and blogs
- https://en.wikipedia.org/wiki/Year_2038_problem
- https://en.wikipedia.org/wiki/Time_formatting_and_storage_bugs
- http://www.lieberbiber.de/2017/03/14/a-look-at-the-year-20362038-problems-and-time-proofness-in-various-systems/

show more ...


# 2d6c511d 15-May-2021 Pavel Gulchuk <[email protected]>

[core] fix kill workers and shutdown by signal

github: closes #105


# dde9df43 17-Mar-2021 Glenn Strauss <[email protected]>

[multiple] mark addtl funcs attr returns_nonnull


# 19bc8885 15-Mar-2021 Glenn Strauss <[email protected]>

[multiple] add attrs from gcc -Wsuggest-attribute=


# 29f50bde 19-Nov-2020 Glenn Strauss <[email protected]>

[multiple] fdevent_waitpid() wrapper


Revision tags: lighttpd-1.4.56-rc7, lighttpd-1.4.56-rc6, lighttpd-1.4.56-rc5, lighttpd-1.4.56-rc4, lighttpd-1.4.56-rc3, lighttpd-1.4.56-rc2, lighttpd-1.4.56-rc1
# 2b4166fb 09-Oct-2020 Glenn Strauss <[email protected]>

[core] fdevent_dup_cloexec()


# 771ebd39 08-Oct-2020 Glenn Strauss <[email protected]>

[core] fdevent_load_file_bytes()

wrapper to load defined number of bytes from file at given offset


# be6da785 20-Jul-2020 Glenn Strauss <[email protected]>

[mod_deflate] deflate.cache-dir compressed cache

(achieves feature parity with mod_compress)


# cc044687 02-Jul-2020 Glenn Strauss <[email protected]>

[core] fdevent_load_file() shared code


Revision tags: lighttpd-1.4.55
# 8588772c 25-Dec-2019 Glenn Strauss <[email protected]>

[core] isolate fdevent subsystem

fdevent.c no longer directly uses struct server *srv
srv->srvconf.max_fds (if set) is used to set rlimits
set max_conns in server.c after fdevent_init(), which sets

[core] isolate fdevent subsystem

fdevent.c no longer directly uses struct server *srv
srv->srvconf.max_fds (if set) is used to set rlimits
set max_conns in server.c after fdevent_init(), which sets srv->max_fds
using srv->srvconf.max_fds (if set) as input hint

show more ...


# 48004c6a 21-Dec-2019 Glenn Strauss <[email protected]>

[core] remove unused arg to fdevent_fcntl_set_nb*


# 05cc88dd 21-Dec-2019 Glenn Strauss <[email protected]>

[multiple] omit passing srv to fdevent_handler


Revision tags: lighttpd-1.4.54
# a78404cf 16-Mar-2019 Glenn Strauss <[email protected]>

[core] fdevent_mkstemp_append() (shared)


# 37bd124a 11-Mar-2019 Glenn Strauss <[email protected]>

[core] pass conf.follow_symlink in more places


# 9113011d 01-Mar-2019 Glenn Strauss <[email protected]>

[core] pass (fdnode *) for registered fdevent fd

inline fdevent_fdnode_interest()
avoid array lookup for (fdnode *) for various ops


# 41384a36 25-Feb-2019 Glenn Strauss <[email protected]>

[core] isolate fdevent processing


# 800e9b73 23-Feb-2019 Glenn Strauss <[email protected]>

[core] remove fde_ndx member outside fdevents

(isolated to fdevent framework internals)


123