summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/com/COM.c13
-rw-r--r--ext/rpc/com/com_wrapper.c13
2 files changed, 8 insertions, 18 deletions
diff --git a/ext/com/COM.c b/ext/com/COM.c
index 29cc740455..58ab660650 100644
--- a/ext/com/COM.c
+++ b/ext/com/COM.c
@@ -501,14 +501,11 @@ PHP_FUNCTION(com_load)
}
if (server_name != NULL) {
- /* if a server is passed, one obviously wants to instanciate a
- * remote server
- */
- flags = CLSCTX_REMOTE_SERVER;
-
/* What is server name? A String or an array? */
- if (Z_TYPE_P(server_name) == IS_ARRAY) {
+ if (Z_TYPE_P(server_name) == IS_NULL) {
+ server_name = NULL;
+ } else if (Z_TYPE_P(server_name) == IS_ARRAY) {
pval **tmp;
/* DAB: 22 Sept 2001 */
/* Aha - we have a number of possible */
@@ -568,14 +565,12 @@ PHP_FUNCTION(com_load)
convert_to_long_ex(tmp);
flags = (CLSCTX) Z_LVAL_PP(tmp);
}
- }
- if (Z_TYPE_P(server_name) == IS_NULL) {
- server_name = NULL;
} else {
if (!INI_INT("com.allow_dcom")) {
php_error(E_WARNING, "DCOM is disabled");
RETURN_FALSE;
} else {
+ flags = CLSCTX_REMOTE_SERVER;
convert_to_string_ex(&server_name);
}
}
diff --git a/ext/rpc/com/com_wrapper.c b/ext/rpc/com/com_wrapper.c
index 29cc740455..58ab660650 100644
--- a/ext/rpc/com/com_wrapper.c
+++ b/ext/rpc/com/com_wrapper.c
@@ -501,14 +501,11 @@ PHP_FUNCTION(com_load)
}
if (server_name != NULL) {
- /* if a server is passed, one obviously wants to instanciate a
- * remote server
- */
- flags = CLSCTX_REMOTE_SERVER;
-
/* What is server name? A String or an array? */
- if (Z_TYPE_P(server_name) == IS_ARRAY) {
+ if (Z_TYPE_P(server_name) == IS_NULL) {
+ server_name = NULL;
+ } else if (Z_TYPE_P(server_name) == IS_ARRAY) {
pval **tmp;
/* DAB: 22 Sept 2001 */
/* Aha - we have a number of possible */
@@ -568,14 +565,12 @@ PHP_FUNCTION(com_load)
convert_to_long_ex(tmp);
flags = (CLSCTX) Z_LVAL_PP(tmp);
}
- }
- if (Z_TYPE_P(server_name) == IS_NULL) {
- server_name = NULL;
} else {
if (!INI_INT("com.allow_dcom")) {
php_error(E_WARNING, "DCOM is disabled");
RETURN_FALSE;
} else {
+ flags = CLSCTX_REMOTE_SERVER;
convert_to_string_ex(&server_name);
}
}