cvs: /php4/sapi/aolserver aolserver.c
| From: | Sascha Schumann | Date: | Mon, 22 Nov 1999 00:42:36 +0000 |
| Subject: | cvs: /php4/sapi/aolserver aolserver.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-6636@lists.php.net to get a copy of this message | ||
sas Sun Nov 21 19:42:36 1999 EDT
Modified files:
/php4/sapi/aolserver aolserver.c
Log:
(PHP getallheaders) added function for AOLserver
(php_ns_hash_environment) added REMOTE_PORT, SERVER_PORT, SERVER_NAME,
PATH_TRANSLATED, GATEWAY_INTERFACE variables
Index: php4/sapi/aolserver/aolserver.c
diff -u php4/sapi/aolserver/aolserver.c:1.12 php4/sapi/aolserver/aolserver.c:1.13
--- php4/sapi/aolserver/aolserver.c:1.12 Sun Nov 7 08:16:14 1999
+++ php4/sapi/aolserver/aolserver.c Sun Nov 21 19:42:06 1999
@@ -22,7 +22,7 @@
* - CGI/1.1 conformance
*/
-/* $Id: aolserver.c,v 1.12 1999/11/07 13:16:14 sas Exp $ */
+/* $Id: aolserver.c,v 1.13 1999/11/22 00:42:06 sas Exp $ */
/* conflict between PHP and AOLserver */
#define Debug php_Debug
@@ -35,6 +35,8 @@
#error AOLserver module only useable in thread-safe mode
#endif
+#define NS_BUF_SIZE 511
+
#include "php_ini.h"
#include "php_globals.h"
#include "SAPI.h"
@@ -192,7 +194,7 @@
int uptime = Ns_InfoUptime();
PUTS("<table border=5 width=600>\n");
- php_info_print_table_row(2, "SAPI module version", "$Id: aolserver.c,v 1.12
1999/11/07 13:16:14 sas Exp $");
+ php_info_print_table_row(2, "SAPI module version", "$Id: aolserver.c,v 1.13
1999/11/22 00:42:06 sas Exp $");
php_info_print_table_row(2, "Build date", Ns_InfoBuildDate());
php_info_print_table_row(2, "Config file path", Ns_InfoConfigFile());
php_info_print_table_row(2, "Error Log path", Ns_InfoErrorLog());
@@ -211,9 +213,16 @@
PUTS("</table>");
}
+PHP_FUNCTION(getallheaders);
+
+static function_entry aolserver_functions[] = {
+ PHP_FE(getallheaders, NULL)
+ {0}
+};
+
static zend_module_entry php_aolserver_module = {
"AOLserver",
- NULL,
+ aolserver_functions,
NULL,
NULL,
NULL,
@@ -222,6 +231,23 @@
STANDARD_MODULE_PROPERTIES
};
+PHP_FUNCTION(getallheaders)
+{
+ int i;
+ NSLS_FETCH();
+
+ if (array_init(return_value) == FAILURE) {
+ RETURN_FALSE;
+ }
+
+ for (i = 0; i < Ns_SetSize(NSG(conn->headers)); i++) {
+ char *key = Ns_SetKey(NSG(conn->headers), i);
+ char *value = Ns_SetValue(NSG(conn->headers), i);
+
+ add_assoc_string(return_value, key, value, 1);
+ }
+}
+
static int
php_ns_startup(sapi_module_struct *sapi_module)
{
@@ -272,7 +298,7 @@
php_ns_hash_environment(NSLS_D CLS_DC ELS_DC PLS_DC SLS_DC)
{
int i;
- char buf[512];
+ char buf[NS_BUF_SIZE + 1];
zval *pval;
for(i = 0; i < Ns_SetSize(NSG(conn->headers)); i++) {
@@ -282,7 +308,7 @@
char c;
int buf_len;
- buf_len = snprintf(buf, 511, "HTTP_%s", key);
+ buf_len = snprintf(buf, NS_BUF_SIZE, "HTTP_%s", key);
for(p = buf; (c = *p); p++) {
c = toupper(c);
if(c < 'A' || c > 'Z') {
@@ -299,29 +325,41 @@
zend_hash_update(&EG(symbol_table), buf, buf_len + 1, &pval, sizeof(zval *), NULL);
}
- snprintf(buf, 511, "%s/%s", Ns_InfoServerName(), Ns_InfoServerVersion());
+ snprintf(buf, NS_BUF_SIZE, "%s/%s", Ns_InfoServerName(), Ns_InfoServerVersion());
ADD_STRING("SERVER_SOFTWARE");
- snprintf(buf, 511, "HTTP/%1.1f", NSG(conn)->request->version);
+ snprintf(buf, NS_BUF_SIZE, "HTTP/%1.1f", NSG(conn)->request->version);
ADD_STRING("SERVER_PROTOCOL");
- strncpy(buf, NSG(conn)->request->method, 511);
+ strncpy(buf, NSG(conn)->request->method, NS_BUF_SIZE);
ADD_STRING("REQUEST_METHOD");
if(NSG(conn)->request->query) {
- strncpy(buf, NSG(conn)->request->query, 511);
+ strncpy(buf, NSG(conn)->request->query, NS_BUF_SIZE);
} else {
buf[0] = '\0';
}
ADD_STRING("QUERY_STRING");
- strncpy(buf, Ns_InfoBuildDate(), 511);
+ strncpy(buf, Ns_InfoBuildDate(), NS_BUF_SIZE);
ADD_STRING("SERVER_BUILDDATE");
- strncpy(buf, Ns_ConnPeer(NSG(conn)), 511);
+ strncpy(buf, Ns_ConnPeer(NSG(conn)), NS_BUF_SIZE);
ADD_STRING("REMOTE_ADDR");
+
+ snprintf(buf, NS_BUF_SIZE, "%d", Ns_ConnPeerPort(NSG(conn)));
+ ADD_STRING("REMOTE_PORT");
+
+ snprintf(buf, NS_BUF_SIZE, "%d", Ns_ConnPort(NSG(conn)));
+ ADD_STRING("SERVER_PORT");
- strncpy(buf, SG(request_info).path_translated, 511);
+ strncpy(buf, Ns_ConnHost(NSG(conn)), NS_BUF_SIZE);
+ ADD_STRING("SERVER_NAME");
+
+ strncpy(buf, SG(request_info).path_translated, NS_BUF_SIZE);
ADD_STRING("PATH_TRANSLATED");
+
+ strncpy(buf, "CGI/1.1", NS_BUF_SIZE);
+ ADD_STRING("GATEWAY_INTERFACE");
MAKE_STD_ZVAL(pval);
pval->type = IS_LONG;