andi Fri Mar 2 07:25:52 2001 EDT
Modified files:
/php4/sapi/nsapi nsapi.c
Log:
- Commit NSAPI patches.
Index: php4/sapi/nsapi/nsapi.c
diff -u php4/sapi/nsapi/nsapi.c:1.16 php4/sapi/nsapi/nsapi.c:1.17
--- php4/sapi/nsapi/nsapi.c:1.16 Sun Feb 25 22:07:37 2001
+++ php4/sapi/nsapi/nsapi.c Fri Mar 2 07:25:51 2001
@@ -94,15 +94,16 @@
} nsapi_equiv;
static nsapi_equiv nsapi_headers[] = {
- { "CONTENT_LENGTH", "content-length" },
- { "CONTENT_TYPE", "content-type" },
- { "HTTP_ACCEPT", "accept" },
+ { "CONTENT_LENGTH", "content-length" },
+ { "CONTENT_TYPE", "content-type" },
+ { "HTTP_ACCEPT", "accept" },
{ "HTTP_ACCEPT_ENCODING", "accept-encoding" },
{ "HTTP_ACCEPT_LANGUAGE", "accept-language" },
+ { "HTTP_ACCEPT_CHARSET", "accept-charset" },
{ "HTTP_AUTHORIZATION", "authorization" },
- { "HTTP_COOKIE", "cookie" },
+ { "HTTP_COOKIE", "cookie" },
{ "HTTP_IF_MODIFIED_SINCE", "if-modified-since" },
- { "HTTP_REFERER", "referer" },
+ { "HTTP_REFERER", "referer" },
{ "HTTP_USER_AGENT", "user-agent" },
{ "HTTP_USER_DEFINED", "user-defined" }
};
@@ -113,20 +114,22 @@
{ "REQUEST_LINE", "clf-request" },
{ "REQUEST_METHOD", "method" },
{ "SCRIPT_NAME", "uri" },
- { "SCRIPT_PROTOCOL", "protocol" }
+ { "SERVER_PROTOCOL", "protocol" }
};
static size_t nsapi_reqpb_size = sizeof(nsapi_reqpb)/sizeof(nsapi_reqpb[0]);
static nsapi_equiv nsapi_vars[] = {
- { "AUTH_TYPE", "auth-type" },
{ "PATH_INFO", "path-info" },
+ { "PATH_TRANSLATED", "path" },
+ { "AUTH_TYPE", "auth-type" },
+ { "CLIENT_CERT", "auth-cert" },
{ "REMOTE_USER", "auth-user" }
};
static size_t nsapi_vars_size = sizeof(nsapi_vars)/sizeof(nsapi_vars[0]);
static nsapi_equiv nsapi_client[] = {
{ "HTTPS_KEYSIZE", "keysize" },
- { "HTTPS_SECRETSIZE", "secret-keysize" },
+ { "HTTPS_SECRETSIZE", "secret-keysize" },
{ "REMOTE_ADDR", "ip" }
};
static size_t nsapi_client_size = sizeof(nsapi_client)/sizeof(nsapi_client[0]);
@@ -279,47 +282,67 @@
{
nsapi_request_context *rc = (nsapi_request_context *)SG(server_context);
size_t i;
- char *value = NULL;
+ char *value;
char buf[128];
- *buf = 0;
for (i = 0; i < nsapi_reqpb_size; i++) {
- if ((value = pblock_findval(nsapi_reqpb[i].nsapi_eq, rc->rq->reqpb))
== NULL) {
- value = buf;
+ value = pblock_findval(nsapi_reqpb[i].nsapi_eq, rc->rq->reqpb);
+ if (value) {
+ php_register_variable( (char *)nsapi_reqpb[i].env_var, value,
+track_vars_array ELS_CC PLS_CC );
}
- php_register_variable( (char *)nsapi_reqpb[i].env_var, value,
track_vars_array ELS_CC PLS_CC );
}
for (i = 0; i < nsapi_headers_size; i++) {
- if ((value = pblock_findval(nsapi_headers[i].nsapi_eq,
rc->rq->headers)) == NULL) {
- value = buf;
+ value = pblock_findval(nsapi_headers[i].nsapi_eq, rc->rq->headers);
+ if (value) {
+ php_register_variable( (char *)nsapi_headers[i].env_var,
+value, track_vars_array ELS_CC PLS_CC );
}
- php_register_variable( (char *)nsapi_headers[i].env_var, value,
track_vars_array ELS_CC PLS_CC );
}
for (i = 0; i < nsapi_vars_size; i++) {
- if ((value = pblock_findval(nsapi_vars[i].nsapi_eq, rc->rq->vars)) ==
NULL) {
- value = buf;
+ value = pblock_findval(nsapi_vars[i].nsapi_eq, rc->rq->vars);
+ if (value) {
+ php_register_variable( (char *)nsapi_vars[i].env_var, value,
+track_vars_array ELS_CC PLS_CC );
}
- php_register_variable( (char *)nsapi_vars[i].env_var, value,
track_vars_array ELS_CC PLS_CC );
}
for (i = 0; i < nsapi_client_size; i++) {
- if ((value = pblock_findval(nsapi_client[i].nsapi_eq, rc->sn->client))
== NULL) {
- value = buf;
+ value = pblock_findval(nsapi_client[i].nsapi_eq, rc->sn->client);
+ if (value) {
+ php_register_variable( (char *)nsapi_client[i].env_var, value,
+track_vars_array ELS_CC PLS_CC );
}
- php_register_variable( (char *)nsapi_client[i].env_var, value,
track_vars_array ELS_CC PLS_CC );
}
+
+ value = session_dns(rc->sn);
+ if (value) {
+ php_register_variable("REMOTE_HOST", value, track_vars_array ELS_CC
+PLS_CC );
+ }
+ sprintf(buf, "%d", conf_getglobals()->Vport);
+ php_register_variable("SERVER_PORT", buf, track_vars_array ELS_CC PLS_CC );
+ php_register_variable("SERVER_NAME", util_hostname(), track_vars_array ELS_CC
+PLS_CC );
+ php_register_variable("SERVER_URL", http_uri2url("", ""), track_vars_array
+ELS_CC PLS_CC );
+ php_register_variable("HTTPS", (security_active ? "ON" : "OFF"),
+track_vars_array ELS_CC PLS_CC );
+/* php_register_variable("SERVER_SOFTWARE", MAGNUS_VERSION_STRING,
+track_vars_array ELS_CC PLS_CC ); */
/*
* Special PHP_SELF variable.
*/
- value = pblock_findval( "uri", rc->rq->reqpb );
- if( value != NULL ) {
- php_register_variable( "PHP_SELF", value, track_vars_array ELS_CC
PLS_CC );
- }
+ value = pblock_findval("uri", rc->rq->reqpb);
+ if ( value != NULL ) {
+ php_register_variable("PHP_SELF", value, track_vars_array ELS_CC
+PLS_CC );
+ }
+}
+
+static void
+nsapi_log_message(char *message)
+{
+ SLS_FETCH();
+ nsapi_request_context *rc = (nsapi_request_context *)SG(server_context);
+ log_error(LOG_INFORM, "PHP_log_message", rc->sn, rc->rq,
+ "%s", message);
}
+
static sapi_module_struct nsapi_sapi_module = {
"nsapi", /* name */
"NSAPI", /* pretty name */
@@ -345,7 +368,7 @@
sapi_nsapi_read_cookies, /* read Cookies */
sapi_nsapi_register_server_variables, /* register server variables */
- NULL, /* Log message */
+ nsapi_log_message, /* Log message */
NULL, /* Block interruptions */
NULL, /* Unblock interruptions */
@@ -357,7 +380,7 @@
nsapi_strdup(char *str)
{
if (str != NULL)
- return strdup(str);
+ return STRDUP(str);
return NULL;
}
@@ -365,92 +388,21 @@
nsapi_free(void *addr)
{
if (addr != NULL)
- free(addr);
+ FREE(addr);
}
-/*
- * Add symbols to the interpreter.
- */
static void
-nsapi_add_string(const char *name, const char *buf)
-{
- zval *pval;
- ELS_FETCH();
-
- if (buf == NULL)
- buf = "";
-
- MAKE_STD_ZVAL(pval);
- pval->type = IS_STRING;
- pval->value.str.len = strlen(buf);
- pval->value.str.val = estrndup(buf, pval->value.str.len);
- zend_hash_update(&EG(symbol_table), (char *)name, strlen(name) + 1, &pval,
sizeof(zval *), NULL);
-}
-
-static void
-nsapi_hash_environment(NSLS_D SLS_DC)
-{
- size_t i;
- const char *remote_host = NULL, *server_url = NULL, *path_translated = NULL;
- char *value = NULL, buf[128];
-
- remote_host = session_dns(NSG(sn));
- server_url = http_uri2url("", "");
- path_translated = SG(request_info).path_translated;
-
- *buf = 0;
-
- for (i = 0; i < nsapi_headers_size; i++) {
- if ((value = pblock_findval(nsapi_headers[i].nsapi_eq,
NSG(rq)->headers)) == NULL) {
- value = buf;
- }
- nsapi_add_string(nsapi_headers[i].env_var, value);
- }
-
- for (i = 0; i < nsapi_reqpb_size; i++) {
- if ((value = pblock_findval(nsapi_reqpb[i].nsapi_eq, NSG(rq)->reqpb))
== NULL) {
- value = buf;
- }
- nsapi_add_string(nsapi_reqpb[i].env_var, value);
- }
-
- for (i = 0; i < nsapi_vars_size; i++) {
- if ((value = pblock_findval(nsapi_vars[i].nsapi_eq, NSG(rq)->vars)) ==
NULL) {
- value = buf;
- }
- nsapi_add_string(nsapi_vars[i].env_var, value);
- }
-
- for (i = 0; i < nsapi_client_size; i++) {
- if ((value = pblock_findval(nsapi_client[i].nsapi_eq,
NSG(sn)->client)) == NULL) {
- value = buf;
- }
- nsapi_add_string(nsapi_client[i].env_var, value);
- }
-
- sprintf(buf, "%d", conf_getglobals()->Vport);
- nsapi_add_string("SERVER_PORT", buf);
-
- nsapi_add_string("HTTPS", (security_active ? "ON" : "OFF"));
- nsapi_add_string("SERVER_NAME", server_hostname);
- nsapi_add_string("REMOTE_HOST", remote_host);
- nsapi_add_string("SERVER_URL", server_url);
-/* nsapi_add_string("SERVER_SOFTWARE", MAGNUS_VERSION_STRING); */
- nsapi_add_string("PATH_TRANSLATED", path_translated);
-}
-
-static void
nsapi_request_ctor(NSLS_D SLS_DC)
{
char *query_string = pblock_findval("query", NSG(rq)->reqpb);
char *uri = pblock_findval("uri", NSG(rq)->reqpb);
char *path_info = pblock_findval("path-info", NSG(rq)->vars);
- char *path_translated = NULL;
+ char *path_translated = pblock_findval("path", NSG(rq)->vars);
char *request_method = pblock_findval("method", NSG(rq)->reqpb);
char *content_type = pblock_findval("content-type", NSG(rq)->headers);
char *content_length = pblock_findval("content-length", NSG(rq)->headers);
- if (uri != NULL)
+ if ((path_translated == NULL) && (uri != NULL))
path_translated = request_translate_uri(uri, NSG(sn));
#if defined(NSAPI_DEBUG)
@@ -472,7 +424,7 @@
#endif
SG(request_info).query_string = nsapi_strdup(query_string);
- SG(request_info).request_uri = nsapi_strdup(path_info);
+ SG(request_info).request_uri = nsapi_strdup(uri);
SG(request_info).request_method = nsapi_strdup(request_method);
SG(request_info).path_translated = nsapi_strdup(path_translated);
SG(request_info).content_type = nsapi_strdup(content_type);
@@ -514,17 +466,13 @@
"Parsing [%s]", SG(request_info).path_translated);
#endif
-#if 0
- result = php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC);
- if (result == FAILURE) {
- return FAILURE;
- }
-#endif
-
- nsapi_hash_environment(NSLS_C SLS_CC);
php_execute_script(&file_handle CLS_CC ELS_CC PLS_CC);
php_request_shutdown(NULL);
+#if defined(NSAPI_DEBUG)
+ log_error(LOG_INFORM, "nsapi_module_main", NSG(sn), NSG(rq),
+ "PHP request finished Ok");
+#endif
return SUCCESS;
}
@@ -560,7 +508,7 @@
SLS_FETCH();
- request_context = (nsapi_request_context
*)malloc(sizeof(nsapi_request_context));
+ request_context = (nsapi_request_context
+*)MALLOC(sizeof(nsapi_request_context));
request_context->pb = pb;
request_context->sn = sn;
request_context->rq = rq;
@@ -572,7 +520,7 @@
retval = nsapi_module_main(NSLS_C SLS_CC);
nsapi_request_dtor(NSLS_C SLS_CC);
- free(request_context);
+ FREE(request_context);
return (retval == SUCCESS) ? REQ_PROCEED : REQ_EXIT;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]