Commit 8d9ed39b813 for php.net
commit 8d9ed39b81365120b3b4da1739a81e2bdaeabbb6
Author: Gina Peter Banyard <girgias@php.net>
Date: Sun Jul 19 18:11:34 2026 +0100
stream: registering cannot fail, thus voidify function (#22811)
Propagate changes up which means we can also voidify php_init_stream_wrappers() removing an if() check during startup.
diff --git a/main/main.c b/main/main.c
index aba833b43b9..4348ec41092 100644
--- a/main/main.c
+++ b/main/main.c
@@ -2311,10 +2311,7 @@ zend_result php_module_startup(sapi_module_struct *sf, zend_module_entry *additi
/* initialize stream wrappers registry
* (this uses configuration parameters from php.ini)
*/
- if (php_init_stream_wrappers(module_number) == FAILURE) {
- fprintf(stderr, "PHP: Unable to initialize stream url wrappers.\n");
- return FAILURE;
- }
+ php_init_stream_wrappers(module_number);
zuv.html_errors = 1;
php_startup_auto_globals();
diff --git a/main/php_streams.h b/main/php_streams.h
index be8009dba91..0dd27b8ee88 100644
--- a/main/php_streams.h
+++ b/main/php_streams.h
@@ -629,7 +629,7 @@ END_EXTERN_C()
/* this flag is only used by include/require functions */
#define STREAM_OPEN_FOR_ZEND_STREAM 0x00010000
-zend_result php_init_stream_wrappers(int module_number);
+void php_init_stream_wrappers(int module_number);
void php_shutdown_stream_wrappers(int module_number);
void php_shutdown_stream_hashes(void);
PHP_RSHUTDOWN_FUNCTION(streams);
diff --git a/main/streams/php_stream_transport.h b/main/streams/php_stream_transport.h
index 60bea8e9e1f..1ee6a840cfd 100644
--- a/main/streams/php_stream_transport.h
+++ b/main/streams/php_stream_transport.h
@@ -29,8 +29,8 @@ typedef php_stream *(php_stream_transport_factory_func)(const char *proto, size_
typedef php_stream_transport_factory_func *php_stream_transport_factory;
BEGIN_EXTERN_C()
-PHPAPI int php_stream_xport_register(const char *protocol, php_stream_transport_factory factory);
-PHPAPI int php_stream_xport_unregister(const char *protocol);
+PHPAPI void php_stream_xport_register(const char *protocol, php_stream_transport_factory factory);
+PHPAPI zend_result php_stream_xport_unregister(const char *protocol);
#define STREAM_XPORT_CLIENT 0
#define STREAM_XPORT_SERVER 1
diff --git a/main/streams/streams.c b/main/streams/streams.c
index 5c1041ea3a9..3d8830d7291 100644
--- a/main/streams/streams.c
+++ b/main/streams/streams.c
@@ -1739,7 +1739,7 @@ void php_shutdown_stream_hashes(void)
php_stream_error_state_cleanup();
}
-zend_result php_init_stream_wrappers(int module_number)
+void php_init_stream_wrappers(int module_number)
{
le_stream = zend_register_list_destructors_ex(stream_resource_regular_dtor, NULL, "stream", module_number);
le_pstream = zend_register_list_destructors_ex(NULL, stream_resource_persistent_dtor, "persistent stream", module_number);
@@ -1751,16 +1751,12 @@ zend_result php_init_stream_wrappers(int module_number)
zend_hash_init(php_get_stream_filters_hash_global(), 8, NULL, NULL, 1);
zend_hash_init(php_stream_xport_get_hash(), 8, NULL, NULL, 1);
- return (php_stream_xport_register("tcp", php_stream_generic_socket_factory) == SUCCESS
- &&
- php_stream_xport_register("udp", php_stream_generic_socket_factory) == SUCCESS
+ php_stream_xport_register("tcp", php_stream_generic_socket_factory);
+ php_stream_xport_register("udp", php_stream_generic_socket_factory);
#if defined(AF_UNIX) && !(defined(PHP_WIN32) || defined(__riscos__))
- &&
- php_stream_xport_register("unix", php_stream_generic_socket_factory) == SUCCESS
- &&
- php_stream_xport_register("udg", php_stream_generic_socket_factory) == SUCCESS
+ php_stream_xport_register("unix", php_stream_generic_socket_factory);
+ php_stream_xport_register("udg", php_stream_generic_socket_factory);
#endif
- ) ? SUCCESS : FAILURE;
}
void php_shutdown_stream_wrappers(int module_number)
diff --git a/main/streams/transports.c b/main/streams/transports.c
index e171b545b11..ca0ab7a3d31 100644
--- a/main/streams/transports.c
+++ b/main/streams/transports.c
@@ -14,7 +14,7 @@
#include "php.h"
#include "php_streams_int.h"
-#include "ext/standard/file.h"
+#include "ext/standard/file.h" /* For FG(default_socket_timeout) */
static HashTable xport_hash;
@@ -23,16 +23,15 @@ PHPAPI HashTable *php_stream_xport_get_hash(void)
return &xport_hash;
}
-PHPAPI int php_stream_xport_register(const char *protocol, php_stream_transport_factory factory)
+PHPAPI void php_stream_xport_register(const char *protocol, php_stream_transport_factory factory)
{
- zend_string *str = zend_string_init_interned(protocol, strlen(protocol), 1);
+ zend_string *str = zend_string_init_interned(protocol, strlen(protocol), true);
zend_hash_update_ptr(&xport_hash, str, factory);
- zend_string_release_ex(str, 1);
- return SUCCESS;
+ zend_string_release_ex(str, true);
}
-PHPAPI int php_stream_xport_unregister(const char *protocol)
+PHPAPI zend_result php_stream_xport_unregister(const char *protocol)
{
return zend_hash_str_del(&xport_hash, protocol, strlen(protocol));
}