hyanantha Thu Oct 24 07:54:04 2002 EDT
Modified files: (Branch: PHP_4_2_0)
/php4/sapi/apache php_apache.c
Log:
NetWare related changes/modifications.
Index: php4/sapi/apache/php_apache.c
diff -u php4/sapi/apache/php_apache.c:1.56 php4/sapi/apache/php_apache.c:1.56.2.1
--- php4/sapi/apache/php_apache.c:1.56 Thu Feb 28 03:27:19 2002
+++ php4/sapi/apache/php_apache.c Thu Oct 24 07:54:03 2002
@@ -17,7 +17,7 @@
| David Sklar <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_apache.c,v 1.56 2002/02/28 08:27:19 sebastian Exp $ */
+/* $Id: php_apache.c,v 1.56.2.1 2002/10/24 11:54:03 hyanantha Exp $ */
#define NO_REGEX_EXTRA_H
@@ -26,6 +26,14 @@
#include <stddef.h>
#endif
+#ifdef NETWARE
+#ifdef NEW_LIBC /* Works fine for both Winsock and Berkeley sockets */
+#include <netinet/in.h>
+#else
+#include <sys/socket.h>
+#endif
+#endif /* NETWARE */
+
#include "php.h"
#include "ext/standard/head.h"
#include "php_globals.h"
@@ -51,7 +59,7 @@
php_apache_info_struct php_apache_info;
#endif
-#ifdef PHP_WIN32
+#if defined(PHP_WIN32) || defined(NETWARE)
#include "zend.h"
#include "ap_compat.h"
#else
@@ -101,7 +109,7 @@
static PHP_MINIT_FUNCTION(apache)
{
#ifdef ZTS
- ts_allocate_id(&php_apache_info_id, sizeof(php_apache_info_struct),
php_apache_globals_ctor, NULL);
+ ts_allocate_id(&php_apache_info_id, sizeof(php_apache_info_struct), (void
+(*)(void *, void ***))php_apache_globals_ctor, NULL); /* Type-casting done due to
+NetWare */
#else
php_apache_globals_ctor(&php_apache_info TSRMLS_CC);
#endif
@@ -133,6 +141,9 @@
Terminate apache process after this request */
PHP_FUNCTION(apache_child_terminate)
{
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ EnterClib();
+#endif
#ifndef MULTITHREAD
if (AP(terminate_child)) {
ap_child_terminate( ((request_rec *)SG(server_context)) );
@@ -142,6 +153,9 @@
#else
php_error(E_WARNING, "apache_child_terminate() is not supported in
this build");
#endif
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
}
/* }}} */
@@ -153,6 +167,9 @@
char *note_val;
int arg_count = ARG_COUNT(ht);
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ EnterClib();
+#endif
if (arg_count<1 || arg_count>2 ||
zend_get_parameters_ex(arg_count, &arg_name, &arg_val) ==FAILURE ) {
WRONG_PARAM_COUNT;
@@ -166,6 +183,9 @@
table_set(((request_rec *)SG(server_context))->notes,
(*arg_name)->value.str.val, (*arg_val)->value.str.val);
}
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
if (note_val) {
RETURN_STRING(note_val, 1);
} else {
@@ -180,7 +200,7 @@
{
module *modp = NULL;
char output_buf[128];
-#if !defined(WIN32) && !defined(WINNT)
+#if !defined(WIN32) && !defined(WINNT) /* This seems to be working for NetWare */
char name[64];
char modulenames[1024];
char *p;
@@ -192,6 +212,9 @@
extern gid_t group_id;
extern int max_requests_per_child;
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ EnterClib();
+#endif
serv = ((request_rec *) SG(server_context))->server;
@@ -201,6 +224,10 @@
php_info_print_table_row(1, "Apache for Windows 95/NT");
php_info_print_table_end();
php_info_print_table_start();
+#elif defined(NETWARE)
+ php_info_print_table_row(1, "Apache for NetWare");
+ php_info_print_table_end();
+ php_info_print_table_start();
#else
php_info_print_table_row(2, "APACHE_INCLUDE", PHP_APACHE_INCLUDE);
php_info_print_table_row(2, "APACHE_TARGET", PHP_APACHE_TARGET);
@@ -216,7 +243,7 @@
php_info_print_table_row(2, "Apache API Version", output_buf);
sprintf(output_buf, "%s:%u", serv->server_hostname, serv->port);
php_info_print_table_row(2, "Hostname:Port", output_buf);
-#if !defined(WIN32) && !defined(WINNT)
+#if !defined(WIN32) && !defined(WINNT) /* This seems to be working for NetWare */
sprintf(output_buf, "%s(%d)/%d", user_name, (int)user_id, (int)group_id);
php_info_print_table_row(2, "User/Group", output_buf);
sprintf(output_buf, "Per Child: %d - Keep Alive: %s - Max Per Connection: %d",
max_requests_per_child, serv->keep_alive ? "on":"off", serv->keep_alive_max);
@@ -224,7 +251,7 @@
#endif
sprintf(output_buf, "Connection: %d - Keep-Alive: %d", serv->timeout,
serv->keep_alive_timeout);
php_info_print_table_row(2, "Timeouts", output_buf);
-#if !defined(WIN32) && !defined(WINNT)
+#if !defined(WIN32) && !defined(WINNT) /* This seems to be working for NetWare */
php_info_print_table_row(2, "Server Root", server_root);
strcpy(modulenames, "");
@@ -238,6 +265,7 @@
strcat(modulenames, ", ");
}
}
+ /* But here for NetWare, it seems to be showing all modules instead of just
+the loaded ones */
php_info_print_table_row(2, "Loaded Modules", modulenames);
#endif
@@ -292,6 +320,9 @@
}
php_info_print_table_end();
}
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
}
/* }}} */
@@ -310,6 +341,9 @@
pval **filename;
request_rec *rr = NULL;
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ EnterClib();
+#endif
if (ARG_COUNT(ht) != 1 || zend_get_parameters_ex(1, &filename) == FAILURE) {
WRONG_PARAM_COUNT;
}
@@ -318,12 +352,18 @@
if (!(rr = sub_req_lookup_uri ((*filename)->value.str.val, ((request_rec *)
SG(server_context))))) {
php_error(E_WARNING, "Unable to include '%s' - URI lookup failed",
(*filename)->value.str.val);
if (rr) destroy_sub_req (rr);
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
RETURN_FALSE;
}
if (rr->status != 200) {
php_error(E_WARNING, "Unable to include '%s' - error finding URI",
(*filename)->value.str.val);
if (rr) destroy_sub_req (rr);
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
RETURN_FALSE;
}
@@ -333,9 +373,15 @@
if (run_sub_req(rr)) {
php_error(E_WARNING, "Unable to include '%s' - request execution
failed", (*filename)->value.str.val);
if (rr) destroy_sub_req (rr);
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
RETURN_FALSE;
} else {
if (rr) destroy_sub_req (rr);
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
RETURN_TRUE;
}
}
@@ -348,8 +394,14 @@
array_header *env_arr;
table_entry *tenv;
int i;
-
+
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ EnterClib();
+#endif
if (array_init(return_value) == FAILURE) {
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
RETURN_FALSE;
}
env_arr = table_elts(((request_rec *) SG(server_context))->headers_in);
@@ -361,9 +413,15 @@
continue;
}
if (add_assoc_string(return_value, tenv[i].key, (tenv[i].val==NULL) ?
"" : tenv[i].val, 1)==FAILURE) {
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
RETURN_FALSE;
}
}
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
}
/* }}} */
@@ -384,7 +442,13 @@
else break;
}
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ EnterClib();
+#endif
ap_table_setn(r->subprocess_env, ap_pstrndup(r->pool, var, var_len),
ap_pstrndup(r->pool, val, val_len));
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
RETURN_TRUE;
}
/* }}} */
@@ -396,6 +460,9 @@
pval **filename;
request_rec *rr=NULL;
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ EnterClib();
+#endif
if (ARG_COUNT(ht) != 1 || zend_get_parameters_ex(1, &filename) == FAILURE) {
WRONG_PARAM_COUNT;
}
@@ -458,6 +525,9 @@
}
destroy_sub_req(rr);
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
}
/* }}} */
@@ -471,6 +541,9 @@
request_rec *rr=NULL;
TSRMLS_FETCH();
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ EnterClib();
+#endif
if (ARG_COUNT(ht) != 1 || zend_get_parameters_ex(1, &filename) == FAILURE) {
WRONG_PARAM_COUNT;
}
@@ -482,6 +555,9 @@
}
RETVAL_LONG(ap_run_sub_req(rr));
ap_destroy_sub_req(rr);
+#if defined(NETWARE) && defined(NETWARE_CLIB_BROKER)
+ ExitClib();
+#endif
}
#endif
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php