diff options
-rw-r--r-- | main/config.nw.h | 274 | ||||
-rw-r--r-- | main/php.h | 9 | ||||
-rw-r--r-- | main/php_compat.h | 2 | ||||
-rw-r--r-- | sapi/apache/mod_php4.c | 4 | ||||
-rw-r--r-- | sapi/apache/php_apache.c | 15 | ||||
-rw-r--r-- | sapi/apache/php_apache_http.h | 4 |
6 files changed, 307 insertions, 1 deletions
diff --git a/main/config.nw.h b/main/config.nw.h new file mode 100644 index 0000000000..b2c15b56b0 --- /dev/null +++ b/main/config.nw.h @@ -0,0 +1,274 @@ +/* config.nw.h. Configure file for NetWare platform */ + + +/**** + +Need to carefully look into each constant and either define or undef it w.r.t. NetWare. + +****/ + + +/* Define if PHP to setup it's own SIGCHLD handler (not needed on NetWare) */ +#define PHP_SIGCHILD 0 + +/* dns functions found in resolv.lib */ +#define HAVE_LIBBIND 1 + +#define HAVE_GETSERVBYNAME 1 +#define HAVE_GETSERVBYPORT 1 +#define HAVE_GETPROTOBYNAME 1 +#define HAVE_GETPROTOBYNUMBER 1 + +/* set to enable bcmath */ +#define WITH_BCMATH 1 + +/* set to enable mysql */ +#define HAVE_MYSQL 1 + +/* set to enable FTP support */ +#define HAVE_FTP 1 + +/* set to enable bundled PCRE library */ +#define HAVE_BUNDLED_PCRE 1 + +/* set to enable bundled expat library */ +/* #define HAVE_LIBEXPAT 1 */ /* For now */ +#define HAVE_WDDX 0 + +/* set to enable the crypt command */ +/* #define HAVE_CRYPT 1 */ +/* #define HAVE_CRYPT_H 1 */ + +/* set to enable force cgi redirect */ +#define FORCE_CGI_REDIRECT 0 + +/* should be added to runtime config*/ +#define PHP_URL_FOPEN 1 + +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#define STDERR_FILENO 2 + +/* ---------------------------------------------------------------- + The following are defaults for run-time configuration + ---------------------------------------------------------------*/ + +#define PHP_SAFE_MODE 0 +#define MAGIC_QUOTES 0 +/* This is the default configuration file to read */ +#define CONFIGURATION_FILE_PATH "php.ini" +#define USE_CONFIG_FILE 1 + +#define PHP_INCLUDE_PATH NULL + + +/* Undefine if you want stricter XML/SGML compliance by default */ +/* this disables "<?expression?>" and "<?=expression?>" */ +#define DEFAULT_SHORT_OPEN_TAG "1" + + +/* ---------------------------------------------------------------- + The following defines are for those modules which require + external libraries to compile. These will be removed from + here in a future beta, as these modules will be moved out to dll's + ---------------------------------------------------------------*/ +#define HAVE_ERRMSG_H 0 /*needed for mysql 3.21.17 and up*/ +#undef HAVE_ADABAS +#undef HAVE_SOLID + + +/* ---------------------------------------------------------------- + The following may or may not be (or need to be) ported to the + windows environment. + ---------------------------------------------------------------*/ + +/* Define if you have the link function. */ +#undef HAVE_LINK + +/* Define if you have the symlink function. */ +#undef HAVE_SYMLINK + +/* Define if you have the usleep function. */ +#undef HAVE_USLEEP + +#define HAVE_GETCWD 1 +/* #define HAVE_POSIX_READDIR_R 1 */ /* We will use readdir() from LibC */ + +#define NEED_ISBLANK 1 + +/* ---------------------------------------------------------------- + The following should never need to be played with + Functions defined to 0 or remarked out are either already + handled by the standard VC libraries, or are no longer needed, or + simply will/can not be ported. + + DONT TOUCH!!!!! Unless you realy know what your messing with! + ---------------------------------------------------------------*/ + +#define DISCARD_PATH 0 +#undef HAVE_SETITIMER +#undef HAVE_IODBC +#define HAVE_UODBC 1 +#define HAVE_LIBDL 1 +#define HAVE_SENDMAIL 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_PUTENV 1 +#define HAVE_LIMITS_H 1 + +#define HAVE_TZSET 1 +#define HAVE_TZNAME 1 + +/* Define if you have the flock function. */ +#undef HAVE_FLOCK + +/* Define if you have alloca, as a function or macro. */ +/* Though we have alloca(), this seems to be causing some problem with the stack pointer -- hence not using it */ +/* #define HAVE_ALLOCA 1 */ + +/* Define if you have <sys/time.h> */ +#undef HAVE_SYS_TIME_H + +/* Define if you have <signal.h> */ +#define HAVE_SIGNAL_H 1 + +/* Define if your struct stat has st_blksize. */ +#define HAVE_ST_BLKSIZE + +/* Define if your struct stat has st_blocks. */ +#define HAVE_ST_BLOCKS + +/* Define if your struct stat has st_rdev. */ +#define HAVE_ST_RDEV 1 + +/* Define if utime(file, NULL) sets file's timestamp to the present. */ +#define HAVE_UTIME_NULL 1 + +/* Define if you have the vprintf function. */ +#define HAVE_VPRINTF 1 + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define both of these if you want the bundled REGEX library */ +#define REGEX 1 +#define HSREGEX 1 + +#define HAVE_PCRE 1 + +#define HAVE_LDAP 1 + +/* Define if you have the gcvt function. */ +/* #define HAVE_GCVT 1 */ + +/* Define if you have the getlogin function. */ +/* #define HAVE_GETLOGIN 1 */ + +/* Define if you have the gettimeofday function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define if you have the memcpy function. */ +#define HAVE_MEMCPY 1 + +/* Define if you have the memmove function. */ +#define HAVE_MEMMOVE 1 + +/* Define if you have the putenv function. */ +/* #define HAVE_PUTENV 1 */ /* Why are such things defined in more than one place ? */ + +/* Define if you have the regcomp function. */ +/* #define HAVE_REGCOMP 1 */ + +/* Define if you have the setlocale function. */ +/* #define HAVE_SETLOCALE 1 */ /* LibC doesn't seem to be supporting fully -- hence commenting for now */ + +#define HAVE_LOCALECONV 1 + +#define HAVE_LOCALE_H 1 + +/* Define if you have the setvbuf function. */ +#ifndef HAVE_LIBBIND +#define HAVE_SETVBUF 1 +#endif + +/* Define if you have the snprintf function. */ +#define HAVE_SNPRINTF 1 +#define HAVE_VSNPRINTF 1 +/* Define if you have the strcasecmp function. */ +#define HAVE_STRCASECMP 1 + +/* Define if you have the strdup function. */ +#define HAVE_STRDUP 1 + +/* Define if you have the strerror function. */ +#define HAVE_STRERROR 1 + +/* Define if you have the strstr function. */ +#define HAVE_STRSTR 1 + +/* Define if you have the tempnam function. */ +#define HAVE_TEMPNAM 1 + +/* Define if you have the utime function. */ +#define HAVE_UTIME 1 + +/* Define if you have the <dirent.h> header file. */ +#define HAVE_DIRENT_H + +/* Define if you have the <fcntl.h> header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the <grp.h> header file. */ +#define HAVE_GRP_H 0 + +/* Define if you have the <pwd.h> header file. */ +#define HAVE_PWD_H 1 + +/* Define if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define if you have the <sys/file.h> header file. */ +#undef HAVE_SYS_FILE_H + +/* Define if you have the <sys/socket.h> header file. */ +#define HAVE_SYS_SOCKET_H 1 /* Added '1' for '#if' to work */ + +/* Define if you have the <sys/wait.h> header file. */ +#undef HAVE_SYS_WAIT_H + +/* Define if you have the <syslog.h> header file. */ +/* #define HAVE_SYSLOG_H 1 */ + +/* Define if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 /* Added '1' for '#if' to work */ + +/* Define if you have the dl library (-ldl). */ +#define HAVE_LIBDL 1 + +/* Define if you have the m library (-lm). */ +#define HAVE_LIBM 1 + +/* Define if you have the cuserid function. */ +#define HAVE_CUSERID 0 + +/* Define if you have the rint function. */ +#undef HAVE_RINT + +#define HAVE_STRFTIME 1 + +/* Default directory for loading extensions. */ +#define PHP_EXTENSION_DIR "sys:/php/ext" + +#define SIZEOF_INT 4 + +/* Define directory constants for php and pear */ + +/* Venkat (20/12/01) */ +#define APACHE_MODULE_DIR "sys:/apache/modules" +#define PHP_BINDIR "sys:/php" +#define PHP_LIBDIR PHP_BINDIR +#define PHP_DATADIR PHP_BINDIR +#define PHP_SYSCONFDIR PHP_BINDIR +#define PHP_LOCALSTATEDIR PHP_BINDIR +#define PHP_CONFIG_FILE_PATH "sys:/php" +#define PEAR_INSTALLDIR "sys:/php/pear" + diff --git a/main/php.h b/main/php.h index fc667c4f39..9fe824949e 100644 --- a/main/php.h +++ b/main/php.h @@ -61,6 +61,12 @@ #define PHP_DIR_SEPARATOR '/' #endif +#ifdef NETWARE +#define PHP_UNAME "NetWare" /* For php_get_uname() function */ +#define PHP_OS PHP_UNAME /* This is obtained using 'uname' on Unix and assigned in the case of Windows; + we'll do it this way atleast for now */ +#endif + #include "php_regex.h" #if HAVE_ASSERT_H @@ -179,6 +185,9 @@ char *strerror(int); # ifdef PHP_WIN32 #include "win32/pwd.h" #include "win32/param.h" +#elif defined(NETWARE) +#include <sys/param.h> +#include "NetWare/pwd.h" # else #include <pwd.h> #include <sys/param.h> diff --git a/main/php_compat.h b/main/php_compat.h index 7c9a16480c..bd65b41f36 100644 --- a/main/php_compat.h +++ b/main/php_compat.h @@ -3,6 +3,8 @@ #ifdef PHP_WIN32 #include "config.w32.h" +#elif defined(NETWARE) +#include "config.nw.h" #else #include "php_config.h" #endif diff --git a/sapi/apache/mod_php4.c b/sapi/apache/mod_php4.c index 0faa7b13f4..e3afd228b4 100644 --- a/sapi/apache/mod_php4.c +++ b/sapi/apache/mod_php4.c @@ -21,6 +21,10 @@ #include "php_apache_http.h" +#ifdef NETWARE +#define SIGPIPE SIGINT +#endif + #if defined(ZEND_MULTIBYTE) && defined(HAVE_MBSTRING) #include "ext/mbstring/mbstring.h" #endif /* defined(ZEND_MULTIBYTE) && defined(HAVE_MBSTRING) */ diff --git a/sapi/apache/php_apache.c b/sapi/apache/php_apache.c index b7572922b5..21ca18a177 100644 --- a/sapi/apache/php_apache.c +++ b/sapi/apache/php_apache.c @@ -21,7 +21,7 @@ #include "php_apache_http.h" -#ifdef PHP_WIN32 +#if defined(PHP_WIN32) || defined(NETWARE) #include "zend.h" #include "ap_compat.h" #else @@ -77,8 +77,12 @@ static void php_apache_globals_ctor(php_apache_info_struct *apache_globals TSRML static PHP_MINIT_FUNCTION(apache) { #ifdef ZTS +#ifndef NETWARE ts_allocate_id(&php_apache_info_id, sizeof(php_apache_info_struct), php_apache_globals_ctor, NULL); #else + ts_allocate_id(&php_apache_info_id, sizeof(php_apache_info_struct), (void (*)(void *, void ***))php_apache_globals_ctor, NULL); +#endif +#else php_apache_globals_ctor(&php_apache_info TSRMLS_CC); #endif REGISTER_INI_ENTRIES(); @@ -180,6 +184,10 @@ PHP_MINFO_FUNCTION(apache) 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); @@ -204,6 +212,11 @@ PHP_MINFO_FUNCTION(apache) 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) +/* + This block seems to be working on NetWare; But it seems to be showing + all modules instead of just the loaded ones +*/ + php_info_print_table_row(2, "Server Root", server_root); strcpy(modulenames, ""); diff --git a/sapi/apache/php_apache_http.h b/sapi/apache/php_apache_http.h index 6d41f418ab..56590fb822 100644 --- a/sapi/apache/php_apache_http.h +++ b/sapi/apache/php_apache_http.h @@ -5,6 +5,10 @@ #include <stddef.h> #endif +#ifdef NETWARE +#include <netinet/in.h> +#endif + #include "zend.h" #include "php_regex.h" |