mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-07-25 08:28:12 +02:00
Adds in additional support missing upstream Closes: https://bugs.gentoo.org/881465 Signed-off-by: Brian Evans <grknight@gentoo.org>
289 lines
9 KiB
Diff
289 lines
9 KiB
Diff
From 6cfaa16a21780f09f76a7703da255e07910b8b4d Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Bruno=20Pr=C3=A9mont?= <bruno.premont@restena.lu>
|
|
Date: Mon, 25 Jan 2021 19:37:14 +0100
|
|
Subject: [PATCH] Fix compatibility with PHP-8
|
|
|
|
With PHP-7.x missing arginfo has been triggering warnings:
|
|
NOTICE: PHP message: PHP Warning: Missing arginfo for radius_auth_open() in Unknown on line 0
|
|
With PHP-8 this has become mandatory.
|
|
---
|
|
radius.c | 216 +++++++++++++++++++++++++++++++++++++++++++++++--------
|
|
1 file changed, 188 insertions(+), 28 deletions(-)
|
|
|
|
diff --git a/radius.c b/radius.c
|
|
index 89ee0d6..4bfb429 100644
|
|
--- a/radius.c
|
|
+++ b/radius.c
|
|
@@ -61,39 +61,199 @@ ZEND_DECLARE_MODULE_GLOBALS(radius)
|
|
/* True global resources - no need for thread safety here */
|
|
static int le_radius;
|
|
|
|
+/* {{{ arginfo */
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_auth_open, 0, 0, 0)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_acct_open, 0, 0, 0)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_close, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_strerror, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_config, 0, 0, 2)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, file)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_add_server, 0, 0, 6)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, hostname)
|
|
+ ZEND_ARG_INFO(0, port)
|
|
+ ZEND_ARG_INFO(0, secret)
|
|
+ ZEND_ARG_INFO(0, timeout)
|
|
+ ZEND_ARG_INFO(0, max_tries)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_create_request, 0, 0, 2)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, type)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_string, 0, 0, 3)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, type)
|
|
+ ZEND_ARG_INFO(0, value)
|
|
+ ZEND_ARG_INFO(0, options)
|
|
+ ZEND_ARG_INFO(0, tag)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_int, 0, 0, 3)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, type)
|
|
+ ZEND_ARG_INFO(0, value)
|
|
+ ZEND_ARG_INFO(0, options)
|
|
+ ZEND_ARG_INFO(0, tag)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_attr, 0, 0, 3)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, type)
|
|
+ ZEND_ARG_INFO(0, value)
|
|
+ ZEND_ARG_INFO(0, options)
|
|
+ ZEND_ARG_INFO(0, tag)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_addr, 0, 0, 3)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, type)
|
|
+ ZEND_ARG_INFO(0, addr)
|
|
+ ZEND_ARG_INFO(0, options)
|
|
+ ZEND_ARG_INFO(0, tag)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_vendor_string, 0, 0, 4)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, vendor)
|
|
+ ZEND_ARG_INFO(0, type)
|
|
+ ZEND_ARG_INFO(0, value)
|
|
+ ZEND_ARG_INFO(0, options)
|
|
+ ZEND_ARG_INFO(0, tag)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_vendor_int, 0, 0, 4)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, vendor)
|
|
+ ZEND_ARG_INFO(0, type)
|
|
+ ZEND_ARG_INFO(0, value)
|
|
+ ZEND_ARG_INFO(0, options)
|
|
+ ZEND_ARG_INFO(0, tag)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_vendor_attr, 0, 0, 4)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, vendor)
|
|
+ ZEND_ARG_INFO(0, type)
|
|
+ ZEND_ARG_INFO(0, value)
|
|
+ ZEND_ARG_INFO(0, options)
|
|
+ ZEND_ARG_INFO(0, tag)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_vendor_addr, 0, 0, 4)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, vendor)
|
|
+ ZEND_ARG_INFO(0, type)
|
|
+ ZEND_ARG_INFO(0, addr)
|
|
+ ZEND_ARG_INFO(0, options)
|
|
+ ZEND_ARG_INFO(0, tag)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_send_request, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_get_attr, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_get_tagged_attr_data, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, data)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_get_tagged_attr_tag, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, data)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_get_vendor_attr, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, data)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_cvt_addr, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, data)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_cvt_int, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, data)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_cvt_string, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, data)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_salt_encrypt_attr, 0, 0, 2)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, data)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_request_authenticator, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_server_secret, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_demangle, 0, 0, 2)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, mangled)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_demangle_mppe_key, 0, 0, 2)
|
|
+ ZEND_ARG_INFO(0, radius_handle)
|
|
+ ZEND_ARG_INFO(0, mangled)
|
|
+ZEND_END_ARG_INFO()
|
|
+
|
|
+/* }}} */
|
|
+
|
|
+
|
|
/* {{{ radius_functions[]
|
|
*
|
|
* Every user visible function must have an entry in radius_functions[].
|
|
*/
|
|
zend_function_entry radius_functions[] = {
|
|
- PHP_FE(radius_auth_open, NULL)
|
|
- PHP_FE(radius_acct_open, NULL)
|
|
- PHP_FE(radius_close, NULL)
|
|
- PHP_FE(radius_strerror, NULL)
|
|
- PHP_FE(radius_config, NULL)
|
|
- PHP_FE(radius_add_server, NULL)
|
|
- PHP_FE(radius_create_request, NULL)
|
|
- PHP_FE(radius_put_string, NULL)
|
|
- PHP_FE(radius_put_int, NULL)
|
|
- PHP_FE(radius_put_attr, NULL)
|
|
- PHP_FE(radius_put_addr, NULL)
|
|
- PHP_FE(radius_put_vendor_string, NULL)
|
|
- PHP_FE(radius_put_vendor_int, NULL)
|
|
- PHP_FE(radius_put_vendor_attr, NULL)
|
|
- PHP_FE(radius_put_vendor_addr, NULL)
|
|
- PHP_FE(radius_send_request, NULL)
|
|
- PHP_FE(radius_get_attr, NULL)
|
|
- PHP_FE(radius_get_tagged_attr_data, NULL)
|
|
- PHP_FE(radius_get_tagged_attr_tag, NULL)
|
|
- PHP_FE(radius_get_vendor_attr, NULL)
|
|
- PHP_FE(radius_cvt_addr, NULL)
|
|
- PHP_FE(radius_cvt_int, NULL)
|
|
- PHP_FE(radius_cvt_string, NULL)
|
|
- PHP_FE(radius_salt_encrypt_attr, NULL)
|
|
- PHP_FE(radius_request_authenticator, NULL)
|
|
- PHP_FE(radius_server_secret, NULL)
|
|
- PHP_FE(radius_demangle, NULL)
|
|
- PHP_FE(radius_demangle_mppe_key, NULL)
|
|
+ PHP_FE(radius_auth_open, arginfo_radius_auth_open)
|
|
+ PHP_FE(radius_acct_open, arginfo_radius_acct_open)
|
|
+ PHP_FE(radius_close, arginfo_radius_close)
|
|
+ PHP_FE(radius_strerror, arginfo_radius_strerror)
|
|
+ PHP_FE(radius_config, arginfo_radius_config)
|
|
+ PHP_FE(radius_add_server, arginfo_radius_add_server)
|
|
+ PHP_FE(radius_create_request, arginfo_radius_create_request)
|
|
+ PHP_FE(radius_put_string, arginfo_radius_put_string)
|
|
+ PHP_FE(radius_put_int, arginfo_radius_put_int)
|
|
+ PHP_FE(radius_put_attr, arginfo_radius_put_attr)
|
|
+ PHP_FE(radius_put_addr, arginfo_radius_put_addr)
|
|
+ PHP_FE(radius_put_vendor_string, arginfo_radius_put_vendor_string)
|
|
+ PHP_FE(radius_put_vendor_int, arginfo_radius_put_vendor_int)
|
|
+ PHP_FE(radius_put_vendor_attr, arginfo_radius_put_vendor_attr)
|
|
+ PHP_FE(radius_put_vendor_addr, arginfo_radius_put_vendor_addr)
|
|
+ PHP_FE(radius_send_request, arginfo_radius_get_attr)
|
|
+ PHP_FE(radius_get_attr, arginfo_radius_get_attr)
|
|
+ PHP_FE(radius_get_tagged_attr_data, arginfo_radius_get_tagged_attr_data)
|
|
+ PHP_FE(radius_get_tagged_attr_tag, arginfo_radius_get_tagged_attr_tag)
|
|
+ PHP_FE(radius_get_vendor_attr, arginfo_radius_get_vendor_attr)
|
|
+ PHP_FE(radius_cvt_addr, arginfo_radius_cvt_addr)
|
|
+ PHP_FE(radius_cvt_int, arginfo_radius_cvt_int)
|
|
+ PHP_FE(radius_cvt_string, arginfo_radius_cvt_string)
|
|
+ PHP_FE(radius_salt_encrypt_attr, arginfo_radius_salt_encrypt_attr)
|
|
+ PHP_FE(radius_request_authenticator, arginfo_radius_request_authenticator)
|
|
+ PHP_FE(radius_server_secret, arginfo_radius_server_secret)
|
|
+ PHP_FE(radius_demangle, arginfo_radius_demangle)
|
|
+ PHP_FE(radius_demangle_mppe_key, arginfo_radius_demangle_mppe_key)
|
|
{NULL, NULL, NULL} /* Must be the last line in radius_functions[] */
|
|
};
|
|
/* }}} */
|
|
--- a/php_radius.h 2016-02-15 10:11:50.000000000 -0500
|
|
+++ b/php_radius.h 2022-12-13 10:24:33.505295274 -0500
|
|
@@ -96,6 +96,14 @@
|
|
#define RADIUS_OPTION_TAGGED RAD_OPTION_TAG
|
|
#define RADIUS_OPTION_SALT RAD_OPTION_SALT
|
|
|
|
+#ifndef TSRMLS_D
|
|
+#define TSRMLS_D void
|
|
+#define TSRMLS_DC
|
|
+#define TSRMLS_C
|
|
+#define TSRMLS_CC
|
|
+#define TSRMLS_FETCH()
|
|
+#endif
|
|
+
|
|
#endif /* PHP_RADIUS_H */
|
|
|
|
|
|
--- a/radlib_compat.h 2016-02-15 10:11:50.000000000 -0500
|
|
+++ b/radlib_compat.h 2022-12-13 10:24:33.505295274 -0500
|
|
@@ -83,6 +83,14 @@
|
|
} while (0)
|
|
#endif
|
|
|
|
+#ifndef TSRMLS_D
|
|
+#define TSRMLS_D void
|
|
+#define TSRMLS_DC
|
|
+#define TSRMLS_C
|
|
+#define TSRMLS_CC
|
|
+#define TSRMLS_FETCH()
|
|
+#endif
|
|
+
|
|
#endif
|
|
|
|
|
|
--- a/tests/server/fake_server.php 2016-02-15 10:11:50.000000000 -0500
|
|
+++ b/tests/server/fake_server.php 2022-12-13 10:46:50.933484601 -0500
|
|
@@ -321,7 +321,7 @@
|
|
*
|
|
* @return boolean
|
|
*/
|
|
- function skip() {
|
|
+ static function skip() {
|
|
return !(function_exists('socket_create') && function_exists('pcntl_fork') && function_exists('radius_acct_open'));
|
|
}
|
|
|