From 1f11ef709a96c02d3c0bde8112e0190e6ee916dd Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Wed, 8 Apr 2009 12:19:13 +0000 Subject: [PATCH] Added ability to check build_id by extension --- Zend/zend_extensions.c | 3 ++- Zend/zend_extensions.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c index e20f1596fd..47f1ef5889 100644 --- a/Zend/zend_extensions.c +++ b/Zend/zend_extensions.c @@ -79,7 +79,8 @@ int zend_load_extension(const char *path) /* {{{ */ DL_UNLOAD(handle); return FAILURE; } - } else if (strcmp(ZEND_EXTENSION_BUILD_ID, extension_version_info->build_id)) { + } else if (strcmp(ZEND_EXTENSION_BUILD_ID, extension_version_info->build_id) && + (!new_extension->build_id_check || new_extension->build_id_check(ZEND_EXTENSION_BUILD_ID) != SUCCESS)) { fprintf(stderr, "Cannot load %s - it was build with configuration %s, whereas running engine is %s\n", new_extension->name, extension_version_info->build_id, ZEND_EXTENSION_BUILD_ID); DL_UNLOAD(handle); diff --git a/Zend/zend_extensions.h b/Zend/zend_extensions.h index a93d048965..84026b777b 100644 --- a/Zend/zend_extensions.h +++ b/Zend/zend_extensions.h @@ -81,7 +81,7 @@ struct _zend_extension { op_array_dtor_func_t op_array_dtor; int (*api_no_check)(int api_no); - void *reserved2; + int (*build_id_check)(const char* build_id); void *reserved3; void *reserved4; void *reserved5; -- 2.50.1