From 57163f749dac33185796f3b1ec647cb228bd842c Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Sun, 25 Feb 2024 20:58:40 +0100 Subject: [PATCH] Check for struct cmsgcred with AC_CHECK_TYPES The AC_CHECK_TYPES can be used to check for the struct cmsgcred. By default it defines the symbol HAVE_STRUCT_CMSGCRED instead of ANC_CREDS_CMSGCRED. --- ext/sockets/config.m4 | 14 +------------- ext/sockets/conversions.c | 2 +- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/ext/sockets/config.m4 b/ext/sockets/config.m4 index d0f630c5502ca..38b177959ba0a 100644 --- a/ext/sockets/config.m4 +++ b/ext/sockets/config.m4 @@ -68,19 +68,7 @@ if test "$PHP_SOCKETS" != "no"; then AC_DEFINE(ANC_CREDS_UCRED,1,[Uses ucred struct]) fi - dnl Check for struct cmsgcred - AC_CACHE_CHECK([if ancillary credentials uses cmsgcred],[ac_cv_cmsgcred], - [ - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#include - ]], [[struct cmsgcred c = {0};]])], - [ac_cv_cmsgcred=yes], [ac_cv_cmsgcred=no]) - ]) - - if test "$ac_cv_cmsgcred" = yes; then - AC_DEFINE(ANC_CREDS_CMSGCRED,1,[Uses cmsgcred struct]) - fi - + AC_CHECK_TYPES([struct cmsgcred],,,[#include ]) PHP_SOCKETS_CFLAGS=-DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 case $host_alias in diff --git a/ext/sockets/conversions.c b/ext/sockets/conversions.c index c02356c25a500..862fbecbda52d 100644 --- a/ext/sockets/conversions.c +++ b/ext/sockets/conversions.c @@ -1330,7 +1330,7 @@ static const field_descriptor descriptors_ucred[] = { {"uid", sizeof("uid"), 1, offsetof(struct sockcred, sc_euid), from_zval_write_uid_t, to_zval_read_uid_t}, /* the type gid_t is the same as uid_t: */ {"gid", sizeof("gid"), 1, offsetof(struct sockcred, sc_egid), from_zval_write_uid_t, to_zval_read_uid_t}, -#elif defined(ANC_CREDS_CMSGCRED) +#elif defined(HAVE_STRUCT_CMSGCRED) {"pid", sizeof("pid"), 1, offsetof(struct cmsgcred, cmcred_pid), from_zval_write_pid_t, to_zval_read_pid_t}, {"uid", sizeof("uid"), 1, offsetof(struct cmsgcred, cmcred_uid), from_zval_write_uid_t, to_zval_read_uid_t}, /* assume the type gid_t is the same as uid_t: */