rrichards               Tue Jun 23 10:50:09 2009 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src/ext/libxml libxml.c 
  Log:
  MFH: add libxml_disable_entity_loader function
  
http://cvs.php.net/viewvc.cgi/php-src/ext/libxml/libxml.c?r1=1.32.2.7.2.15.2.11&r2=1.32.2.7.2.15.2.12&diff_format=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.32.2.7.2.15.2.11 
php-src/ext/libxml/libxml.c:1.32.2.7.2.15.2.12
--- php-src/ext/libxml/libxml.c:1.32.2.7.2.15.2.11      Sat Mar 14 17:30:28 2009
+++ php-src/ext/libxml/libxml.c Tue Jun 23 10:50:09 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: libxml.c,v 1.32.2.7.2.15.2.11 2009/03/14 17:30:28 rrichards Exp $ */
+/* $Id: libxml.c,v 1.32.2.7.2.15.2.12 2009/06/23 10:50:09 rrichards Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -68,6 +68,7 @@
 static PHP_FUNCTION(libxml_get_last_error);
 static PHP_FUNCTION(libxml_clear_errors);
 static PHP_FUNCTION(libxml_get_errors);
+static PHP_FUNCTION(libxml_disable_entity_loader);
 
 static zend_class_entry *libxmlerror_class_entry;
 
@@ -104,6 +105,10 @@
 ZEND_BEGIN_ARG_INFO(arginfo_libxml_clear_errors, 0)
 ZEND_END_ARG_INFO()
 
+ZEND_BEGIN_ARG_INFO(arginfo_libxml_disable_entity_loader, 0)
+       ZEND_ARG_INFO(0, disable)
+ZEND_END_ARG_INFO()
+
 /* }}} */
 
 /* {{{ extension definition structures */
@@ -113,6 +118,7 @@
        PHP_FE(libxml_get_last_error, arginfo_libxml_get_last_error)
        PHP_FE(libxml_clear_errors, arginfo_libxml_clear_errors)
        PHP_FE(libxml_get_errors, arginfo_libxml_get_errors)
+       PHP_FE(libxml_disable_entity_loader, 
arginfo_libxml_disable_entity_loader)
        {NULL, NULL, NULL}
 };
 
@@ -344,6 +350,12 @@
 }
 
 static xmlParserInputBufferPtr
+php_libxml_input_buffer_noload(const char *URI, xmlCharEncoding enc)
+{
+       return NULL;
+}
+
+static xmlParserInputBufferPtr
 php_libxml_input_buffer_create_filename(const char *URI, xmlCharEncoding enc)
 {
        xmlParserInputBufferPtr ret;
@@ -820,6 +832,31 @@
 }
 /* }}} */
 
+/* {{{ proto bool libxml_disable_entity_loader([boolean disable]) 
+   Disable/Enable ability to load external entities */
+static PHP_FUNCTION(libxml_disable_entity_loader)
+{
+       zend_bool disable = 1;
+       xmlParserInputBufferCreateFilenameFunc old;
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &disable) == 
FAILURE) {
+               return;
+       }
+
+       if (disable == 0) {
+               old = 
xmlParserInputBufferCreateFilenameDefault(php_libxml_input_buffer_create_filename);
+       } else {
+               old = 
xmlParserInputBufferCreateFilenameDefault(php_libxml_input_buffer_noload);
+       }
+
+       if (old == php_libxml_input_buffer_noload) {
+               RETURN_TRUE;
+       }
+
+       RETURN_FALSE;
+}
+/* }}} */
+
 /* {{{ Common functions shared by extensions */
 int php_libxml_xmlCheckUTF8(const unsigned char *s)
 {



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to