Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:61846 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 76108 invoked from network); 27 Jul 2012 22:57:17 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 27 Jul 2012 22:57:17 -0000 Authentication-Results: pb1.pair.com header.from=ezyang@MIT.EDU; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=ezyang@mit.edu; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain mit.edu designates 18.7.68.37 as permitted sender) X-PHP-List-Original-Sender: ezyang@mit.edu X-Host-Fingerprint: 18.7.68.37 DMZ-MAILSEC-SCANNER-8.MIT.EDU Linux 2.6 Received: from [18.7.68.37] ([18.7.68.37:60304] helo=dmz-mailsec-scanner-8.mit.edu) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id A4/B1-14209-BCC13105 for ; Fri, 27 Jul 2012 18:57:16 -0400 X-AuditID: 12074425-b7f9b6d0000008c4-13-50131cc9e20d Received: from mailhub-auth-3.mit.edu ( [18.9.21.43]) by dmz-mailsec-scanner-8.mit.edu (Symantec Messaging Gateway) with SMTP id BF.2C.02244.9CC13105; Fri, 27 Jul 2012 18:57:13 -0400 (EDT) Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103]) by mailhub-auth-3.mit.edu (8.13.8/8.9.2) with ESMTP id q6RMvDeL021310; Fri, 27 Jul 2012 18:57:13 -0400 Received: from localhost (c-67-186-133-183.hsd1.ma.comcast.net [67.186.133.183]) (authenticated bits=0) (User authenticated as ezyang@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id q6RMvBlI006878; Fri, 27 Jul 2012 18:57:12 -0400 (EDT) To: internals@lists.php.net Cc: rasmus@lerdorf.com, "Edward Z. Yang" Date: Fri, 27 Jul 2012 18:57:05 -0400 Message-ID: <1343429825-12031-1-git-send-email-ezyang@mit.edu> X-Mailer: git-send-email 1.7.11.3 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrCIsWRmVeSWpSXmKPExsUixCmqrXtSRjjAYPlqYYsDb7exWaxcvYTd gcmj93Cqx5N1a1gCmKK4bFJSczLLUov07RK4Mv4/m8xc8IGn4tvMv8wNjD+4uhg5OSQETCSW rJjDDmGLSVy4t56ti5GLQ0hgH6NEw7uVzBDOBkaJU03XWSCcHiaJzQ93MYG0sAmoSzw69pQV xBYRkJb42vEMzGYWsJTo+7EGrEZYwFPixo6vYCtYBFQlNm/oZASxeQXsJCZ/38sCsVpR4sf3 NcwTGHkWMDKsYpRNya3SzU3MzClOTdYtTk7My0st0rXQy80s0UtNKd3ECAoAdhfVHYwTDikd YhTgYFTi4T11RShAiDWxrLgy9xCjJAeTkijvWjHhACG+pPyUyozE4oz4otKc1OJDjBIczEoi vDsFgXK8KYmVValF+TApaQ4WJXHeGyk3/YUE0hNLUrNTUwtSi2CyMhwcShK8YsBAFxIsSk1P rUjLzClBSDNxcIIM5wEargpSw1tckJhbnJkOkT/FqMuxec7T24xCLHn5ealS4rxmIEUCIEUZ pXlwc2CR+4pRHOgtYV5nkCoeYNTDTXoFtIQJaIlFtBDIkpJEhJRUA2OM0zm+QwGqihcOJT9Y qpOX+ONe+qm/RZtFb7hd2BoruUeyRE54vbMT1zvtE0c5H2ksK65eKDzXs/qo1e95Zx/z6kQv rXAQz/SK8po9a2bkg9i3k7bEn3kxIWPOFK5z6Q9u7Ht7XVzr6SrO2ILu+w/frEv69mTrqtC/ 9tMMbNQC2/beb3Uxct+sxFKckWioxVxUnAgAUzY1drcCAAA= Subject: [PATCH] Enable extension loading from .user.ini when run as CGI. From: ezyang@MIT.EDU ("Edward Z. Yang") From: "Edward Z. Yang" Functionality is not included for other SAPIs because they either do not support .user.ini (e.g. CLI) or they serve multiple requests and thus do not support dl() (e.g. FastCGI). There is also a bugfix to invoke zlist_clean, to ensure extension_lists can be reused for the second round of extension appliations (since the head and tail pointers have garbage in them). Signed-off-by: Edward Z. Yang --- main/php_ini.c | 4 ++-- sapi/cgi/cgi_main.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/main/php_ini.c b/main/php_ini.c index 89a3d7e..1fde28e 100644 --- a/main/php_ini.c +++ b/main/php_ini.c @@ -709,8 +709,8 @@ void php_ini_register_extensions(TSRMLS_D) zend_llist_apply(&extension_lists.engine, php_load_zend_extension_cb TSRMLS_CC); zend_llist_apply(&extension_lists.functions, php_load_php_extension_cb TSRMLS_CC); - zend_llist_destroy(&extension_lists.engine); - zend_llist_destroy(&extension_lists.functions); + zend_llist_clean(&extension_lists.engine); + zend_llist_clean(&extension_lists.functions); } /* }}} */ diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c index 7856e0c..d944f3a 100644 --- a/sapi/cgi/cgi_main.c +++ b/sapi/cgi/cgi_main.c @@ -818,6 +818,7 @@ static void php_cgi_ini_activate_user_config(char *path, int path_len, const cha /* Activate ini entries with values from the user config hash */ php_ini_activate_config(entry->user_config, PHP_INI_PERDIR, PHP_INI_STAGE_HTACCESS TSRMLS_CC); + php_ini_register_extensions(TSRMLS_CC); } /* }}} */ -- 1.7.11.3