[pecl-authentication-krb5] master: Remove compiler macros for old PHP-versions

From: Date: Mon, 08 Jun 2026 15:49:45 +0000
Subject: [pecl-authentication-krb5] master: Remove compiler macros for old PHP-versions
Groups: php.pecl.cvs 
Request: Send a blank email to pecl-cvs+get-28561@lists.php.net to get a copy of this message
Author: Tim van Dijen (tvdijen) Pusher: mbechler Date: 2024-06-19T12:59:52+02:00 Commit: https://github.com/php/pecl-authentication-krb5/commit/132fb71adbd75d7f63c5b9324dbc642e7a18a024 Raw diff: https://github.com/php/pecl-authentication-krb5/commit/132fb71adbd75d7f63c5b9324dbc642e7a18a024.diff Remove compiler macros for old PHP-versions 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 b7703b0..eab9faa 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); @@ -238,7 +238,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); @@ -266,9 +266,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); @@ -282,5 +282,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 117dad9..61e270e 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() @@ -119,22 +109,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 /* }}} */ @@ -148,31 +128,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 - - 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; @@ -185,7 +140,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 /* }}} */ /* {{{ */ @@ -196,10 +150,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; } @@ -339,11 +291,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) { @@ -357,14 +305,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}; @@ -461,16 +402,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 4938198..0ec96d2 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(&copy); - 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(&copy); - 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);

« previous php.pecl.cvs (#28561) next »