#49686 [NEW]: SPL as a shared ext: run-time check for SPL instead of compile-time

2009-09-27 Thread galaxy4public+php at gmail dot com
From: galaxy4public+php at gmail dot com
Operating system: Linux
PHP version:  5.2.11
PHP Bug Type: Dynamic loading
Bug description:  SPL as a shared ext: run-time check for SPL instead of 
compile-time

Description:

The attached patch introduces a run-time check for the SPL extension
instead of the compile-time one.  This allows to build SPL as a shared
extension (the corresponding changes to config.m4 are included in the patch
as well).

This work was sponsored by the WebEnabled (http://webenabled.com)
project.

Since there is no way to attach patches to bug reports I'm including it
below:
===
--- php-5.2.5.orig/ext/spl/config.m42006-12-04 18:01:53 +
+++ php-5.2.5/ext/spl/config.m4 2008-04-07 05:53:55 +
@@ -26,7 +26,7 @@
   CPPFLAGS=$old_CPPFLAGS
   AC_DEFINE_UNQUOTED(HAVE_PACKED_OBJECT_VALUE, $ac_result, [Whether
struct _zend_object_value is packed])
   AC_DEFINE(HAVE_SPL, 1, [Whether you want SPL (Standard PHP Library)
support])
-  PHP_NEW_EXTENSION(spl, php_spl.c spl_functions.c spl_engine.c
spl_iterators.c spl_array.c spl_directory.c spl_sxe.c spl_exceptions.c
spl_observer.c, no)
+  PHP_NEW_EXTENSION(spl, [php_spl.c spl_functions.c spl_engine.c
spl_iterators.c spl_array.c spl_directory.c spl_sxe.c spl_exceptions.c
spl_observer.c], $ext_shared)
   PHP_INSTALL_HEADERS([ext/spl], [php_spl.h spl_array.h spl_directory.h
spl_engine.h spl_exceptions.h spl_functions.h spl_iterators.h
spl_observer.h spl_sxe.h])
   PHP_ADD_EXTENSION_DEP(spl, pcre, true)
 fi
--- php-5.2.11.orig/ext/standard/array.c2009-08-14 06:18:47 +
+++ php-5.2.11/ext/standard/array.c 2009-09-27 08:46:42 +
@@ -324,20 +324,22 @@ PHP_FUNCTION(count)
RETURN_LONG (php_count_recursive (array, mode
TSRMLS_CC));
break;
case IS_OBJECT: {
-#ifdef HAVE_SPL
-   /* it the object implements Countable we call its
count() method */
-   zval *retval;
-
-   if (Z_OBJ_HT_P(array)->get_class_entry &&
instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) {
-   zend_call_method_with_0_params(&array,
NULL, NULL, "count", &retval);
-   if (retval) {
-   convert_to_long_ex(&retval);
-   RETVAL_LONG(Z_LVAL_P(retval));
-   zval_ptr_dtor(&retval);
+   zend_class_entry **pce;
+   /* check whether the SPL extension available or
not */
+   if (zend_hash_find(EG(class_table), "countable",
sizeof("Countable"), (void **) &pce) == SUCCESS) {
+   /* if the object implements Countable we
call its count() method */
+   zval *retval;
+   if (Z_OBJ_HT_P(array)->get_class_entry &&
instanceof_function(Z_OBJCE_P(array), *pce TSRMLS_CC)) {
+  
zend_call_method_with_0_params(&array, NULL, NULL, "count", &retval);
+   if (retval) {
+  
convert_to_long_ex(&retval);
+  
RETVAL_LONG(Z_LVAL_P(retval));
+   zval_ptr_dtor(&retval);
+   }
+   return;
}
-   return;
}
-#endif
+
/* if not we return the number of properties (not
taking visibility into account) */
if (Z_OBJ_HT_P(array)->count_elements) {
RETVAL_LONG(1);
===


-- 
Edit bug report at http://bugs.php.net/?id=49686&edit=1
-- 
Try a snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=49686&r=trysnapshot52
Try a snapshot (PHP 5.3):
http://bugs.php.net/fix.php?id=49686&r=trysnapshot53
Try a snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=49686&r=trysnapshot60
Fixed in SVN:
http://bugs.php.net/fix.php?id=49686&r=fixed
Fixed in SVN and need be documented: 
http://bugs.php.net/fix.php?id=49686&r=needdocs
Fixed in release:
http://bugs.php.net/fix.php?id=49686&r=alreadyfixed
Need backtrace:  
http://bugs.php.net/fix.php?id=49686&r=needtrace
Need Reproduce Script:   
http://bugs.php.net/fix.php?id=49686&r=needscript
Try newer version:   
http://bugs.php.net/fix.php?id=49686&r=oldversion
Not developer issue: 
http://bugs.php.net/fix.php?id=49686&r=support
Expected behavior:   
http

#49686 [Opn]: SPL as a shared ext: run-time check for SPL instead of compile-time

2009-09-27 Thread galaxy4public+php at gmail dot com
 ID:   49686
 User updated by:  galaxy4public+php at gmail dot com
 Reported By:  galaxy4public+php at gmail dot com
 Status:   Open
 Bug Type: Dynamic loading
 Operating System: Linux
 PHP Version:  5.2.11
 New Comment:

Since the patch was broken by line-wrapping I've uploaded it here:
ftp://ftp.ru.openwall.com/pvt/galaxy/php-spl-shared/php-5.2.11-gm-spl-shared.diff


Previous Comments:


[2009-09-27 10:26:04] galaxy4public+php at gmail dot com

Description:

The attached patch introduces a run-time check for the SPL extension
instead of the compile-time one.  This allows to build SPL as a shared
extension (the corresponding changes to config.m4 are included in the
patch as well).

This work was sponsored by the WebEnabled (http://webenabled.com)
project.

Since there is no way to attach patches to bug reports I'm including it
below:
===
--- php-5.2.5.orig/ext/spl/config.m42006-12-04 18:01:53 +
+++ php-5.2.5/ext/spl/config.m4 2008-04-07 05:53:55 +
@@ -26,7 +26,7 @@
   CPPFLAGS=$old_CPPFLAGS
   AC_DEFINE_UNQUOTED(HAVE_PACKED_OBJECT_VALUE, $ac_result, [Whether
struct _zend_object_value is packed])
   AC_DEFINE(HAVE_SPL, 1, [Whether you want SPL (Standard PHP Library)
support])
-  PHP_NEW_EXTENSION(spl, php_spl.c spl_functions.c spl_engine.c
spl_iterators.c spl_array.c spl_directory.c spl_sxe.c spl_exceptions.c
spl_observer.c, no)
+  PHP_NEW_EXTENSION(spl, [php_spl.c spl_functions.c spl_engine.c
spl_iterators.c spl_array.c spl_directory.c spl_sxe.c spl_exceptions.c
spl_observer.c], $ext_shared)
   PHP_INSTALL_HEADERS([ext/spl], [php_spl.h spl_array.h
spl_directory.h spl_engine.h spl_exceptions.h spl_functions.h
spl_iterators.h spl_observer.h spl_sxe.h])
   PHP_ADD_EXTENSION_DEP(spl, pcre, true)
 fi
--- php-5.2.11.orig/ext/standard/array.c2009-08-14 06:18:47
+
+++ php-5.2.11/ext/standard/array.c 2009-09-27 08:46:42 +
@@ -324,20 +324,22 @@ PHP_FUNCTION(count)
RETURN_LONG (php_count_recursive (array, mode
TSRMLS_CC));
break;
case IS_OBJECT: {
-#ifdef HAVE_SPL
-   /* it the object implements Countable we call
its count() method */
-   zval *retval;
-
-   if (Z_OBJ_HT_P(array)->get_class_entry &&
instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) {
-   zend_call_method_with_0_params(&array,
NULL, NULL, "count", &retval);
-   if (retval) {
-   convert_to_long_ex(&retval);
-   RETVAL_LONG(Z_LVAL_P(retval));
-   zval_ptr_dtor(&retval);
+   zend_class_entry **pce;
+   /* check whether the SPL extension available or
not */
+   if (zend_hash_find(EG(class_table),
"countable", sizeof("Countable"), (void **) &pce) == SUCCESS) {
+   /* if the object implements Countable
we call its count() method */
+   zval *retval;
+   if (Z_OBJ_HT_P(array)->get_class_entry
&& instanceof_function(Z_OBJCE_P(array), *pce TSRMLS_CC)) {
+  
zend_call_method_with_0_params(&array, NULL, NULL, "count", &retval);
+   if (retval) {
+  
convert_to_long_ex(&retval);
+  
RETVAL_LONG(Z_LVAL_P(retval));
+  
zval_ptr_dtor(&retval);
+   }
+   return;
}
-   return;
}
-#endif
+
/* if not we return the number of properties
(not taking visibility into account) */
if (Z_OBJ_HT_P(array)->count_elements) {
RETVAL_LONG(1);
===






-- 
Edit this bug report at http://bugs.php.net/?id=49686&edit=1



#49686 [Opn]: SPL as a shared ext: run-time check for SPL instead of compile-time

2009-09-27 Thread galaxy4public+php at gmail dot com
 ID:   49686
 User updated by:  galaxy4public+php at gmail dot com
 Reported By:  galaxy4public+php at gmail dot com
 Status:   Open
 Bug Type: Dynamic loading
 Operating System: Linux
 PHP Version:  5.2.11
 New Comment:

Ouch, this line-wrapping feature really hurts! :(  In the comment above
the link should be manually concatenated to get a correct URL.


Previous Comments:


[2009-09-27 10:34:46] galaxy4public+php at gmail dot com

Since the patch was broken by line-wrapping I've uploaded it here:
ftp://ftp.ru.openwall.com/pvt/galaxy/php-spl-shared/php-5.2.11-gm-spl-shared.diff



[2009-09-27 10:26:04] galaxy4public+php at gmail dot com

Description:

The attached patch introduces a run-time check for the SPL extension
instead of the compile-time one.  This allows to build SPL as a shared
extension (the corresponding changes to config.m4 are included in the
patch as well).

This work was sponsored by the WebEnabled (http://webenabled.com)
project.

Since there is no way to attach patches to bug reports I'm including it
below:
===
--- php-5.2.5.orig/ext/spl/config.m42006-12-04 18:01:53 +
+++ php-5.2.5/ext/spl/config.m4 2008-04-07 05:53:55 +
@@ -26,7 +26,7 @@
   CPPFLAGS=$old_CPPFLAGS
   AC_DEFINE_UNQUOTED(HAVE_PACKED_OBJECT_VALUE, $ac_result, [Whether
struct _zend_object_value is packed])
   AC_DEFINE(HAVE_SPL, 1, [Whether you want SPL (Standard PHP Library)
support])
-  PHP_NEW_EXTENSION(spl, php_spl.c spl_functions.c spl_engine.c
spl_iterators.c spl_array.c spl_directory.c spl_sxe.c spl_exceptions.c
spl_observer.c, no)
+  PHP_NEW_EXTENSION(spl, [php_spl.c spl_functions.c spl_engine.c
spl_iterators.c spl_array.c spl_directory.c spl_sxe.c spl_exceptions.c
spl_observer.c], $ext_shared)
   PHP_INSTALL_HEADERS([ext/spl], [php_spl.h spl_array.h
spl_directory.h spl_engine.h spl_exceptions.h spl_functions.h
spl_iterators.h spl_observer.h spl_sxe.h])
   PHP_ADD_EXTENSION_DEP(spl, pcre, true)
 fi
--- php-5.2.11.orig/ext/standard/array.c2009-08-14 06:18:47
+
+++ php-5.2.11/ext/standard/array.c 2009-09-27 08:46:42 +
@@ -324,20 +324,22 @@ PHP_FUNCTION(count)
RETURN_LONG (php_count_recursive (array, mode
TSRMLS_CC));
break;
case IS_OBJECT: {
-#ifdef HAVE_SPL
-   /* it the object implements Countable we call
its count() method */
-   zval *retval;
-
-   if (Z_OBJ_HT_P(array)->get_class_entry &&
instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) {
-   zend_call_method_with_0_params(&array,
NULL, NULL, "count", &retval);
-   if (retval) {
-   convert_to_long_ex(&retval);
-   RETVAL_LONG(Z_LVAL_P(retval));
-   zval_ptr_dtor(&retval);
+   zend_class_entry **pce;
+   /* check whether the SPL extension available or
not */
+   if (zend_hash_find(EG(class_table),
"countable", sizeof("Countable"), (void **) &pce) == SUCCESS) {
+   /* if the object implements Countable
we call its count() method */
+   zval *retval;
+   if (Z_OBJ_HT_P(array)->get_class_entry
&& instanceof_function(Z_OBJCE_P(array), *pce TSRMLS_CC)) {
+  
zend_call_method_with_0_params(&array, NULL, NULL, "count", &retval);
+   if (retval) {
+  
convert_to_long_ex(&retval);
+  
RETVAL_LONG(Z_LVAL_P(retval));
+  
zval_ptr_dtor(&retval);
+   }
+   return;
}
-   return;
}
-#endif
+
/* if not we return the number of properties
(not taking visibility into account) */
if (Z_OBJ_HT_P(array)->count_elements) {
RETVAL_LONG(1);
===






-- 
Edit this bug report at http://bugs.php.net/?id=49686&edit=1



#49686 [Opn]: SPL as a shared ext: run-time check for SPL instead of compile-time

2009-09-27 Thread galaxy4public+php at gmail dot com
 ID:   49686
 User updated by:  galaxy4public+php at gmail dot com
 Reported By:  galaxy4public+php at gmail dot com
 Status:   Open
 Bug Type: Dynamic loading
 Operating System: Linux
 PHP Version:  5.2.11
 New Comment:

Well, I made the directory world-readable:

ftp://ftp.ru.openwall.com/pvt/galaxy/php-spl-shared/

I'll place any updates to the patch there (if there are any).


Previous Comments:


[2009-09-27 10:37:23] galaxy4public+php at gmail dot com

Ouch, this line-wrapping feature really hurts! :(  In the comment above
the link should be manually concatenated to get a correct URL.



[2009-09-27 10:34:46] galaxy4public+php at gmail dot com

Since the patch was broken by line-wrapping I've uploaded it here:
ftp://ftp.ru.openwall.com/pvt/galaxy/php-spl-shared/php-5.2.11-gm-spl-shared.diff



[2009-09-27 10:26:04] galaxy4public+php at gmail dot com

Description:

The attached patch introduces a run-time check for the SPL extension
instead of the compile-time one.  This allows to build SPL as a shared
extension (the corresponding changes to config.m4 are included in the
patch as well).

This work was sponsored by the WebEnabled (http://webenabled.com)
project.

Since there is no way to attach patches to bug reports I'm including it
below:
===
--- php-5.2.5.orig/ext/spl/config.m42006-12-04 18:01:53 +
+++ php-5.2.5/ext/spl/config.m4 2008-04-07 05:53:55 +
@@ -26,7 +26,7 @@
   CPPFLAGS=$old_CPPFLAGS
   AC_DEFINE_UNQUOTED(HAVE_PACKED_OBJECT_VALUE, $ac_result, [Whether
struct _zend_object_value is packed])
   AC_DEFINE(HAVE_SPL, 1, [Whether you want SPL (Standard PHP Library)
support])
-  PHP_NEW_EXTENSION(spl, php_spl.c spl_functions.c spl_engine.c
spl_iterators.c spl_array.c spl_directory.c spl_sxe.c spl_exceptions.c
spl_observer.c, no)
+  PHP_NEW_EXTENSION(spl, [php_spl.c spl_functions.c spl_engine.c
spl_iterators.c spl_array.c spl_directory.c spl_sxe.c spl_exceptions.c
spl_observer.c], $ext_shared)
   PHP_INSTALL_HEADERS([ext/spl], [php_spl.h spl_array.h
spl_directory.h spl_engine.h spl_exceptions.h spl_functions.h
spl_iterators.h spl_observer.h spl_sxe.h])
   PHP_ADD_EXTENSION_DEP(spl, pcre, true)
 fi
--- php-5.2.11.orig/ext/standard/array.c2009-08-14 06:18:47
+
+++ php-5.2.11/ext/standard/array.c 2009-09-27 08:46:42 +
@@ -324,20 +324,22 @@ PHP_FUNCTION(count)
RETURN_LONG (php_count_recursive (array, mode
TSRMLS_CC));
break;
case IS_OBJECT: {
-#ifdef HAVE_SPL
-   /* it the object implements Countable we call
its count() method */
-   zval *retval;
-
-   if (Z_OBJ_HT_P(array)->get_class_entry &&
instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) {
-   zend_call_method_with_0_params(&array,
NULL, NULL, "count", &retval);
-   if (retval) {
-   convert_to_long_ex(&retval);
-   RETVAL_LONG(Z_LVAL_P(retval));
-   zval_ptr_dtor(&retval);
+   zend_class_entry **pce;
+   /* check whether the SPL extension available or
not */
+   if (zend_hash_find(EG(class_table),
"countable", sizeof("Countable"), (void **) &pce) == SUCCESS) {
+   /* if the object implements Countable
we call its count() method */
+   zval *retval;
+   if (Z_OBJ_HT_P(array)->get_class_entry
&& instanceof_function(Z_OBJCE_P(array), *pce TSRMLS_CC)) {
+  
zend_call_method_with_0_params(&array, NULL, NULL, "count", &retval);
+   if (retval) {
+  
convert_to_long_ex(&retval);
+  
RETVAL_LONG(Z_LVAL_P(retval));
+  
zval_ptr_dtor(&retval);
+   }
+   return;
}
-   return;
}
-#endif
+
/* if not we return the number of properties
(not taking visibility into account) */
if (Z_OBJ_HT_P(array)->count_elements) {
RETVAL_LONG(1);
===






-- 
Edit this bug report at http://bugs.php.net/?id=49686&edit=1



#49686 [WFx]: SPL as a shared ext: run-time check for SPL instead of compile-time

2009-09-27 Thread galaxy4public+php at gmail dot com
 ID:   49686
 User updated by:  galaxy4public+php at gmail dot com
 Reported By:  galaxy4public+php at gmail dot com
 Status:   Wont fix
 Bug Type: Feature/Change Request
 Operating System: Linux
-PHP Version:  5.2.11
+PHP Version:  5.3.0
 New Comment:

Actually the patch changes 2 lines in ext/array.c and makes it possible
to build SPL as a shared extension (all other code is already in place).
 In 5.3.0 somebody removed a couple of configuration lines from
ext/spl/config.m4 and made it impossible to configure SPL with the
configure script.  I believe that this was done due to the fact that
calls to SPL are all hardcoded dependencies.

Frankly, I don't understand why hardcode things when the mechanism for
dynamic loading is already here.

Instead of unconditionally rely on things like:
===
if (Z_OBJ_HT_P(array)->get_class_entry &&
instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) {
===

why don't you use something like:
===
if (zend_hash_find(EG(class_table), "countable", sizeof("Countable"),
(void **) &pce) == SUCCESS) {
if (Z_OBJ_HT_P(array)->get_class_entry &&
instanceof_function(Z_OBJCE_P(array), *pce TSRMLS_CC)) {
===

Then, you can:

a) drop '#ifdef HAVE_SPL' around this blocks, since they will no longer
strictly depend on SPL;
b) it will be possible to build/load SPL dynamically (with no or little
effort)

Otherwise, what's the point of having "extensions" if they aren't
extensions but an integral part of the interpreter and can't be loaded
dynamically?

What really missing in PHP is a good extension dependency mechanism
(and, perhaps, auto extension loading), IMHO.


Previous Comments:


[2009-09-27 19:57:39] paj...@php.net

I think we can safely reject the patch. Unless someone has a strong
argument to allow 5.2.12 to do not be forward compatible in some install
(as in not having spl enabled :).



[2009-09-27 19:35:27] scott...@php.net

SPL is force enabled with PHP 5.3+ as static, so this patch really only
applies to 5.2 and I'm not sure if we're still open for new features.

--------------------

[2009-09-27 11:23:04] galaxy4public+php at gmail dot com

Well, I made the directory world-readable:

ftp://ftp.ru.openwall.com/pvt/galaxy/php-spl-shared/

I'll place any updates to the patch there (if there are any).

--------------------

[2009-09-27 10:37:23] galaxy4public+php at gmail dot com

Ouch, this line-wrapping feature really hurts! :(  In the comment above
the link should be manually concatenated to get a correct URL.

--------------------

[2009-09-27 10:34:46] galaxy4public+php at gmail dot com

Since the patch was broken by line-wrapping I've uploaded it here:
ftp://ftp.ru.openwall.com/pvt/galaxy/php-spl-shared/php-5.2.11-gm-spl-shared.diff



The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/49686

-- 
Edit this bug report at http://bugs.php.net/?id=49686&edit=1



#49686 [WFx]: SPL as a shared ext: run-time check for SPL instead of compile-time

2009-09-27 Thread galaxy4public+php at gmail dot com
 ID:   49686
 User updated by:  galaxy4public+php at gmail dot com
 Reported By:  galaxy4public+php at gmail dot com
 Status:   Wont fix
 Bug Type: Feature/Change Request
 Operating System: Linux
 PHP Version:  5.3.0
 New Comment:

What really concerns me in regard to SPL as a static extension is that
many other extensions depends on it.  For instance, with SPL statically
linked into PHP it's not possible to build the PCRE extension as shared,
and there more extensions which could have been dynamically built if SPL
was allowed to be "shared".

Consider the following scenario (we are currently running on our
servers):  we have a shared hosting environment with hundreds of virtual
hosts and each additional unneeded extension consumes server's memory,
hence we provide a very basic PHP interpreter with no extensions loaded.
 Then, users can load needed extensions vi their local php.ini or using
dl().

That's why I'm trying to convince you that making "extensions" to be
really extensions (i.e. dynamically loaded parts) is quite important.


Previous Comments:
----

[2009-09-28 03:05:13] galaxy4public+php at gmail dot com

Actually the patch changes 2 lines in ext/array.c and makes it possible
to build SPL as a shared extension (all other code is already in place).
 In 5.3.0 somebody removed a couple of configuration lines from
ext/spl/config.m4 and made it impossible to configure SPL with the
configure script.  I believe that this was done due to the fact that
calls to SPL are all hardcoded dependencies.

Frankly, I don't understand why hardcode things when the mechanism for
dynamic loading is already here.

Instead of unconditionally rely on things like:
===
if (Z_OBJ_HT_P(array)->get_class_entry &&
instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) {
===

why don't you use something like:
===
if (zend_hash_find(EG(class_table), "countable", sizeof("Countable"),
(void **) &pce) == SUCCESS) {
if (Z_OBJ_HT_P(array)->get_class_entry &&
instanceof_function(Z_OBJCE_P(array), *pce TSRMLS_CC)) {
===

Then, you can:

a) drop '#ifdef HAVE_SPL' around this blocks, since they will no longer
strictly depend on SPL;
b) it will be possible to build/load SPL dynamically (with no or little
effort)

Otherwise, what's the point of having "extensions" if they aren't
extensions but an integral part of the interpreter and can't be loaded
dynamically?

What really missing in PHP is a good extension dependency mechanism
(and, perhaps, auto extension loading), IMHO.



[2009-09-27 19:57:39] paj...@php.net

I think we can safely reject the patch. Unless someone has a strong
argument to allow 5.2.12 to do not be forward compatible in some install
(as in not having spl enabled :).



[2009-09-27 19:35:27] scott...@php.net

SPL is force enabled with PHP 5.3+ as static, so this patch really only
applies to 5.2 and I'm not sure if we're still open for new features.



[2009-09-27 11:23:04] galaxy4public+php at gmail dot com

Well, I made the directory world-readable:

ftp://ftp.ru.openwall.com/pvt/galaxy/php-spl-shared/

I'll place any updates to the patch there (if there are any).



[2009-09-27 10:37:23] galaxy4public+php at gmail dot com

Ouch, this line-wrapping feature really hurts! :(  In the comment above
the link should be manually concatenated to get a correct URL.



The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/49686

-- 
Edit this bug report at http://bugs.php.net/?id=49686&edit=1



Bug #33770 [Com]: https:// or ftps:// do not work when --with-curlwrappers is used

2011-06-02 Thread galaxy4public+php at gmail dot com
Edit report at http://bugs.php.net/bug.php?id=33770&edit=1

 ID: 33770
 Comment by: galaxy4public+php at gmail dot com
 Reported by:subscription at nazarenko dot net
 Summary:https:// or ftps:// do not work when
 --with-curlwrappers is used
 Status: Closed
 Type:   Bug
 Package:cURL related
 Operating System:   Linux OpenSUSE 10.1
 PHP Version:5CVS-2006-06-26 (snap)
 Assigned To:iliaa
 Block user comment: N
 Private report: N

 New Comment:

The bug is still here.  I've reproduced it with PHP 5.2.17 which was built with 

the following options:



System => Linux he251.vps.webenabled.net 2.6.18-238.5.1.el5.028stab085.2.owl2 
#1 

SMP Sat Mar 12 19:50:32 MSK 2011 i686

Build Date => Apr 25 2011 08:06:28

Configure Command =>  './configure'  '--host=i686-openwall-linux-gnu'

'--build=i686-openwall-linux-gnu'

'--target=i686-openwall-linux'

'--program-prefix='

'--prefix=/opt/php/5.2.17-owlx0'

'--exec-prefix=/opt/php/5.2.17-owlx0'

'--bindir=/opt/php/5.2.17-owlx0/bin'

'--sbindir=/opt/php/5.2.17-owlx0/sbin'

'--sysconfdir=/opt/php/5.2.17-owlx0/etc'

'--datadir=/opt/php/5.2.17-owlx0/share'

'--includedir=/opt/php/5.2.17-owlx0/include'

'--libdir=/opt/php/5.2.17-owlx0/lib'

'--libexecdir=/opt/php/5.2.17-owlx0/libexec'

'--localstatedir=/opt/php/5.2.17-owlx0/var'

'--sharedstatedir=/opt/php/5.2.17-owlx0/com'

'--mandir=/opt/php/5.2.17-owlx0/man'

'--infodir=/opt/php/5.2.17-owlx0/info'

'--with-layout=GNU'

'--with-config-file-path=/opt/php/5.2.17-owlx0/etc'

'--with-config-file-scan-dir=/opt/php/5.2.17-owlx0/etc/php.d'

'--disable-rpath'

'--with-libdir=lib'

'--disable-debug'

'--enable-shared'

'--enable-static'

'--disable-all'

'--enable-short-tags'

'--enable-cgi'

'--disable-force-cgi-redirect'

'--enable-fastcgi'

'--enable-cli'

'--with-pear=/opt/php/pear'

'--enable-discard-path'

'--enable-magic-quotes'

'--enable-calendar=shared'

'--enable-ctype=shared'

'--enable-date'

'--enable-dba=shared'

'--with-gdbm'

'--with-db4'

'--with-cdb'

'--with-inifile'

'--with-flatfile'

'--enable-dbase=shared'

'--enable-dom=shared'

'--enable-exif=shared'

'--enable-filter=shared'

'--enable-ftp=shared'

'--enable-hash=shared'

'--enable-json=shared'

'--enable-mbstring=shared'

'--enable-mbregex'

'--enable-pcntl=shared'

'--enable-pdo=shared'

'--with-pdo-mysql=shared,/opt/mysql/current'

'--with-pdo-pgsql=shared,/opt/postgresql/current'

'--with-pdo-sqlite=shared,/opt/sqlite/current'

'--with-pgsql=shared,/opt/postgresql/current'

'--enable-posix=shared'

'--enable-session=shared'

'--enable-shmop=shared'

'--enable-soap=shared'

'--enable-sockets=shared'

'--enable-spl'

'--enable-simplexml'

'--enable-suhosin=shared'

'--enable-sysvmsg=shared'

'--enable-sysvsem=shared'

'--enable-sysvshm=shared'

'--enable-tokenizer=shared'

'--enable-wddx=shared'

'--enable-xml=shared,/opt/libxml2/current'

'--enable-xmlreader=shared'

'--enable-xmlwriter=shared'

'--enable-libxml=yes,shared'

'--with-libxml-dir=/opt/libxml2/current'

'--enable-memory-limit'

'--enable-zend-multibyte'

'--with-xsl=shared,/opt/libxslt/current'

'--with-openssl=shared'

'--with-zlib=shared'

'--enable-zip=shared'

'--with-bz2=shared'

'--with-curl=shared,/opt/curl/current'

'--with-curlwrappers'

'--with-gd=shared'

'--with-jpeg-dir=/opt/libjpeg/current'

'--with-png-dir=/opt/libpng/current'

'--enable-gd-native-ttf'

'--enable-gd-jis-conv'

'--with-freetype-dir=/opt/libfreetype/current'

'--with-gettext=shared'

'--with-mssql=shared,/opt/freetds/current'

'--with-mysql=shared,/opt/mysql/current'

'--with-mysqli=shared,/opt/mysql/current/bin/mysql_config'

'--with-iconv=shared'

'--with-imap=shared,/opt/libc-client/current'

'--with-imap-ssl'

'--with-mcrypt=shared,/opt/libmcrypt/current'

'--with-mhash=shared,/opt/libmhash/current'

'--with-mime-magic=shared,/opt/httpd/config/magic'

'--with-ncurse