From: Dmitry Stogov Date: Wed, 8 Apr 2009 12:19:01 +0000 (+0000) Subject: Added ability to check build_id by extension X-Git-Tag: php-5.3.0RC2~196 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7a1cca3f0850cadb197d12a3178e9cf76d9cb833;p=php Added ability to check build_id by extension --- diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c index d0a0087c1a..f4b5b6d8bf 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 f1a7af2358..5d84647bd4 100644 --- a/Zend/zend_extensions.h +++ b/Zend/zend_extensions.h @@ -80,7 +80,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;