diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2022-01-01 16:39:45 -0500 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2022-01-01 16:54:46 -0500 |
commit | f36908de33c60f6cca3a6ae8be625d8f25e1c7ac (patch) | |
tree | 05f159497be516a2531db6e02a2ce7d893884489 | |
parent | 2fc6e113f6bf6be333b248dea26a2e9b950a43a1 (diff) | |
download | lighttpd-git-f36908de33c60f6cca3a6ae8be625d8f25e1c7ac.tar.gz |
[core] server.core-files support on FreeBSD (fixes #3128)
(thx devnexen)
x-ref:
"server.core-files support on FreeBSD proposal"
https://redmine.lighttpd.net/issues/3128
-rw-r--r-- | SConstruct | 1 | ||||
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | src/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/config.h.cmake | 1 | ||||
-rw-r--r-- | src/meson.build | 1 | ||||
-rw-r--r-- | src/server.c | 9 |
6 files changed, 14 insertions, 0 deletions
@@ -388,6 +388,7 @@ if 1: 'sys/loadavg.h', 'sys/poll.h', 'sys/prctl.h', + 'sys/procctl.h', 'sys/sendfile.h', 'sys/time.h', 'sys/wait.h', diff --git a/configure.ac b/configure.ac index d458e159..35ed0a3e 100644 --- a/configure.ac +++ b/configure.ac @@ -113,6 +113,7 @@ AC_CHECK_HEADERS([\ sys/mman.h \ sys/poll.h \ sys/prctl.h \ + sys/procctl.h \ sys/resource.h \ sys/select.h \ sys/sendfile.h \ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9ae975f9..6f540ed5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -98,6 +98,7 @@ check_include_files(sys/mman.h HAVE_SYS_MMAN_H) check_include_files(sys/loadavg.h HAVE_SYS_LOADAVG_H) check_include_files(sys/poll.h HAVE_SYS_POLL_H) check_include_files(sys/prctl.h HAVE_SYS_PRCTL_H) +check_include_files(sys/procctl.h HAVE_SYS_PROCCTL_H) check_include_files(sys/resource.h HAVE_SYS_RESOURCE_H) check_include_files(sys/sendfile.h HAVE_SYS_SENDFILE_H) check_include_files(sys/select.h HAVE_SYS_SELECT_H) diff --git a/src/config.h.cmake b/src/config.h.cmake index 9465925d..f8df2117 100644 --- a/src/config.h.cmake +++ b/src/config.h.cmake @@ -22,6 +22,7 @@ #cmakedefine HAVE_SYS_MMAN_H #cmakedefine HAVE_SYS_POLL_H #cmakedefine HAVE_SYS_PRCTL_H +#cmakedefine HAVE_SYS_PROCCTL_H #cmakedefine HAVE_SYS_RESOURCE_H #cmakedefine HAVE_SYS_SENDFILE_H #cmakedefine HAVE_SYS_SELECT_H diff --git a/src/meson.build b/src/meson.build index 3ee68677..da99d459 100644 --- a/src/meson.build +++ b/src/meson.build @@ -36,6 +36,7 @@ conf_data.set('HAVE_SYS_LOADAVG_H', compiler.has_header('sys/loadavg.h')) conf_data.set('HAVE_SYS_MMAN_H', compiler.has_header('sys/mman.h')) conf_data.set('HAVE_SYS_POLL_H', compiler.has_header('sys/poll.h')) conf_data.set('HAVE_SYS_PRCTL_H', compiler.has_header('sys/prctl.h')) +conf_data.set('HAVE_SYS_PROCCTL_H', compiler.has_header('sys/procctl.h')) conf_data.set('HAVE_SYS_RESOURCE_H', compiler.has_header('sys/resource.h')) conf_data.set('HAVE_SYS_SENDFILE_H', compiler.has_header('sys/sendfile.h')) conf_data.set('HAVE_SYS_SELECT_H', compiler.has_header('sys/select.h')) diff --git a/src/server.c b/src/server.c index 3ec94e2d..25538605 100644 --- a/src/server.c +++ b/src/server.c @@ -65,6 +65,9 @@ static const buffer default_server_tag = { CONST_STR_LEN(PACKAGE_DESC)+1, 0 }; #ifdef HAVE_SYS_PRCTL_H # include <sys/prctl.h> #endif +#ifdef HAVE_SYS_PROCCTL_H +# include <sys/procctl.h> +#endif #ifdef HAVE_MALLOC_H #ifndef LIGHTTPD_STATIC @@ -1475,6 +1478,12 @@ static int server_main_setup (server * const srv, int argc, char **argv) { if (srv->srvconf.enable_cores) { prctl(PR_SET_DUMPABLE, 1, 0, 0, 0); } +#elif defined(HAVE_SYS_PROCCTL_H) && defined(PROC_TRACE_CTL_ENABLE) + /* (DragonFlyBSD has procctl(), but not PROC_TRACE_CTL_ENABLE) */ + if (srv->srvconf.enable_cores) { + int dumpable = PROC_TRACE_CTL_ENABLE; + procctl(P_PID, 0, PROC_TRACE_CTL, &dumpable); + } #endif } |