]> granicus.if.org Git - php/commitdiff
As fork implementation of NetWare LibC still in experimental stages making the procve...
authorAnantha Kesari H Y <hyanantha@php.net>
Fri, 1 Jul 2005 06:49:29 +0000 (06:49 +0000)
committerAnantha Kesari H Y <hyanantha@php.net>
Fri, 1 Jul 2005 06:49:29 +0000 (06:49 +0000)
--Kamesh from hyanantha's account

ext/standard/proc_open.c

index d38c3ba7cac917690345bf388cf0a44abe6bae2c..1f597252209625b1a1ad8941f74585c8c442732f 100644 (file)
@@ -761,6 +761,46 @@ PHP_FUNCTION(proc_open)
        child = pi.hProcess;
        CloseHandle(pi.hThread);
 
+#elif defined(NETWARE)
+       if (cwd) {
+               orig_cwd = getcwd(NULL, PATH_MAX);
+               chdir2(cwd);
+       }
+       channel.infd = descriptors[0].childend;
+       channel.outfd = descriptors[1].childend;
+       channel.errfd = -1;
+       /* Duplicate the command as processing downwards will modify it*/
+       command_dup = strdup(command);
+       /* get a number of args */
+       construct_argc_argv(command_dup, NULL, &command_num_args, NULL);
+       child_argv = (char**) malloc((command_num_args + 1) * sizeof(char*));
+       if(!child_argv) {
+               free(command_dup);
+               if (cwd && orig_cwd) {
+                       chdir2(orig_cwd);
+                       free(orig_cwd);
+               }
+       }
+       /* fill the child arg vector */
+       construct_argc_argv(command_dup, NULL, &command_num_args, child_argv);
+       child_argv[command_num_args] = NULL;
+       child = procve(child_argv[0], PROC_DETACHED|PROC_INHERIT_CWD, NULL, &channel, NULL, NULL, 0, NULL, (const char**)child_argv);
+       free(child_argv);
+       free(command_dup);
+       if (cwd && orig_cwd) {
+               chdir2(orig_cwd);
+               free(orig_cwd);
+       }
+       if (child < 0) {
+               /* failed to fork() */
+               /* clean up all the descriptors */
+               for (i = 0; i < ndesc; i++) {
+                       close(descriptors[i].childend);
+                       close(descriptors[i].parentend);
+               }
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "procve failed - %s", strerror(errno));
+               goto exit_fail;
+       }
 #elif HAVE_FORK
        /* the unix way */
        child = fork();
@@ -831,46 +871,6 @@ PHP_FUNCTION(proc_open)
                goto exit_fail;
 
        }
-#elif defined(NETWARE)
-       if (cwd) {
-               orig_cwd = getcwd(NULL, PATH_MAX);
-               chdir2(cwd);
-       }
-       channel.infd = descriptors[0].childend;
-       channel.outfd = descriptors[1].childend;
-       channel.errfd = -1;
-       /* Duplicate the command as processing downwards will modify it*/
-       command_dup = strdup(command);
-       /* get a number of args */
-       construct_argc_argv(command_dup, NULL, &command_num_args, NULL);
-       child_argv = (char**) malloc((command_num_args + 1) * sizeof(char*));
-       if(!child_argv) {
-               free(command_dup);
-               if (cwd && orig_cwd) {
-                       chdir2(orig_cwd);
-                       free(orig_cwd);
-               }
-       }
-       /* fill the child arg vector */
-       construct_argc_argv(command_dup, NULL, &command_num_args, child_argv);
-       child_argv[command_num_args] = NULL;
-       child = procve(child_argv[0], PROC_DETACHED|PROC_INHERIT_CWD, NULL, &channel, NULL, NULL, 0, NULL, (const char**)child_argv);
-       free(child_argv);
-       free(command_dup);
-       if (cwd && orig_cwd) {
-               chdir2(orig_cwd);
-               free(orig_cwd);
-       }
-       if (child < 0) {
-               /* failed to fork() */
-               /* clean up all the descriptors */
-               for (i = 0; i < ndesc; i++) {
-                       close(descriptors[i].childend);
-                       close(descriptors[i].parentend);
-               }
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "procve failed - %s", strerror(errno));
-               goto exit_fail;
-       }
 #else
 # error You lose (configure should not have let you get here)
 #endif