cvs: ZendEngine2 / zend_extensions.c zend_extensions.h

[email protected] ("Dmitry Stogov") Wed, 08 Apr 2009 12:19:13 -0000
Newsgroups php.zend-engine.cvs
Message-ID <cvsdmitry1239193153@cvsserver>
dmitry		Wed Apr  8 12:19:13 2009 UTC

  Modified files:              
    /ZendEngine2	zend_extensions.c zend_extensions.h 
  Log:
  Added ability to check build_id by extension
  
  
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_extensions.c?r1=1.58&r2=1.59&diff_format=u
Index: ZendEngine2/zend_extensions.c
diff -u ZendEngine2/zend_extensions.c:1.58 ZendEngine2/zend_extensions.c:1.59
--- ZendEngine2/zend_extensions.c:1.58	Sat Jan 17 02:07:46 2009
+++ ZendEngine2/zend_extensions.c	Wed Apr  8 12:19:13 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_extensions.c,v 1.58 2009/01/17 02:07:46 stas Exp $ */
+/* $Id: zend_extensions.c,v 1.59 2009/04/08 12:19:13 dmitry Exp $ */
 
 #include "zend_extensions.h"
 
@@ -79,7 +79,8 @@
 			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);
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_extensions.h?r1=1.81&r2=1.82&diff_format=u
Index: ZendEngine2/zend_extensions.h
diff -u ZendEngine2/zend_extensions.h:1.81 ZendEngine2/zend_extensions.h:1.82
--- ZendEngine2/zend_extensions.h:1.81	Sat Jan 17 18:25:15 2009
+++ ZendEngine2/zend_extensions.h	Wed Apr  8 12:19:13 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_extensions.h,v 1.81 2009/01/17 18:25:15 felipe Exp $ */
+/* $Id: zend_extensions.h,v 1.82 2009/04/08 12:19:13 dmitry Exp $ */
 
 #ifndef ZEND_EXTENSIONS_H
 #define ZEND_EXTENSIONS_H
@@ -81,7 +81,7 @@
 	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;