[PECL-CVS] [pecl-authentication-krb5] master: Merge branch 'feature/minimum-php70' of github.com:tvdijen/pecl-authentication-krb5
[email protected] (Moritz Bechler) Mon, 8 Jun 2026 15:49:54 +0000
| Newsgroups | php.pecl.cvs |
|---|---|
| Message-ID | <IHtGrAt6rCRiGaXYQe9lVXO7lGgg5CkhfCcBfSBWRno@main.internal.php.net> |
Author: Moritz Bechler (mbechler)
Date: 2026-06-08T16:23:47+02:00
Commit: https://github.com/php/pecl-authentication-krb5/commit/bb1b171f1552381c6c9ab291a856b7bc3704403e
Raw diff: https://github.com/php/pecl-authentication-krb5/commit/bb1b171f1552381c6c9ab291a856b7bc3704403e.diff
Merge branch 'feature/minimum-php70' of github.com:tvdijen/pecl-authentication-krb5
Changed paths:
M channel.c
M gssapi.c
M kadm.c
M kadm5_policy.c
M kadm5_principal.c
M kadm5_tldata.c
M krb5.c
M negotiate_auth.c
M php_krb5.h
M php_krb5_compat.h
M php_krb5_gssapi.h
M php_krb5_kadm.h
Diff:
diff --git a/channel.c b/channel.c
index b447851..7b7b11c 100644
--- a/channel.c
+++ b/channel.c
@@ -1,16 +1,16 @@
/**
* Copyright (c) 2023 Moritz Bechler
-*
+*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
-*
+*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
-*
+*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -120,7 +120,7 @@ PHP_METHOD(GSSAPIChannelBinding, getInitiatorAddress)
RETURN_NULL();
}
KRB5_SET_ERROR_HANDLING(EH_NORMAL);
- krb5_gss_channel_object *object = KRB5_THIS_GSS_CHANNEL;
+ krb5_gss_channel_object *object = KRB5_THIS_GSS_CHANNEL;
if ( object->data.initiator_address.value ) {
_RETVAL_STRINGL((char*)object->data.initiator_address.value, object->data.initiator_address.length);
} else {
@@ -139,7 +139,7 @@ PHP_METHOD(GSSAPIChannelBinding, getInitiatorAddressType)
}
KRB5_SET_ERROR_HANDLING(EH_NORMAL);
krb5_gss_channel_object *object = KRB5_THIS_GSS_CHANNEL;
-
+
RETURN_LONG(object->data.initiator_addrtype);
}
/* }}} */
@@ -172,7 +172,7 @@ PHP_METHOD(GSSAPIChannelBinding, getAcceptorAddressType)
}
KRB5_SET_ERROR_HANDLING(EH_NORMAL);
krb5_gss_channel_object *object = KRB5_THIS_GSS_CHANNEL;
-
+
RETURN_LONG(object->data.acceptor_addrtype);
}
/* }}} */
@@ -192,7 +192,7 @@ PHP_METHOD(GSSAPIChannelBinding, getApplicationData)
_RETVAL_STRINGL((char*)object->data.application_data.value, object->data.application_data.length);
} else {
RETURN_NULL();
- }
+ }
}
/* }}} */
@@ -208,7 +208,7 @@ PHP_METHOD(GSSAPIChannelBinding, setApplicationData)
}
KRB5_SET_ERROR_HANDLING(EH_NORMAL);
krb5_gss_channel_object *object = KRB5_THIS_GSS_CHANNEL;
- if ( !zdata ) {
+ if ( !zdata ) {
object->data.application_data.length = 0;
if ( object->data.application_data.value ) {
efree(object->data.application_data.value);
@@ -242,7 +242,7 @@ PHP_METHOD(GSSAPIChannelBinding, setInitiatorAddress)
krb5_gss_channel_object *object = KRB5_THIS_GSS_CHANNEL;
object->data.initiator_addrtype = type;
- if ( !zdata ) {
+ if ( !zdata ) {
object->data.initiator_address.length = 0;
if ( object->data.initiator_address.value ) {
efree(object->data.initiator_address.value);
@@ -274,9 +274,9 @@ PHP_METHOD(GSSAPIChannelBinding, setAcceptorAddress)
}
KRB5_SET_ERROR_HANDLING(EH_NORMAL);
krb5_gss_channel_object *object = KRB5_THIS_GSS_CHANNEL;
-
+
object->data.acceptor_addrtype = type;
- if ( !zdata ) {
+ if ( !zdata ) {
object->data.acceptor_address.length = 0;
if ( object->data.acceptor_address.value ) {
efree(object->data.acceptor_address.value);
@@ -294,5 +294,3 @@ PHP_METHOD(GSSAPIChannelBinding, setAcceptorAddress)
}
}
/* }}} */
-
-
diff --git a/gssapi.c b/gssapi.c
index 28dc189..627dfd1 100644
--- a/gssapi.c
+++ b/gssapi.c
@@ -29,14 +29,9 @@
zend_class_entry *krb5_ce_gssapi_context;
typedef struct _krb5_gssapi_context_object {
-#if PHP_MAJOR_VERSION < 7
- zend_object std;
-#endif
gss_cred_id_t creds;
gss_ctx_id_t context;
-#if PHP_MAJOR_VERSION >= 7
zend_object std;
-#endif
} krb5_gssapi_context_object;
ZEND_BEGIN_ARG_INFO_EX(krb5_GSSAPIContext_registerAcceptorIdentity, 0, 0, 1)
@@ -174,29 +169,10 @@ void php_krb5_gssapi_handle_error(OM_uint32 major, OM_uint32 minor TSRMLS_DC)
/* Setup functions */
/* {{{ */
-#if PHP_MAJOR_VERSION < 7
-void php_krb5_gssapi_context_object_dtor(void *obj, zend_object_handle handle TSRMLS_DC)
-{
- OM_uint32 minor_status = 0;
- krb5_gssapi_context_object *object = (krb5_gssapi_context_object*)obj;
- OBJECT_STD_DTOR(object->std);
-
-
- if(object->creds != GSS_C_NO_CREDENTIAL) {
- gss_release_cred(&minor_status, &object->creds);
- }
-
- if(object->context != GSS_C_NO_CONTEXT) {
- gss_delete_sec_context(&minor_status, &object->context, GSS_C_NO_BUFFER);
- }
-
- efree(object);
-}
-#else
void php_krb5_gssapi_context_object_free(zend_object *obj TSRMLS_DC) {
OM_uint32 minor_status = 0;
krb5_gssapi_context_object *object = (krb5_gssapi_context_object*)((char *)obj - XtOffsetOf(krb5_gssapi_context_object, std));
-
+
if(object->creds != GSS_C_NO_CREDENTIAL) {
gss_release_cred(&minor_status, &object->creds);
}
@@ -206,38 +182,10 @@ void php_krb5_gssapi_context_object_free(zend_object *obj TSRMLS_DC) {
}
zend_object_std_dtor(obj);
}
-#endif
/* }}} */
/* {{{ */
-#if PHP_MAJOR_VERSION < 7
-zend_object_value php_krb5_gssapi_context_object_new(zend_class_entry *ce TSRMLS_DC)
-{
- zend_object_value retval;
- krb5_gssapi_context_object *object;
-
- object = emalloc(sizeof(krb5_gssapi_context_object));
-
- object->context = GSS_C_NO_CONTEXT;
- object->creds = GSS_C_NO_CREDENTIAL;
-
- INIT_STD_OBJECT(object->std, ce);
-
-#if PHP_VERSION_ID < 50399
- zend_hash_copy(object->std.properties, &ce->default_properties,
- (copy_ctor_func_t) zval_add_ref, NULL,
- sizeof(zval*));
-#else
- object_properties_init(&(object->std), ce);
-#endif
-
- retval.handle = zend_objects_store_put(object, php_krb5_gssapi_context_object_dtor, NULL, NULL TSRMLS_CC);
-
- retval.handlers = &krb5_gssapi_context_handlers;
- return retval;
-}
-#else
zend_object *php_krb5_gssapi_context_object_new(zend_class_entry *ce TSRMLS_DC) {
krb5_gssapi_context_object *object;
object = ecalloc(1, sizeof(krb5_gssapi_context_object) + zend_object_properties_size(ce));
@@ -250,7 +198,6 @@ zend_object *php_krb5_gssapi_context_object_new(zend_class_entry *ce TSRMLS_DC)
object->std.handlers = &krb5_gssapi_context_handlers;
return &object->std;
}
-#endif
/* }}} */
/* {{{ */
@@ -275,10 +222,8 @@ int php_krb5_gssapi_register_classes(TSRMLS_D)
krb5_ce_gssapi_context->create_object = php_krb5_gssapi_context_object_new;
memcpy(&krb5_gssapi_context_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
-#if PHP_MAJOR_VERSION >= 7
krb5_gssapi_context_handlers.offset = XtOffsetOf(krb5_gssapi_context_object, std);
krb5_gssapi_context_handlers.free_obj = php_krb5_gssapi_context_object_free;
-#endif
php_krb5_register_gss_channel();
return SUCCESS;
@@ -381,16 +326,16 @@ PHP_METHOD(GSSAPIContext, acquireCredentials)
zval* zccache;
krb5_ccache_object *ccache = NULL;
char *ccname = NULL;
-
+
zend_long type = GSS_C_BOTH;
-
+
char *pname = NULL;
gss_buffer_desc nametmp;
gss_name_t name = GSS_C_NO_NAME;
strsize_t namelen = 0;
-
+
memset(&nametmp, 0, sizeof(nametmp));
-
+
krb5_gssapi_context_object *context = KRB5_THIS_GSSAPI_CONTEXT;
@@ -406,7 +351,7 @@ PHP_METHOD(GSSAPIContext, acquireCredentials)
ccache = KRB5_CCACHE(zccache);
if ( ccache->keytab == NULL ) {
- type = GSS_C_INITIATE;
+ type = GSS_C_INITIATE;
}
char *oldkrb5ccname = NULL, *oldkrb5ktname = NULL;
@@ -432,8 +377,8 @@ PHP_METHOD(GSSAPIContext, acquireCredentials)
krb5_free_principal(ccache->ctx, ccprinc);
}
-
- if(nametmp.length != 0) {
+
+ if(nametmp.length != 0) {
status = gss_import_name(&minor_status, &nametmp, GSS_C_NO_OID, &name);
if(GSS_ERROR(status)) {
@@ -493,7 +438,7 @@ PHP_METHOD(GSSAPIContext, inquireCredentials)
ASSERT_GSS_SUCCESS(status,minor_status,);
-
+
status = gss_display_name(&minor_status, name, &nametmp, NULL);
ASSERT_GSS_SUCCESS(status,minor_status,);
@@ -571,12 +516,7 @@ PHP_METHOD(GSSAPIContext, initSecContext)
zval *ztime_rec = NULL;
zval *zchannel = NULL;
-#if PHP_MAJOR_VERSION >= 7
const char *args = "s|sllz/z/z/O";
-#else
-
- const char *args = "s|sllzzzO";
-#endif
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, args,
&(target.value), &target_len,
@@ -591,7 +531,7 @@ PHP_METHOD(GSSAPIContext, initSecContext)
}
target.length = target_len;
inputtoken.length = inputtoken_len;
-
+
if (zchannel != NULL) {
krb5_gss_channel_object *zchannelobj = KRB5_GSS_CHANNEL(zchannel);
if ( zchannelobj != NULL ) {
@@ -681,12 +621,7 @@ PHP_METHOD(GSSAPIContext, acceptSecContext)
zval* zdeleg_creds = NULL;
zval *zchannel = NULL;
-#if PHP_MAJOR_VERSION >= 7
const char *args = "s|z/z/z/z/OO";
-#else
-
- const char *args = "s|zzzzOO";
-#endif
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, args,
&(inputtoken.value), &inputtoken_len,
@@ -700,7 +635,7 @@ PHP_METHOD(GSSAPIContext, acceptSecContext)
}
inputtoken.length = inputtoken_len;
-
+
if (zchannel != NULL) {
krb5_gss_channel_object *zchannelobj = KRB5_GSS_CHANNEL(zchannel);
if ( zchannelobj != NULL ) {
@@ -765,22 +700,22 @@ PHP_METHOD(GSSAPIContext, acceptSecContext)
krb5_ccache_object *deleg_ccache = KRB5_CCACHE(zdeleg_creds);
krb5_error_code retval = 0;
krb5_principal princ;
-
+
if(!deleg_ccache) {
zend_throw_exception(NULL, "Invalid KRB5CCache object given", 0 TSRMLS_CC);
RETURN_FALSE;
}
-
+
/* use principal name for ccache initialization */
gss_buffer_desc nametmp;
status = gss_display_name(&minor_status, src_name, &nametmp, NULL);
ASSERT_GSS_SUCCESS(status,minor_status,);
-
+
if((retval = krb5_parse_name(deleg_ccache->ctx, nametmp.value, &princ))) {
php_krb5_display_error(deleg_ccache->ctx, retval, "Failed to parse principal name (%s)" TSRMLS_CC);
RETURN_FALSE;
}
-
+
if((retval = krb5_cc_initialize(deleg_ccache->ctx, deleg_ccache->cc, princ))) {
krb5_free_principal(deleg_ccache->ctx,princ);
php_krb5_display_error(deleg_ccache->ctx, retval, "Failed to initialize credential cache (%s)" TSRMLS_CC);
@@ -917,11 +852,7 @@ PHP_METHOD(GSSAPIContext, wrap)
memset(&input, 0 , sizeof(input));
memset(&output, 0 , sizeof(output));
-#if PHP_MAJOR_VERSION >= 7
const char *args = "sz/|b";
-#else
- const char *args = "sz|b";
-#endif
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, args,
&(input.value), &input_length,
@@ -971,11 +902,7 @@ PHP_METHOD(GSSAPIContext, unwrap)
memset(&input, 0 , sizeof(input));
memset(&output, 0 , sizeof(output));
-#if PHP_MAJOR_VERSION >= 7
const char *args = "sz/";
-#else
- const char *args = "sz";
-#endif
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, args,
&(input.value), &input_length,
diff --git a/kadm.c b/kadm.c
index af7721a..16a5512 100644
--- a/kadm.c
+++ b/kadm.c
@@ -98,14 +98,6 @@ void php_krb5_free_kadm5_object(krb5_kadm5_object *obj) {
/* }}} */
/* {{{ */
-#if PHP_MAJOR_VERSION < 7
-static void php_krb5_kadm5_object_dtor(void *obj, zend_object_handle handle TSRMLS_DC)
-{
- krb5_kadm5_object *object = (krb5_kadm5_object*)obj;
- zend_object_std_dtor(&(object->std) TSRMLS_CC);
- php_krb5_free_kadm5_object(object);
-}
-#else
static void php_krb5_kadm5_object_free(zend_object *obj TSRMLS_DC)
{
krb5_kadm5_object *object = (krb5_kadm5_object*)((char *)obj - XtOffsetOf(krb5_kadm5_object, std));
@@ -123,35 +115,9 @@ static void php_krb5_kadm5_object_free(zend_object *obj TSRMLS_DC)
}
zend_object_std_dtor(obj);
}
-#endif
/* }}} */
/* {{{ */
-#if PHP_MAJOR_VERSION < 7
-zend_object_value php_krb5_kadm5_object_new(zend_class_entry *ce TSRMLS_DC)
-{
- zend_object_value retval;
- krb5_kadm5_object *object;
-
- object = emalloc(sizeof(krb5_kadm5_object));
- memset(&object->config, 0, sizeof (kadm5_config_params));
-
- zend_object_std_init(&(object->std), ce TSRMLS_CC);
-
-#if PHP_VERSION_ID < 50399
- zend_hash_copy(object->std.properties, &ce->default_properties,
- (copy_ctor_func_t) zval_add_ref, NULL,
- sizeof(zval*));
-#else
- object_properties_init(&(object->std), ce);
-#endif
-
- retval.handle = zend_objects_store_put(object, php_krb5_kadm5_object_dtor, NULL, NULL TSRMLS_CC);
-
- retval.handlers = &krb5_kadm5_handlers;
- return retval;
-}
-#else
zend_object* php_krb5_kadm5_object_new(zend_class_entry *ce TSRMLS_DC)
{
krb5_kadm5_object *object = ecalloc(1, sizeof(krb5_kadm5_object) + zend_object_properties_size(ce));
@@ -160,7 +126,6 @@ zend_object* php_krb5_kadm5_object_new(zend_class_entry *ce TSRMLS_DC)
object->std.handlers = &krb5_kadm5_handlers;
return &object->std;
}
-#endif
/* }}} */
/* Register classes */
@@ -173,10 +138,8 @@ int php_krb5_kadm5_register_classes(TSRMLS_D) {
krb5_ce_kadm5 = zend_register_internal_class(&kadm5 TSRMLS_CC);
krb5_ce_kadm5->create_object = php_krb5_kadm5_object_new;
memcpy(&krb5_kadm5_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
-#if PHP_MAJOR_VERSION >= 7
krb5_kadm5_handlers.offset = XtOffsetOf(krb5_kadm5_object, std);
krb5_kadm5_handlers.free_obj = php_krb5_kadm5_object_free;
-#endif
/** register KADM5Principal **/
php_krb5_register_kadm5_principal(TSRMLS_C);
@@ -276,7 +239,7 @@ PHP_METHOD(KADM5, __construct)
RETURN_FALSE;
}
-
+
if(!use_keytab) {
retval = kadm5_init_with_password(obj->ctx, sprinc, spass, KADM5_ADMIN_SERVICE, &obj->config,
KADM5_STRUCT_VERSION, KADM5_API_VERSION_3, NULL, &obj->handle);
@@ -288,20 +251,11 @@ PHP_METHOD(KADM5, __construct)
obj->ctx = NULL;
RETURN_FALSE;
}
-#if PHP_VERSION_ID < 50399
- if((PG(safe_mode) && !php_checkuid(spass, NULL, CHECKUID_CHECK_FILE_AND_DIR)) ||
- php_check_open_basedir(spass TSRMLS_CC)) {
- krb5_free_context(obj->ctx);
- obj->ctx = NULL;
- RETURN_FALSE;
- }
-#else
if( php_check_open_basedir(spass TSRMLS_CC)) {
krb5_free_context(obj->ctx);
obj->ctx = NULL;
RETURN_FALSE;
}
-#endif
retval = kadm5_init_with_skey(obj->ctx,sprinc, spass, KADM5_ADMIN_SERVICE, &obj->config,
KADM5_STRUCT_VERSION, KADM5_API_VERSION_3, NULL, &obj->handle);
@@ -324,8 +278,6 @@ PHP_METHOD(KADM5, __construct)
Fetch a principal entry by name */
PHP_METHOD(KADM5, getPrincipal)
{
-
-
zval *sprinc = NULL;
zend_bool noload = FALSE;
@@ -335,32 +287,6 @@ PHP_METHOD(KADM5, getPrincipal)
object_init_ex(return_value, krb5_ce_kadm5_principal);
-#if PHP_MAJOR_VERSION < 7
- zval *dummy_retval, *ctor, *znoload;
- zval *args[3];
- MAKE_STD_ZVAL(ctor);
- ZVAL_STRING(ctor, "__construct",1);
- MAKE_STD_ZVAL(znoload);
- ZVAL_BOOL(znoload, noload);
-
-
- args[0] = sprinc;
- args[1] = getThis();
- args[2] = znoload;
-
- MAKE_STD_ZVAL(dummy_retval);
- if(call_user_function(&krb5_ce_kadm5_principal->function_table,
- &return_value, ctor, dummy_retval, 3,
- args TSRMLS_CC) == FAILURE) {
- zval_dtor(ctor);
- zval_dtor(dummy_retval);
- zend_throw_exception(NULL, "Failed to instantiate KADM5Principal object", 0 TSRMLS_CC);
- }
-
- zval_ptr_dtor(&ctor);
- zval_ptr_dtor(&dummy_retval);
- zval_ptr_dtor(&znoload);
-#else
zval ctor;
zval args[3];
zval dummy_retval;
@@ -368,8 +294,8 @@ PHP_METHOD(KADM5, getPrincipal)
args[0] = *sprinc;
args[1] = *getThis();
ZVAL_BOOL(&args[2], noload);
- if(call_user_function(&krb5_ce_kadm5_principal->function_table, return_value, &ctor, &dummy_retval, 3,
- args TSRMLS_CC) == FAILURE) {
+ if(call_user_function(&krb5_ce_kadm5_principal->function_table, return_value, &ctor, &dummy_retval, 3,
+ args TSRMLS_CC) == FAILURE) {
zval_dtor(&ctor);
zval_dtor(&dummy_retval);
zval_dtor(&args[2]);
@@ -379,7 +305,6 @@ PHP_METHOD(KADM5, getPrincipal)
zval_dtor(&ctor);
zval_dtor(&dummy_retval);
zval_dtor(&args[2]);
-#endif
} /* }}} */
/* {{{ proto array KADM5::getPrinicipals([string $filter])
@@ -445,13 +370,8 @@ PHP_METHOD(KADM5, createPrincipal)
principal = KRB5_KADM_PRINCIPAL(princ);
obj = KRB5_THIS_KADM;
-#if PHP_MAJOR_VERSION < 7
- princname = zend_read_property(krb5_ce_kadm5_principal, princ, "princname",
- sizeof("princname"),1 TSRMLS_CC);
-#else
princname = zend_read_property(krb5_ce_kadm5_principal, OBJ_FOR_PROP(princ), "princname",
sizeof("princname"),1, NULL);
-#endif
if ( principal->data.principal ) {
krb5_free_principal(obj->ctx, principal->data.principal);
}
@@ -475,31 +395,11 @@ PHP_METHOD(KADM5, createPrincipal)
return;
}
-
-#if PHP_MAJOR_VERSION < 7
- zval *dummy_retval = NULL, *func = NULL;
- MAKE_STD_ZVAL(func);
- ZVAL_STRING(func, "load", 1);
- MAKE_STD_ZVAL(dummy_retval);
- if(call_user_function(&krb5_ce_kadm5_principal->function_table,
- &princ, func, dummy_retval, 0,
- NULL TSRMLS_CC) == FAILURE) {
-
- zval_ptr_dtor(&func);
- zval_ptr_dtor(&dummy_retval);
-
- zend_throw_exception(NULL, "Failed to update KADM5Principal object", 0 TSRMLS_CC);
- return;
- }
-
- zval_ptr_dtor(&func);
- zval_ptr_dtor(&dummy_retval);
-#else
zval func;
zval dummy_retval;
ZVAL_STRING(&func, "load");
- if(call_user_function(&krb5_ce_kadm5_principal->function_table, princ, &func, &dummy_retval, 0,
- NULL TSRMLS_CC) == FAILURE) {
+ if(call_user_function(&krb5_ce_kadm5_principal->function_table, princ, &func, &dummy_retval, 0,
+ NULL TSRMLS_CC) == FAILURE) {
zval_dtor(&func);
zval_dtor(&dummy_retval);
zend_throw_exception(NULL, "Failed to update KADM5Principal object", 0 TSRMLS_CC);
@@ -507,15 +407,12 @@ PHP_METHOD(KADM5, createPrincipal)
}
zval_dtor(&func);
zval_dtor(&dummy_retval);
-#endif
}
/* {{{ proto KADM5Policy KADM5::getPolicy(string $policy)
Fetches a policy */
PHP_METHOD(KADM5, getPolicy)
{
-
-
zval *spolicy = NULL;
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &spolicy) == FAILURE) {
@@ -524,36 +421,14 @@ PHP_METHOD(KADM5, getPolicy)
object_init_ex(return_value, krb5_ce_kadm5_policy);
-#if PHP_MAJOR_VERSION < 7
- zval *dummy_retval, *ctor;
- zval *args[2];
- MAKE_STD_ZVAL(ctor);
- ZVAL_STRING(ctor, "__construct", 1);
-
- args[0] = spolicy;
- args[1] = getThis();
-
- MAKE_STD_ZVAL(dummy_retval);
- if(call_user_function(&krb5_ce_kadm5_policy->function_table,
- &return_value, ctor, dummy_retval, 2,
- args TSRMLS_CC) == FAILURE) {
- zval_dtor(ctor);
- zval_dtor(dummy_retval);
- zend_throw_exception(NULL, "Failed to instantiate KADM5Policy object", 0 TSRMLS_CC);
- return;
- }
-
- zval_ptr_dtor(&ctor);
- zval_ptr_dtor(&dummy_retval);
-#else
zval ctor;
zval args[2];
zval dummy_retval;
ZVAL_STRING(&ctor, "__construct");
args[0] = *spolicy;
args[1] = *getThis();
- if(call_user_function(&krb5_ce_kadm5_policy->function_table, return_value, &ctor, &dummy_retval, 2,
- args TSRMLS_CC) == FAILURE) {
+ if(call_user_function(&krb5_ce_kadm5_policy->function_table, return_value, &ctor, &dummy_retval, 2,
+ args TSRMLS_CC) == FAILURE) {
zval_dtor(&ctor);
zval_dtor(&dummy_retval);
zend_throw_exception(NULL, "Failed to instantiate KADM5Policy object", 0 TSRMLS_CC);
@@ -561,7 +436,6 @@ PHP_METHOD(KADM5, getPolicy)
}
zval_dtor(&ctor);
zval_dtor(&dummy_retval);
-#endif
} /* }}} */
/* {{{ proto void KADM5::createPolicy(KADM5Policy $policy)
@@ -597,28 +471,11 @@ PHP_METHOD(KADM5, createPolicy) {
policy->data.policy = NULL;
-#if PHP_MAJOR_VERSION < 7
- zval *dummy_retval, *func;
- MAKE_STD_ZVAL(func);
- ZVAL_STRING(func, "load", 1);
- MAKE_STD_ZVAL(dummy_retval);
- if(call_user_function(&krb5_ce_kadm5_policy->function_table,
- &zpolicy, func, dummy_retval, 0,
- NULL TSRMLS_CC) == FAILURE) {
- zval_ptr_dtor(&func);
- zval_ptr_dtor(&dummy_retval);
- zend_throw_exception(NULL, "Failed to update KADM5Policy object", 0 TSRMLS_CC);
- return;
- }
-
- zval_ptr_dtor(&func);
- zval_ptr_dtor(&dummy_retval);
-#else
zval func;
zval dummy_retval;
ZVAL_STRING(&func, "load");
- if(call_user_function(&krb5_ce_kadm5_policy->function_table, zpolicy, &func, &dummy_retval, 0,
- NULL TSRMLS_CC) == FAILURE) {
+ if(call_user_function(&krb5_ce_kadm5_policy->function_table, zpolicy, &func, &dummy_retval, 0,
+ NULL TSRMLS_CC) == FAILURE) {
zval_dtor(&func);
zval_dtor(&dummy_retval);
zend_throw_exception(NULL, "Failed to update KADM5Policy object", 0 TSRMLS_CC);
@@ -626,7 +483,6 @@ PHP_METHOD(KADM5, createPolicy) {
}
zval_dtor(&func);
zval_dtor(&dummy_retval);
-#endif
} /* }}} */
/* {{{ proto array KADM5::getPolicies([string $filter])
diff --git a/kadm5_policy.c b/kadm5_policy.c
index 4fd670e..324b275 100644
--- a/kadm5_policy.c
+++ b/kadm5_policy.c
@@ -1,16 +1,16 @@
/**
* Copyright (c) 2007 Moritz Bechler
-*
+*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
-*
+*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
-*
+*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -92,24 +92,6 @@ static zend_function_entry krb5_kadm5_policy_functions[] = {
zend_object_handlers krb5_kadm5_policy_handlers;
-#if PHP_MAJOR_VERSION < 7
-static void php_krb5_kadm5_policy_object_dtor(void *obj, zend_object_handle handle TSRMLS_DC)
-{
- krb5_kadm5_policy_object *object = (krb5_kadm5_policy_object*)obj;
-
-
- if(object->policy) {
- efree(object->policy);
- }
-
- krb5_kadm5_object *conn = object->conn;
- if(conn) {
- kadm5_free_policy_ent(conn->handle, &object->data);
- }
- zend_object_std_dtor(&(object->std) TSRMLS_CC);
- efree(object);
-}
-#else
static void php_krb5_kadm5_policy_object_free(zend_object *obj) {
krb5_kadm5_policy_object *object = (krb5_kadm5_policy_object*)((char *)obj - XtOffsetOf(krb5_kadm5_policy_object, std));
krb5_kadm5_object *conn = object->conn;
@@ -121,7 +103,6 @@ static void php_krb5_kadm5_policy_object_free(zend_object *obj) {
}
zend_object_std_dtor(obj);
}
-#endif
int php_krb5_register_kadm5_policy(TSRMLS_D) {
zend_class_entry kadm5_policy;
@@ -129,43 +110,12 @@ int php_krb5_register_kadm5_policy(TSRMLS_D) {
krb5_ce_kadm5_policy = zend_register_internal_class(&kadm5_policy TSRMLS_CC);
krb5_ce_kadm5_policy->create_object = php_krb5_kadm5_policy_object_new;
memcpy(&krb5_kadm5_policy_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
-#if PHP_MAJOR_VERSION >= 7
krb5_kadm5_policy_handlers.offset = XtOffsetOf(krb5_kadm5_policy_object, std);
krb5_kadm5_policy_handlers.free_obj = php_krb5_kadm5_policy_object_free;
-#endif
return SUCCESS;
}
-#if PHP_MAJOR_VERSION < 7
-zend_object_value php_krb5_kadm5_policy_object_new(zend_class_entry *ce TSRMLS_DC)
-{
- zend_object_value retval;
- krb5_kadm5_policy_object *object;
- extern zend_object_handlers krb5_kadm5_policy_handlers;
-
- object = emalloc(sizeof(krb5_kadm5_policy_object));
-
- memset(&object->data, 0, sizeof(kadm5_policy_ent_rec));
- object->conn = NULL;
- object->update_mask = 0;
-
- zend_object_std_init(&(object->std), ce TSRMLS_CC);
-
-#if PHP_VERSION_ID < 50399
- zend_hash_copy(object->std.properties, &ce->default_properties,
- (copy_ctor_func_t) zval_add_ref, NULL,
- sizeof(zval*));
-#else
- object_properties_init(&(object->std), ce);
-#endif
-
- retval.handle = zend_objects_store_put(object, php_krb5_kadm5_policy_object_dtor, NULL, NULL TSRMLS_CC);
-
- retval.handlers = &krb5_kadm5_policy_handlers;
- return retval;
-}
-#else
zend_object* php_krb5_kadm5_policy_object_new(zend_class_entry *ce TSRMLS_DC) {
krb5_kadm5_policy_object *object = ecalloc(1, sizeof(krb5_kadm5_policy_object) + zend_object_properties_size(ce));
zend_object_std_init(&object->std, ce TSRMLS_CC);
@@ -173,7 +123,6 @@ zend_object* php_krb5_kadm5_policy_object_new(zend_class_entry *ce TSRMLS_DC) {
object->std.handlers = &krb5_kadm5_policy_handlers;
return &object->std;
}
-#endif
/* {{{ proto KADM5Policy::__construct(string $policy [, KADM5 $conn ])
*/
@@ -201,23 +150,6 @@ PHP_METHOD(KADM5Policy, __construct)
zend_update_property(krb5_ce_kadm5_principal, OBJ_FOR_PROP(getThis()), "connection", sizeof("connection"), connobj TSRMLS_CC);
this->conn = KRB5_KADM(connobj);
-#if PHP_MAJOR_VERSION < 7
- zval *dummy_retval, *func;
- MAKE_STD_ZVAL(func);
- _ZVAL_STRING(func, "load");
- MAKE_STD_ZVAL(dummy_retval);
- if(call_user_function(&krb5_ce_kadm5_policy->function_table,
- &getThis(), func, dummy_retval, 0,
- NULL TSRMLS_CC) == FAILURE) {
- zval_ptr_dtor(&func);
- zval_ptr_dtor(&dummy_retval);
- zend_throw_exception(NULL, "Failed to update KADM5Policy object", 0 TSRMLS_CC);
- return;
- }
-
- zval_ptr_dtor(&func);
- zval_ptr_dtor(&dummy_retval);
-#else
zval func;
zval dummy_retval;
_ZVAL_STRING(&func, "load");
@@ -230,16 +162,11 @@ PHP_METHOD(KADM5Policy, __construct)
}
zval_ptr_dtor(&func);
zval_ptr_dtor(&dummy_retval);
-#endif
}
}
/* }}} */
-#if PHP_MAJOR_VERSION < 7
-#define KRB5_KADM_POLICY_GET_CONNECTION zend_read_property(krb5_ce_kadm5_policy, getThis(), "connection", sizeof("connection"),1 TSRMLS_CC);
-#else
#define KRB5_KADM_POLICY_GET_CONNECTION zend_read_property(krb5_ce_kadm5_policy, OBJ_FOR_PROP(getThis()), "connection", sizeof("connection"),1, NULL);
-#endif
/* {{{ proto KADM5Policy::load()
*/
@@ -258,7 +185,7 @@ PHP_METHOD(KADM5Policy, load)
zend_throw_exception(NULL, "No valid connection available", 0 TSRMLS_CC);
return;
}
-
+
kadm5 = KRB5_KADM(connobj);
if(!kadm5) {
zend_throw_exception(NULL, "No valid connection available", 0 TSRMLS_CC);
@@ -399,7 +326,7 @@ PHP_METHOD(KADM5Policy, setMinPasswordLife)
{
krb5_kadm5_policy_object *obj = KRB5_THIS_KADM_POLICY;
zend_long min_life;
-
+
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &min_life) == FAILURE) {
RETURN_FALSE;
}
@@ -429,7 +356,7 @@ PHP_METHOD(KADM5Policy, setMaxPasswordLife)
{
krb5_kadm5_policy_object *obj = KRB5_THIS_KADM_POLICY;
zend_long max_life;
-
+
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &max_life) == FAILURE) {
RETURN_FALSE;
}
@@ -460,7 +387,7 @@ PHP_METHOD(KADM5Policy, setMinPasswordLength)
{
krb5_kadm5_policy_object *obj = KRB5_THIS_KADM_POLICY;
zend_long min_length;
-
+
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &min_length) == FAILURE) {
RETURN_FALSE;
}
@@ -490,7 +417,7 @@ PHP_METHOD(KADM5Policy, setMinPasswordClasses)
{
krb5_kadm5_policy_object *obj = KRB5_THIS_KADM_POLICY;
zend_long min_classes;
-
+
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &min_classes) == FAILURE) {
RETURN_FALSE;
}
@@ -520,7 +447,7 @@ PHP_METHOD(KADM5Policy, setHistoryNum)
{
krb5_kadm5_policy_object *obj = KRB5_THIS_KADM_POLICY;
zend_long history_num;
-
+
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &history_num) == FAILURE) {
RETURN_FALSE;
}
@@ -564,7 +491,7 @@ PHP_METHOD(KADM5Policy, setLockoutDuration)
{
krb5_kadm5_policy_object *obj = KRB5_THIS_KADM_POLICY;
zend_long duration;
-
+
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &duration) == FAILURE) {
RETURN_FALSE;
}
@@ -594,7 +521,7 @@ PHP_METHOD(KADM5Policy, setMaxFailureCount)
{
krb5_kadm5_policy_object *obj = KRB5_THIS_KADM_POLICY;
zend_long maxfail;
-
+
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &maxfail) == FAILURE) {
RETURN_FALSE;
}
@@ -626,7 +553,7 @@ PHP_METHOD(KADM5Policy, setFailureInterval)
{
krb5_kadm5_policy_object *obj = KRB5_THIS_KADM_POLICY;
zend_long failcnt_interval;
-
+
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &failcnt_interval) == FAILURE) {
RETURN_FALSE;
}
diff --git a/kadm5_principal.c b/kadm5_principal.c
index 3715195..bad65cd 100644
--- a/kadm5_principal.c
+++ b/kadm5_principal.c
@@ -1,16 +1,16 @@
/**
* Copyright (c) 2007 Moritz Bechler
-*
+*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
-*
+*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
-*
+*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -103,20 +103,6 @@ static zend_function_entry krb5_kadm5_principal_functions[] = {
zend_object_handlers krb5_kadm5_principal_handlers;
/* KADM5Principal ctor/dtor */
-#if PHP_MAJOR_VERSION < 7
-static void php_krb5_kadm5_principal_object_dtor(void *obj, zend_object_handle handle TSRMLS_DC)
-{
- krb5_kadm5_principal_object *object = (krb5_kadm5_principal_object*)obj;
-
- krb5_kadm5_object *conn = object->conn;
- if(conn) {
- kadm5_free_principal_ent(conn->handle, &object->data);
- }
-
- zend_object_std_dtor(&(object->std) TSRMLS_CC);
- efree(object);
-}
-#else
static void php_krb5_kadm5_principal_object_free(zend_object *obj TSRMLS_DC)
{
krb5_kadm5_principal_object *object = (krb5_kadm5_principal_object*)((char *)obj - XtOffsetOf(krb5_kadm5_principal_object, std));
@@ -127,7 +113,6 @@ static void php_krb5_kadm5_principal_object_free(zend_object *obj TSRMLS_DC)
}
zend_object_std_dtor(obj);
}
-#endif
int php_krb5_register_kadm5_principal(TSRMLS_D) {
zend_class_entry kadm5_principal;
@@ -135,42 +120,11 @@ int php_krb5_register_kadm5_principal(TSRMLS_D) {
krb5_ce_kadm5_principal = zend_register_internal_class(&kadm5_principal TSRMLS_CC);
krb5_ce_kadm5_principal->create_object = php_krb5_kadm5_principal_object_new;
memcpy(&krb5_kadm5_principal_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
-#if PHP_MAJOR_VERSION >= 7
krb5_kadm5_principal_handlers.offset = XtOffsetOf(krb5_kadm5_principal_object, std);
krb5_kadm5_principal_handlers.free_obj = php_krb5_kadm5_principal_object_free;
-#endif
return SUCCESS;
}
-#if PHP_MAJOR_VERSION < 7
-zend_object_value php_krb5_kadm5_principal_object_new(zend_class_entry *ce TSRMLS_DC)
-{
- zend_object_value retval;
- krb5_kadm5_principal_object *object;
- extern zend_object_handlers krb5_kadm5_principal_handlers;
-
- object = emalloc(sizeof(krb5_kadm5_principal_object));
-
- memset(&object->data, 0, sizeof(kadm5_principal_ent_rec));
- object->loaded = FALSE;
- object->update_mask = 0;
- object->conn = NULL;
-
- zend_object_std_init(&(object->std), ce TSRMLS_CC);
-
-#if PHP_VERSION_ID < 50399
- zend_hash_copy(object->std.properties, &ce->default_properties,
- (copy_ctor_func_t) zval_add_ref, NULL,
- sizeof(zval*));
-#else
- object_properties_init(&(object->std), ce);
-#endif
-
- retval.handle = zend_objects_store_put(object, php_krb5_kadm5_principal_object_dtor, NULL, NULL TSRMLS_CC);
- retval.handlers = &krb5_kadm5_principal_handlers;
- return retval;
-}
-#else
zend_object* php_krb5_kadm5_principal_object_new(zend_class_entry *ce TSRMLS_DC) {
krb5_kadm5_principal_object *object = ecalloc(1, sizeof(krb5_kadm5_principal_object) + zend_object_properties_size(ce));
zend_object_std_init(&object->std, ce TSRMLS_CC);
@@ -178,7 +132,6 @@ zend_object* php_krb5_kadm5_principal_object_new(zend_class_entry *ce TSRMLS_DC)
object->std.handlers = &krb5_kadm5_principal_handlers;
return &object->std;
}
-#endif
/* {{{ proto KADM5Principal KADM5Principal::__construct(string $principal [, KADM5 $connection [, boolean $noload] ])
*/
@@ -206,28 +159,11 @@ PHP_METHOD(KADM5Principal, __construct)
this->conn = KRB5_KADM(obj);
if ( noload != TRUE ) {
-#if PHP_MAJOR_VERSION < 7
- zval *dummy_retval, *func;
- MAKE_STD_ZVAL(func);
- ZVAL_STRING(func, "load", 1);
- MAKE_STD_ZVAL(dummy_retval);
- if(call_user_function(&krb5_ce_kadm5_principal->function_table,
- &getThis(), func, dummy_retval, 0,
- NULL TSRMLS_CC) == FAILURE) {
- zval_ptr_dtor(&func);
- zval_ptr_dtor(&dummy_retval);
- zend_throw_exception(NULL, "Failed to update KADM5Principal object", 0 TSRMLS_CC);
- return;
- }
-
- zval_ptr_dtor(&func);
- zval_ptr_dtor(&dummy_retval);
-#else
zval func;
zval dummy_retval;
ZVAL_STRING(&func, "load");
- if(call_user_function(&krb5_ce_kadm5_policy->function_table, getThis(), &func, &dummy_retval, 0,
- NULL TSRMLS_CC) == FAILURE) {
+ if(call_user_function(&krb5_ce_kadm5_policy->function_table, getThis(), &func, &dummy_retval, 0,
+ NULL TSRMLS_CC) == FAILURE) {
zval_dtor(&func);
zval_dtor(&dummy_retval);
zend_throw_exception(NULL, "Failed to update KADM5Policy object", 0 TSRMLS_CC);
@@ -235,24 +171,14 @@ PHP_METHOD(KADM5Principal, __construct)
}
zval_dtor(&func);
zval_dtor(&dummy_retval);
-#endif
}
}
}
/* }}} */
-#if PHP_MAJOR_VERSION < 7
-#define KRB5_KADM_PRINCIPAL_GET_CONNECTION zend_read_property(krb5_ce_kadm5_principal, getThis(), "connection", sizeof("connection"),1 TSRMLS_CC)
-#else
#define KRB5_KADM_PRINCIPAL_GET_CONNECTION zend_read_property(krb5_ce_kadm5_principal, OBJ_FOR_PROP(getThis()), "connection", sizeof("connection"),1, NULL)
-#endif
-
-#if PHP_MAJOR_VERSION < 7
-#define KRB5_KADM_PRINCIPAL_GET_PRINCNAME zend_read_property(krb5_ce_kadm5_principal, getThis(), "princname", sizeof("princname"),1 TSRMLS_CC)
-#else
#define KRB5_KADM_PRINCIPAL_GET_PRINCNAME zend_read_property(krb5_ce_kadm5_principal, OBJ_FOR_PROP(getThis()), "princname", sizeof("princname"),1, NULL)
-#endif
/* {{{ proto KADM5Principal KADM5Principal::load()
*/
@@ -388,7 +314,7 @@ PHP_METHOD(KADM5Principal, changePassword)
zend_throw_exception(NULL, "No valid connection available", 0 TSRMLS_CC);
return;
}
-
+
zend_string *pnstr = zval_get_string(princname TSRMLS_CC);
if(krb5_parse_name(kadm5->ctx, pnstr->val, &princ)) {
zend_string_release(pnstr);
@@ -499,7 +425,7 @@ PHP_METHOD(KADM5Principal, rename)
krb5_free_error_message(kadm5->ctx, errmsg);
return;
}
-
+
if(dst_pw) {
retval = kadm5_chpass_principal(kadm5->handle, dst_princ, dst_pw);
if(retval != KADM5_OK) {
@@ -566,7 +492,7 @@ PHP_METHOD(KADM5Principal, getPropertyArray)
add_assoc_long(return_value, "last_pwd_change", obj->data.last_pwd_change);
add_assoc_long(return_value, "pw_expiration", obj->data.pw_expiration);
add_assoc_long(return_value, "max_life", obj->data.max_life);
-
+
if ( obj->data.mod_name ) {
krb5_unparse_name(kadm5->ctx, obj->data.mod_name, &tstring);
_add_assoc_string(return_value, "mod_name", tstring);
@@ -600,7 +526,7 @@ PHP_METHOD(KADM5Principal, getPropertyArray)
PHP_METHOD(KADM5Principal, getName)
{
krb5_kadm5_principal_object *obj = KRB5_THIS_KADM_PRINCIPAL;
-
+
if (zend_parse_parameters_none() == FAILURE) {
return;
}
@@ -782,7 +708,6 @@ PHP_METHOD(KADM5Principal, getLastModifier)
return;
}
-
if(obj->loaded) {
connobj = KRB5_KADM_PRINCIPAL_GET_CONNECTION;
if ( Z_ISNULL_P(connobj)) {
@@ -794,7 +719,7 @@ PHP_METHOD(KADM5Principal, getLastModifier)
zend_throw_exception(NULL, "No valid connection available", 0 TSRMLS_CC);
return;
}
-
+
krb5_unparse_name(kadm5->ctx,obj->data.mod_name,&princname);
_RETVAL_STRING(princname);
krb5_free_unparsed_name(kadm5->ctx, princname);
@@ -923,33 +848,13 @@ PHP_METHOD(KADM5Principal, getPolicy)
zend_throw_exception(NULL, "No valid connection available", 0 TSRMLS_CC);
return;
}
-
-#if PHP_MAJOR_VERSION < 7
- zval *func;
- zval *args[1];
- MAKE_STD_ZVAL(func);
- ZVAL_STRING(func, "getPolicy", 1);
- MAKE_STD_ZVAL(args[0]);
- ZVAL_STRING(args[0], obj->data.policy, 1);
-
- if(call_user_function(&krb5_ce_kadm5_policy->function_table,
- &connobj, func, return_value, 1,
- args TSRMLS_CC) == FAILURE) {
- zval_ptr_dtor(&args[0]);
- zval_ptr_dtor(&func);
- zend_throw_exception(NULL, "Failed to instantiate KADM5Policy object", 0 TSRMLS_CC);
- return;
- }
- zval_ptr_dtor(&args[0]);
- zval_ptr_dtor(&func);
-#else
zval func;
zval args[1];
ZVAL_STRING(&func, "getPolicy");
ZVAL_STRING(&args[0], obj->data.policy);
- if(call_user_function(&krb5_ce_kadm5_policy->function_table, connobj, &func, return_value, 1,
- args TSRMLS_CC) == FAILURE) {
+ if(call_user_function(&krb5_ce_kadm5_policy->function_table, connobj, &func, return_value, 1,
+ args TSRMLS_CC) == FAILURE) {
zval_dtor(&args[0]);
zval_dtor(&func);
zend_throw_exception(NULL, "Failed to instantiate KADM5Policy object", 0 TSRMLS_CC);
@@ -957,7 +862,6 @@ PHP_METHOD(KADM5Principal, getPolicy)
}
zval_dtor(&args[0]);
zval_dtor(&func);
-#endif
}
}
/* }}} */
@@ -1014,7 +918,7 @@ PHP_METHOD(KADM5Principal, setPolicy)
/* {{{ proto KADM5Principal KADM5Principal::clearPolicy()
*/
PHP_METHOD(KADM5Principal, clearPolicy)
-{
+{
krb5_kadm5_principal_object *obj = KRB5_THIS_KADM_PRINCIPAL;
if (zend_parse_parameters_none() == FAILURE) {
@@ -1074,7 +978,7 @@ PHP_METHOD(KADM5Principal, getFailedAuthCount)
PHP_METHOD(KADM5Principal, resetFailedAuthCount)
{
krb5_kadm5_principal_object *obj = KRB5_THIS_KADM_PRINCIPAL;
-
+
if (zend_parse_parameters_none() == FAILURE) {
return;
}
@@ -1090,7 +994,7 @@ PHP_METHOD(KADM5Principal, resetFailedAuthCount)
PHP_METHOD(KADM5Principal, getTLData)
{
krb5_kadm5_principal_object *obj = KRB5_THIS_KADM_PRINCIPAL;
-
+
if (zend_parse_parameters_none() == FAILURE) {
return;
}
@@ -1107,7 +1011,7 @@ PHP_METHOD(KADM5Principal, setTLData)
{
krb5_kadm5_principal_object *obj = KRB5_THIS_KADM_PRINCIPAL;
zval *array;
-
+
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == FAILURE) {
RETURN_FALSE;
}
diff --git a/kadm5_tldata.c b/kadm5_tldata.c
index 1f653f7..c301fc8 100644
--- a/kadm5_tldata.c
+++ b/kadm5_tldata.c
@@ -1,16 +1,16 @@
/**
* Copyright (c) 2016 Moritz Bechler
-*
+*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
-*
+*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
-*
+*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -40,20 +40,6 @@ static zend_function_entry krb5_kadm5_tldata_functions[] = {
zend_object_handlers krb5_kadm5_tldata_handlers;
/* KADM5Principal ctor/dtor */
-#if PHP_MAJOR_VERSION < 7
-static void php_krb5_kadm5_tldata_object_dtor(void *obj, zend_object_handle handle TSRMLS_DC)
-{
- krb5_kadm5_tldata_object *object = (krb5_kadm5_tldata_object*)obj;
- zend_object_std_dtor(&(object->std) TSRMLS_CC);
-
- if(object) {
- if ( object->data.tl_data_contents ) {
- efree(object->data.tl_data_contents);
- }
- efree(object);
- }
-}
-#else
static void php_krb5_kadm5_tldata_object_free(zend_object *obj TSRMLS_DC)
{
krb5_kadm5_tldata_object *object = (krb5_kadm5_tldata_object*)((char *)obj - XtOffsetOf(krb5_kadm5_tldata_object, std));
@@ -61,7 +47,6 @@ static void php_krb5_kadm5_tldata_object_free(zend_object *obj TSRMLS_DC)
efree(object->data.tl_data_contents);
}
}
-#endif
int php_krb5_register_kadm5_tldata(TSRMLS_D) {
@@ -71,40 +56,12 @@ int php_krb5_register_kadm5_tldata(TSRMLS_D) {
krb5_ce_kadm5_tldata = zend_register_internal_class(&kadm5_tldata TSRMLS_CC);
krb5_ce_kadm5_tldata->create_object = php_krb5_kadm5_tldata_object_new;
memcpy(&krb5_kadm5_tldata_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
-#if PHP_MAJOR_VERSION >= 7
krb5_kadm5_tldata_handlers.offset = XtOffsetOf(krb5_kadm5_tldata_object, std);
krb5_kadm5_tldata_handlers.free_obj = php_krb5_kadm5_tldata_object_free;
-#endif
return SUCCESS;
}
-#if PHP_MAJOR_VERSION < 7
-zend_object_value php_krb5_kadm5_tldata_object_new(zend_class_entry *ce TSRMLS_DC)
-{
- zend_object_value retval;
- krb5_kadm5_tldata_object *object;
- extern zend_object_handlers krb5_kadm5_tldata_handlers;
-
- object = emalloc(sizeof(krb5_kadm5_tldata_object));
-
- memset(&object->data, 0, sizeof(krb5_tl_data));
-
- zend_object_std_init(&(object->std), ce TSRMLS_CC);
-
-#if PHP_VERSION_ID < 50399
- zend_hash_copy(object->std.properties, &ce->default_properties,
- (copy_ctor_func_t) zval_add_ref, NULL,
- sizeof(zval*));
-#else
- object_properties_init(&(object->std), ce);
-#endif
-
- retval.handle = zend_objects_store_put(object, php_krb5_kadm5_tldata_object_dtor, NULL, NULL TSRMLS_CC);
- retval.handlers = &krb5_kadm5_tldata_handlers;
- return retval;
-}
-#else
zend_object* php_krb5_kadm5_tldata_object_new(zend_class_entry *ce TSRMLS_DC)
{
krb5_kadm5_tldata_object *object = ecalloc(1, sizeof(krb5_kadm5_tldata_object) + zend_object_properties_size(ce));
@@ -113,7 +70,6 @@ zend_object* php_krb5_kadm5_tldata_object_new(zend_class_entry *ce TSRMLS_DC)
object->std.handlers = &krb5_kadm5_tldata_handlers;
return &object->std;
}
-#endif
/* {{{ proto KADM5TLData KADM5TLData::__construct( long type [, string data])
@@ -186,7 +142,7 @@ void php_krb5_kadm5_tldata_free(krb5_tl_data *data, krb5_int16 count TSRMLS_DC)
int n = count;
while ( n > 0 && cur ) {
if ( cur->tl_data_contents ) {
- free(cur->tl_data_contents);
+ free(cur->tl_data_contents);
}
last = cur;
cur = cur->tl_data_next;
@@ -202,18 +158,8 @@ krb5_tl_data* php_krb5_kadm5_tldata_from_array(zval *array, krb5_int16* count TS
krb5_tl_data *head = NULL;
krb5_tl_data *cur = NULL;
-#if PHP_MAJOR_VERSION < 7
- HashPosition pointer;
- zval **entryp;
- for( zend_hash_internal_pointer_reset_ex(arr_hash, &pointer);
- zend_hash_get_current_data_ex(arr_hash, (void**) &entryp, &pointer) == SUCCESS;
- zend_hash_move_forward_ex(arr_hash, &pointer)) {
-
- zval *entry = *entryp;
-#else
zval *entry;
ZEND_HASH_FOREACH_VAL(arr_hash, entry) {
-#endif
if ( Z_TYPE_P(entry) != IS_OBJECT || Z_OBJCE_P(entry) != krb5_ce_kadm5_tldata ) {
continue;
}
@@ -233,14 +179,7 @@ krb5_tl_data* php_krb5_kadm5_tldata_from_array(zval *array, krb5_int16* count TS
if ( head == NULL ) {
head = cur;
}
-#if PHP_MAJOR_VERSION < 7
- }
-#else
} ZEND_HASH_FOREACH_END();
-#endif
*count = have_count;
return head;
}
-
-
-
diff --git a/krb5.c b/krb5.c
index d00f554..5933a2a 100644
--- a/krb5.c
+++ b/krb5.c
@@ -26,7 +26,7 @@
* renew(), getTktAttrs() methods; support more
* options to initKeytab/Password(); check only
* primary TGT in isValid(); fix some bugs.
- *
+ *
* 2010-04-11 Moritz Bechler RC2 release
*/
@@ -146,12 +146,8 @@ krb5_error_code php_krb5_display_error(krb5_context ctx, krb5_error_code code, c
/* Initialization functions */
zend_object_handlers krb5_ccache_handlers;
-#if PHP_MAJOR_VERSION < 7
-zend_object_value php_krb5_ticket_object_new( zend_class_entry *ce TSRMLS_DC);
-#else
zend_object *php_krb5_ticket_object_new(zend_class_entry *ce TSRMLS_DC);
static void php_krb5_ccache_object_free(zend_object *obj TSRMLS_DC);
-#endif
PHP_MINIT_FUNCTION(krb5)
{
@@ -161,10 +157,8 @@ PHP_MINIT_FUNCTION(krb5)
krb5_ce_ccache = zend_register_internal_class(&krb5_ccache TSRMLS_CC);
krb5_ce_ccache->create_object = php_krb5_ticket_object_new;
memcpy(&krb5_ccache_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
-#if PHP_MAJOR_VERSION >= 7
krb5_ccache_handlers.offset = XtOffsetOf(krb5_ccache_object, std);
krb5_ccache_handlers.free_obj = php_krb5_ccache_object_free;
-#endif
#ifdef HAVE_KADM5
if(php_krb5_kadm5_register_classes(TSRMLS_C) != SUCCESS) {
@@ -188,7 +182,7 @@ PHP_MINIT_FUNCTION(krb5)
REGISTER_LONG_CONSTANT("GSS_C_ACCEPT", GSS_C_ACCEPT, CONST_CS | CONST_PERSISTENT );
REGISTER_LONG_CONSTANT("GSS_C_NO_NAME", 0, CONST_CS | CONST_PERSISTENT );
-
+
#ifdef KRB5_TL_DB_ARGS
REGISTER_LONG_CONSTANT("KRB5_TL_DB_ARGS", KRB5_TL_DB_ARGS, CONST_CS | CONST_PERSISTENT );
#endif
@@ -249,26 +243,6 @@ PHP_MINFO_FUNCTION(krb5)
/* Constructors/Destructors */
/* {{{ */
-#if PHP_MAJOR_VERSION < 7
-static void php_krb5_ccache_object_dtor(void *obj, zend_object_handle handle TSRMLS_DC)
-{
- krb5_ccache_object *ticket = (krb5_ccache_object*)obj;
-
-
- if(ticket) {
- OBJECT_STD_DTOR(ticket->std);
-
- krb5_cc_destroy(ticket->ctx, ticket->cc);
- krb5_free_context(ticket->ctx);
-
- if(ticket->keytab) {
- efree(ticket->keytab);
- }
-
- efree(ticket);
- }
-}
-#else
static void php_krb5_ccache_object_free(zend_object *obj TSRMLS_DC)
{
krb5_ccache_object *ticket = (krb5_ccache_object*)((char *)obj - XtOffsetOf(krb5_ccache_object, std));
@@ -280,54 +254,10 @@ static void php_krb5_ccache_object_free(zend_object *obj TSRMLS_DC)
}
zend_object_std_dtor(obj);
}
-#endif
/* }}} */
/* {{{ */
-#if PHP_MAJOR_VERSION < 7
-zend_object_value php_krb5_ticket_object_new(zend_class_entry *ce TSRMLS_DC)
-{
- zend_object_value retval;
- zend_object *failed;
- krb5_ccache_object *object;
- krb5_error_code ret = 0;
-
- object = emalloc(sizeof(krb5_ccache_object));
- memset(object, 0, sizeof(krb5_ccache_object));
-
- /* intialize context */
- if((ret = krb5_init_context(&object->ctx))) {
- php_error_docref(NULL TSRMLS_CC, E_ERROR, "Cannot initialize Kerberos5 context");
- efree(object);
- return zend_objects_new(&failed, ce TSRMLS_CC);
- }
-
- // initialize random ccache
- if((ret = krb5_cc_new_unique(object->ctx, "MEMORY", "", &object->cc))) {
- const char *msg = krb5_get_error_message(object->ctx,ret);
- php_error_docref(NULL TSRMLS_CC, E_ERROR, "Cannot open credential cache: %s", msg);
- krb5_free_error_message(object->ctx, msg);
- krb5_free_context(object->ctx);
- efree(object);
- return zend_objects_new(&failed, ce TSRMLS_CC);
- }
-
-
- INIT_STD_OBJECT(object->std, ce);
-#if PHP_VERSION_ID < 50399
- zend_hash_copy(object->std.properties, &ce->default_properties,
- (copy_ctor_func_t) zval_add_ref, NULL,
- sizeof(zval*));
-#else
- object_properties_init(&(object->std), ce);
-#endif
-
- retval.handle = zend_objects_store_put(object, php_krb5_ccache_object_dtor, NULL, NULL TSRMLS_CC);
- retval.handlers = &krb5_ccache_handlers;
- return retval;
-}
-#else
zend_object *php_krb5_ticket_object_new(zend_class_entry *ce TSRMLS_DC)
{
krb5_ccache_object *object;
@@ -338,7 +268,7 @@ zend_object *php_krb5_ticket_object_new(zend_class_entry *ce TSRMLS_DC)
/* intialize context */
if((ret = krb5_init_context(&object->ctx))) {
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Cannot initialize Kerberos5 context");
- efree(object);
+ efree(object);
return zend_objects_new(ce);
}
@@ -348,7 +278,7 @@ zend_object *php_krb5_ticket_object_new(zend_class_entry *ce TSRMLS_DC)
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Cannot open credential cache: %s", msg);
krb5_free_error_message(object->ctx, msg);
krb5_free_context(object->ctx);
- efree(object);
+ efree(object);
return zend_objects_new(ce);
}
@@ -357,7 +287,6 @@ zend_object *php_krb5_ticket_object_new(zend_class_entry *ce TSRMLS_DC)
object->std.handlers = &krb5_ccache_handlers;
return &object->std;
}
-#endif
/* }}} */
/* Helper functions */
@@ -404,7 +333,7 @@ static int php_krb5_parse_init_creds_opts(zval *opts, krb5_get_init_creds_opt *c
if (tmp != NULL) {
krb5_get_init_creds_opt_set_renew_life(cred_opts, zval_get_long(tmp TSRMLS_CC));
}
-
+
/* service_name (krb5 arg "in_tkt_service") */
tmp = zend_compat_hash_find(HASH_OF(opts), "service_name", sizeof("service_name"));
if (tmp != NULL) {
@@ -885,17 +814,9 @@ PHP_METHOD(KRB5CCache, initKeytab)
RETURN_FALSE;
}
-#if PHP_VERSION_ID < 50399
- if ( (PG(safe_mode) &&
- !php_checkuid(skeytab, NULL, CHECKUID_CHECK_FILE_AND_DIR)) ||
- php_check_open_basedir(skeytab TSRMLS_CC)) {
- RETURN_FALSE;
- }
-#else
if ( php_check_open_basedir(skeytab TSRMLS_CC)) {
RETURN_FALSE;
}
-#endif
do {
memset(&princ, 0, sizeof(princ));
@@ -1306,9 +1227,6 @@ PHP_METHOD(KRB5CCache, getTktAttrs)
#ifndef INET6_ADDRSTRLEN
_add_next_index_string(addrlist, inet_ntoa(ipaddr));
}
-#if 0
- { match curlies
-#endif
#else /* ! INET6_ADDRSTRLEN */
if (inet_ntop(AF_INET, &ipaddr, straddr, sizeof(straddr))) {
_add_next_index_string(addrlist, straddr);
@@ -1425,7 +1343,6 @@ PHP_METHOD(KRB5CCache, renew)
Changes a principal's password using kpasswd */
PHP_METHOD(KRB5CCache, changePassword)
{
-
krb5_error_code retval = 0;
krb5_context ctx = NULL;
char *errstr = "";
diff --git a/negotiate_auth.c b/negotiate_auth.c
index ce88e26..bb89a36 100644
--- a/negotiate_auth.c
+++ b/negotiate_auth.c
@@ -34,9 +34,6 @@ zend_object_handlers krb5_negotiate_auth_handlers;
zend_class_entry *krb5_ce_negotiate_auth;
typedef struct _krb5_negotiate_auth_object {
-#if PHP_MAJOR_VERSION < 7
- zend_object std;
-#endif
gss_name_t servname;
gss_name_t authed_user;
gss_cred_id_t delegated;
@@ -45,20 +42,13 @@ typedef struct _krb5_negotiate_auth_object {
#ifdef HAVE_GSS_ACQUIRE_CRED_FROM
gss_key_value_set_desc cred_store;
#endif
-#if PHP_MAJOR_VERSION >= 7
zend_object std;
-#endif
} krb5_negotiate_auth_object;
-#if PHP_MAJOR_VERSION < 7
-static void php_krb5_negotiate_auth_object_dtor(void *obj, zend_object_handle handle TSRMLS_DC);
-zend_object_value php_krb5_negotiate_auth_object_new(zend_class_entry *ce TSRMLS_DC);
-#else
static void php_krb5_negotiate_auth_object_free(zend_object *obj TSRMLS_DC);
zend_object *php_krb5_ticket_object_new(zend_class_entry *ce TSRMLS_DC);
-#endif
ZEND_BEGIN_ARG_INFO_EX(arginfo_KRB5NegotiateAuth_none, 0, 0, 0)
ZEND_END_ARG_INFO()
@@ -118,22 +108,12 @@ static void php_krb5_negotiate_auth_object_free_data(krb5_negotiate_auth_object*
#endif
}
/* {{{ */
-#if PHP_MAJOR_VERSION < 7
-static void php_krb5_negotiate_auth_object_dtor(void *obj, zend_object_handle handle TSRMLS_DC)
-{
- krb5_negotiate_auth_object *object = (krb5_negotiate_auth_object*)obj;
- OBJECT_STD_DTOR(object->std);
- php_krb5_negotiate_auth_object_free_data(object);
- efree(object);
-}
-#else
static void php_krb5_negotiate_auth_object_free(zend_object *obj TSRMLS_DC)
{
krb5_negotiate_auth_object *object = (krb5_negotiate_auth_object*)((char *)obj - XtOffsetOf(krb5_negotiate_auth_object, std));
php_krb5_negotiate_auth_object_free_data(object);
zend_object_std_dtor(obj);
}
-#endif
/* }}} */
@@ -146,33 +126,6 @@ static void setup_negotiate_auth(krb5_negotiate_auth_object *object TSRMLS_DC) {
}
/* {{{ */
-#if PHP_MAJOR_VERSION < 7
-zend_object_value php_krb5_negotiate_auth_object_new(zend_class_entry *ce TSRMLS_DC)
-{
- zend_object_value retval;
- krb5_negotiate_auth_object *object;
- object = emalloc(sizeof(krb5_negotiate_auth_object));
-
- setup_negotiate_auth(object TSRMLS_CC);
-
-
- INIT_STD_OBJECT(object->std, ce);
-
-#if PHP_VERSION_ID < 50399
- zend_hash_copy(object->std.properties, &ce->default_properties,
- (copy_ctor_func_t) zval_add_ref, NULL,
- sizeof(zval*));
-#else
- object_properties_init(&(object->std), ce);
-#endif
- ZVAL_NULL(&object->chan_bindings);
-
- retval.handle = zend_objects_store_put(object, php_krb5_negotiate_auth_object_dtor, NULL, NULL TSRMLS_CC);
-
- retval.handlers = &krb5_negotiate_auth_handlers;
- return retval;
-}
-#else
zend_object *php_krb5_negotiate_auth_object_new(zend_class_entry *ce TSRMLS_DC)
{
krb5_negotiate_auth_object *object;
@@ -186,7 +139,6 @@ zend_object *php_krb5_negotiate_auth_object_new(zend_class_entry *ce TSRMLS_DC)
object->std.handlers = &krb5_negotiate_auth_handlers;
return &object->std;
}
-#endif
/* }}} */
/* {{{ */
@@ -197,10 +149,8 @@ int php_krb5_negotiate_auth_register_classes(TSRMLS_D) {
krb5_ce_negotiate_auth = zend_register_internal_class(&negotiate_auth TSRMLS_CC);
krb5_ce_negotiate_auth->create_object = php_krb5_negotiate_auth_object_new;
memcpy(&krb5_negotiate_auth_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
-#if PHP_MAJOR_VERSION >= 7
krb5_negotiate_auth_handlers.offset = XtOffsetOf(krb5_negotiate_auth_object, std);
krb5_negotiate_auth_handlers.free_obj = php_krb5_negotiate_auth_object_free;
-#endif
return SUCCESS;
}
@@ -344,11 +294,7 @@ PHP_METHOD(KRB5NegotiateAuth, doAuthentication)
/* get authentication data */
zval *auth_header = NULL;
-#if PHP_MAJOR_VERSION < 7
- HashTable* server_vars = PG(http_globals)[TRACK_VARS_SERVER] != NULL ? PG(http_globals)[TRACK_VARS_SERVER]->value.ht : NULL;
-#else
HashTable* server_vars = Z_ARRVAL(PG(http_globals)[TRACK_VARS_SERVER]);
-#endif
if(server_vars && (auth_header = zend_compat_hash_find(server_vars, "HTTP_AUTHORIZATION", sizeof("HTTP_AUTHORIZATION"))) != NULL) {
@@ -362,14 +308,7 @@ PHP_METHOD(KRB5NegotiateAuth, doAuthentication)
zend_throw_exception(NULL, "Invalid negotiate authentication data given", 0 TSRMLS_CC);
return;
}
-#if PHP_MAJOR_VERSION < 7
- int len = 0;
- char *str = (char*) php_base64_decode_ex((unsigned char*) Z_STRVAL_P(auth_header)+10, Z_STRLEN_P(auth_header) - 10, &len, 1);
- token = zend_string_init(str, len, 0);
- efree(str);
-#else
token = php_base64_decode_ex((unsigned char*) Z_STRVAL_P(auth_header)+10, Z_STRLEN_P(auth_header) - 10, 1);
-#endif
} else {
// No authentication data given by the user agent
sapi_header_line ctr = {0};
@@ -466,16 +405,7 @@ PHP_METHOD(KRB5NegotiateAuth, doAuthentication)
}
if(output_token.length > 0) {
-
-#if PHP_MAJOR_VERSION < 7
- int len = 0;
- char *str = (char*) php_base64_encode(output_token.value, output_token.length, &len);
- zend_string *encoded = zend_string_init(str, len, 0);
- efree(str);
-#else
zend_string *encoded = php_base64_encode(output_token.value, output_token.length);
-#endif
-
sapi_header_line ctr = {0};
const char *prompt = "WWW-Authenticate: ";
diff --git a/php_krb5.h b/php_krb5.h
index e82e316..2425ccf 100644
--- a/php_krb5.h
+++ b/php_krb5.h
@@ -65,9 +65,6 @@ PHP_MINFO_FUNCTION(krb5);
extern zend_class_entry *krb5_ce_ccache;
typedef struct _krb5_ccache_object {
-#if PHP_MAJOR_VERSION < 7
- zend_object std;
-#endif
krb5_context ctx;
krb5_ccache cc;
char *keytab;
@@ -75,9 +72,7 @@ typedef struct _krb5_ccache_object {
krb5_timestamp exp_password;
krb5_timestamp exp_account;
krb5_boolean exp_is_last_req;
-#if PHP_MAJOR_VERSION >= 7
zend_object std;
-#endif
} krb5_ccache_object;
krb5_error_code php_krb5_display_error(krb5_context ctx, krb5_error_code code, char* str TSRMLS_DC);
diff --git a/php_krb5_compat.h b/php_krb5_compat.h
index a10760b..d5b8867 100644
--- a/php_krb5_compat.h
+++ b/php_krb5_compat.h
@@ -17,112 +17,6 @@
#endif
-#if PHP_MAJOR_VERSION < 7
-struct _zend_string {
- char *val;
- int len;
- int persistent;
-};
-typedef struct _zend_string zend_string;
-typedef long zend_long;
-typedef int strsize_t;
-
-static zend_always_inline zend_string *zend_string_alloc(int len, int persistent)
-{
- /* single alloc, so free the buf, will also free the struct */
- char *buf = safe_pemalloc(sizeof(zend_string)+len+1,1,0,persistent);
- zend_string *str = (zend_string *)(buf+len+1);
-
- str->val = buf;
- str->len = len;
- str->persistent = persistent;
-
- return str;
-}
-
-static zend_always_inline zend_string *zend_string_init(char *s, int len, int persistent) {
- /* single alloc, so free the buf, will also free the struct */
- char *buf = safe_pemalloc(sizeof(zend_string)+len+1,1,0,persistent);
- zend_string *str = (zend_string *)(buf+len+1);
-
- str->val = buf;
- str->len = len;
- str->persistent = persistent;
-
- memcpy(str->val, s, len);
-
- return str;
-}
-
-static zend_always_inline void zend_string_free(zend_string *s)
-{
- pefree(s->val, s->persistent);
-}
-
-
-static zend_always_inline void zend_string_release(zend_string *s)
-{
- zend_string_free(s);
-}
-/* compatibility macros */
-#define _RETURN_STRING(a) RETURN_STRING(a,1)
-/* new macros */
-#define RETURN_NEW_STR(s) RETURN_STRINGL(s->val,s->len,0);
-#define ZVAL_DEREF(z)
-
-#define Z_ISNULL_P(z) (z == NULL)
-
-#define _ZVAL_STRINGL(a,b,c) ZVAL_STRINGL(a,b,c,1)
-#define _ZVAL_STRING(a,b) ZVAL_STRING(a,b,1)
-#define _RETVAL_STRINGL(a,b) RETVAL_STRINGL(a,b,1)
-#define _RETVAL_STRING(a) RETVAL_STRING(a,1)
-
-#define _DECLARE_ZVAL(name) zval * name = NULL
-#define _INIT_ZVAL INIT_ZVAL
-#define _ALLOC_INIT_ZVAL(name) ALLOC_INIT_ZVAL(name)
-#define _RELEASE_ZVAL(name) zval_ptr_dtor(&name)
-#define _add_next_index_string(...) add_next_index_string(__VA_ARGS__, 1)
-#define _add_assoc_string(...) add_assoc_string(__VA_ARGS__, 1)
-#define _add_assoc_string_ex(...) add_assoc_string_ex(__VA_ARGS__, 1)
-#define _add_assoc_stringl_ex(...) add_assoc_stringl_ex(__VA_ARGS__, 1)
-
-//#define Z_OBJCE_P(zv) zend_get_class_entry(zv TSRMLS_CC)
-
-static inline long zval_get_long(zval *zv TSRMLS_DC) {
- zval* copy;
- long val;
- MAKE_STD_ZVAL(copy);
- MAKE_COPY_ZVAL(&zv, copy);
- convert_to_long(copy);
- val = Z_LVAL_P(copy);
- zval_ptr_dtor(©);
- return val;
-}
-
-static inline zend_string *zval_get_string(zval *zv TSRMLS_DC) {
- zval* copy;
- zend_string *val;
- MAKE_STD_ZVAL(copy);
- MAKE_COPY_ZVAL(&zv, copy);
- convert_to_string(copy);
- val = zend_string_init(Z_STRVAL_P(copy), Z_STRLEN_P(copy)+1, 0);
- val->val[Z_STRLEN_P(copy)] = 0;
- zval_ptr_dtor(©);
- return val;
-}
-
-#define KRB5_CCACHE(zv) (krb5_ccache_object *) zend_object_store_get_object(zv TSRMLS_CC)
-#define KRB5_NEGOTIATE_AUTH(zv) (krb5_negotiate_auth_object *) zend_object_store_get_object(zv TSRMLS_CC)
-#define KRB5_GSSAPI_CONTEXT(zv) (krb5_gssapi_context_object *) zend_object_store_get_object(zv TSRMLS_CC)
-
-
-#define KRB5_KADM(zv) (krb5_kadm5_object*)zend_object_store_get_object(zv TSRMLS_CC)
-#define KRB5_KADM_POLICY(zv) (krb5_kadm5_policy_object*)zend_object_store_get_object(zv TSRMLS_CC)
-#define KRB5_KADM_PRINCIPAL(zv) (krb5_kadm5_principal_object*)zend_object_store_get_object(zv TSRMLS_CC)
-#define KRB5_KADM_TLDATA(zv) (krb5_kadm5_tldata_object*)zend_object_store_get_object(zv TSRMLS_CC)
-
-
-#else
#include "zend_operators.h"
typedef size_t strsize_t;
@@ -154,39 +48,18 @@ typedef size_t strsize_t;
#define KRB5_KADM_PRINCIPAL(zv) (krb5_kadm5_principal_object*)((char *)Z_OBJ_P(zv) - XtOffsetOf(krb5_kadm5_principal_object, std))
#define KRB5_KADM_TLDATA(zv) (krb5_kadm5_tldata_object*)((char *)Z_OBJ_P(zv) - XtOffsetOf(krb5_kadm5_tldata_object, std))
-#endif
-
static zend_always_inline zval* zend_compat_hash_index_find(HashTable *ht, zend_ulong idx)
{
-#if PHP_MAJOR_VERSION < 7
- zval **tmp, *result;
-
- if (zend_hash_index_find(ht, idx, (void **) &tmp) == FAILURE) {
- return NULL;
- }
-
- result = *tmp;
- return result;
-#else
return zend_hash_index_find(ht, idx);
-#endif
}
static zend_always_inline zval* zend_compat_hash_find(HashTable *ht, char *key, size_t len)
{
-#if PHP_MAJOR_VERSION < 7
- zval **tmp;
- if (zend_hash_find(ht, key, len, (void **) &tmp) == FAILURE) {
- return NULL;
- }
- return *tmp;
-#else
zval *result;
zend_string *key_str = zend_string_init(key, len-1, 0);
result = zend_hash_find(ht, key_str);
zend_string_release(key_str);
return result;
-#endif
}
#define KRB5_THIS_CCACHE KRB5_CCACHE(getThis())
@@ -202,61 +75,10 @@ static zend_always_inline zval* zend_compat_hash_find(HashTable *ht, char *key,
-/* PHP Compatability */
-#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION == 1 && PHP_RELEASE_VERSION > 2) || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5)
-
#define INIT_STD_OBJECT(object, ce) zend_object_std_init(&(object), ce TSRMLS_CC);
-
-#else
-
-#define INIT_STD_OBJECT(object, ce) \
- { \
- ALLOC_HASHTABLE(object.properties); \
- zend_hash_init(object.properties,0, NULL, ZVAL_PTR_DTOR, 0); \
- object.ce = ce; \
- object.guards = NULL; \
- }
-
-#endif
-
-
-#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION == 1 && PHP_RELEASE_VERSION > 2) || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5)
#define OBJECT_STD_DTOR(object) zend_object_std_dtor(&(object) TSRMLS_CC);
-#else
-#define OBJECT_STD_DTOR(object) \
- { \
- if(object.guards) { \
- zend_hash_destroy(object.guards); \
- FREE_HASHTABLE(object.guards); \
- } \
- if(object.properties) { \
- zend_hash_destroy(object.properties); \
- FREE_HASHTABLE(object.properties); \
- } \
- }
-#endif
-#if defined(PHP_VERSION_ID) && PHP_VERSION_ID >= 50400
#define ARG_PATH "p"
-#else
-#define ARG_PATH "s"
-#endif
-
-#if defined(PHP_VERSION_ID) && PHP_VERSION_ID >= 50300
-/* php_set_error_handling() is deprecated */
#define KRB5_SET_ERROR_HANDLING(type) zend_replace_error_handling(type, NULL, NULL TSRMLS_CC)
-#else
-#define KRB5_SET_ERROR_HANDLING(type) php_set_error_handling(type, NULL TSRMLS_CC)
-#endif
-
-/* For PHP < 5.3 */
-#ifndef zend_parse_parameters_none
-#define zend_parse_parameters_none() zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "")
-#endif
-
-/* For PHP < 5.3 */
-#ifndef PHP_FE_END
-#define PHP_FE_END {NULL, NULL, NULL}
-#endif
#endif
diff --git a/php_krb5_gssapi.h b/php_krb5_gssapi.h
index 0f26e10..7dbe8ab 100644
--- a/php_krb5_gssapi.h
+++ b/php_krb5_gssapi.h
@@ -54,13 +54,8 @@ int php_krb5_gssapi_register_classes(TSRMLS_D);
int php_krb5_gssapi_shutdown(TSRMLS_D);
-#if PHP_MAJOR_VERSION < 7
-extern void php_krb5_gssapi_context_object_dtor(void *obj, zend_object_handle handle TSRMLS_DC);
-zend_object_value php_krb5_gssapi_context_object_new(zend_class_entry *ce TSRMLS_DC);
-#else
extern void php_krb5_gssapi_context_object_free(zend_object *obj TSRMLS_DC);
zend_object *php_krb5_gssapi_context_object_new(zend_class_entry *ce TSRMLS_DC);
-#endif
#endif /* PHP_KRB5_GSSAPI_H */
diff --git a/php_krb5_kadm.h b/php_krb5_kadm.h
index 5f25ce1..233bd26 100644
--- a/php_krb5_kadm.h
+++ b/php_krb5_kadm.h
@@ -37,15 +37,10 @@
extern zend_class_entry *krb5_ce_kadm5;
typedef struct _krb5_kadm5_object {
-#if PHP_MAJOR_VERSION < 7
- zend_object std;
-#endif
void *handle;
krb5_context ctx;
kadm5_config_params config;
-#if PHP_MAJOR_VERSION >= 7
zend_object std;
-#endif
} krb5_kadm5_object;
void php_krb5_free_kadm5_object(krb5_kadm5_object *obj);
@@ -65,25 +60,16 @@
extern zend_class_entry *krb5_ce_kadm5_principal;
typedef struct _krb5_kadm5_principal_object {
-#if PHP_MAJOR_VERSION < 7
- zend_object std;
-#endif
int loaded;
long int update_mask;
kadm5_principal_ent_rec data;
krb5_kadm5_object *conn;
-#if PHP_MAJOR_VERSION >= 7
zend_object std;
-#endif
} krb5_kadm5_principal_object;
int php_krb5_register_kadm5_principal(TSRMLS_D);
-#if PHP_MAJOR_VERSION < 7
- zend_object_value php_krb5_kadm5_principal_object_new(zend_class_entry *ce TSRMLS_DC);
-#else
zend_object* php_krb5_kadm5_principal_object_new(zend_class_entry *ce TSRMLS_DC);
-#endif
PHP_METHOD(KADM5Principal, __construct);
PHP_METHOD(KADM5Principal, load);
@@ -129,26 +115,17 @@
extern zend_class_entry *krb5_ce_kadm5_policy;
typedef struct _krb5_kadm5_policy_object {
-#if PHP_MAJOR_VERSION < 7
- zend_object std;
-#endif
char *policy;
long int update_mask;
kadm5_policy_ent_rec data;
krb5_kadm5_object *conn;
-#if PHP_MAJOR_VERSION >= 7
zend_object std;
-#endif
} krb5_kadm5_policy_object;
int php_krb5_register_kadm5_policy(TSRMLS_D);
-#if PHP_MAJOR_VERSION < 7
- zend_object_value php_krb5_kadm5_policy_object_new(zend_class_entry *ce TSRMLS_DC);
-#else
zend_object* php_krb5_kadm5_policy_object_new(zend_class_entry *ce TSRMLS_DC);
-#endif
PHP_METHOD(KADM5Policy, __construct);
PHP_METHOD(KADM5Policy, __destruct);
@@ -182,21 +159,12 @@
extern zend_class_entry *krb5_ce_kadm5_tldata;
typedef struct _krb5_kadm5_tldata_object {
-#if PHP_MAJOR_VERSION < 7
- zend_object std;
-#endif
krb5_tl_data data;
-#if PHP_MAJOR_VERSION >= 7
zend_object std;
-#endif
} krb5_kadm5_tldata_object;
int php_krb5_register_kadm5_tldata(TSRMLS_D);
-#if PHP_MAJOR_VERSION < 7
- zend_object_value php_krb5_kadm5_tldata_object_new(zend_class_entry *ce TSRMLS_DC);
-#else
zend_object* php_krb5_kadm5_tldata_object_new(zend_class_entry *ce TSRMLS_DC);
-#endif
PHP_METHOD(KADM5TLData, __construct);
PHP_METHOD(KADM5TLData, getType);