The change from request_translate_uri to rq->vars "path"
also fixes the use of PATH_INFO and PHP as a default
index. Without this, PHP halts without error on
URI's like /app (with /app/index.php) or /script.php/commit.

The same problems with PATH_INFO & default index occur
when running PHP as a CGI. I've made a few changes to
cgi_main.c to fix this but havn't tested on anything but
NES 362.

I've been encountering quite a few bus error & seg faults
when using the NSAPI plugin (up to 5 a day) - these are
usually caught by uxwdog.  Anybody else found the same?

I noticed also that the latest snapshot now includes the check
for ieeefp.h.

*** sapi/cgi/cgi_main.c.orig    Sat Jan 20 00:09:12 2001
--- sapi/cgi/cgi_main.c Sat Jan 20 00:08:42 2001
***************
*** 168,174 ****
                        l += strlen(sn);
                if (pi)
                        l += strlen(pi);
!               if (pi && sn && !strcmp(pi, sn)) {
                        l -= strlen(pi);
                        pi = NULL;
                }
--- 168,174 ----
                        l += strlen(sn);
                if (pi)
                        l += strlen(pi);
!               if (pi && sn && !strncmp(pi, sn, strlen(sn))) {
                        l -= strlen(pi);
                        pi = NULL;
                }
***************
*** 314,323 ****
--- 314,337 ----
  
        SG(request_info).request_method = getenv("REQUEST_METHOD");
        SG(request_info).query_string = getenv("QUERY_STRING");
+ /*
        SG(request_info).request_uri = getenv("PATH_INFO");
        if (!SG(request_info).request_uri) {
                SG(request_info).request_uri = getenv("SCRIPT_NAME");
        }
+ */
+       
+       SG(request_info).request_uri = getenv("SCRIPT_NAME");
+       if (SG(request_info).request_uri && SG(request_info).argv0 && 
+IS_SLASH(SG(request_info).request_uri[strlen(SG(request_info).request_uri)-1])) {
+               char *arg_file = strrchr(SG(request_info).argv0,DEFAULT_SLASH);
+               if (arg_file) {
+                       char *script_name = 
+emalloc(strlen(SG(request_info).request_uri)+strlen(arg_file)+1);
+                       strcpy(script_name,SG(request_info).request_uri);
+                       strcat(script_name,arg_file+1);
+                       SG(request_info).request_uri = script_name;
+               }
+       }
+ 
        SG(request_info).path_translated = NULL; /* we have to update it later, when 
we have that information */
        SG(request_info).content_type = getenv("CONTENT_TYPE");
        SG(request_info).content_length = (content_length?atoi(content_length):0);
***************
*** 507,518 ****
                ap_php_optarg = orig_optarg;
        }
  
        init_request_info(SLS_C);
        SG(server_context) = (void *) 1; /* avoid server_context==NULL checks */
        CG(extended_info) = 0;
  
-       SG(request_info).argv0 = argv0;
- 
        zend_llist_init(&global_vars, sizeof(char *), NULL, 0);
  
        if (!cgi) {                                     /* never execute the arguments 
if you are a CGI */
--- 521,532 ----
                ap_php_optarg = orig_optarg;
        }
  
+       SG(request_info).argv0 = argv0;
+ 
        init_request_info(SLS_C);
        SG(server_context) = (void *) 1; /* avoid server_context==NULL checks */
        CG(extended_info) = 0;
  
        zend_llist_init(&global_vars, sizeof(char *), NULL, 0);
  
        if (!cgi) {                                     /* never execute the arguments 
if you are a CGI */
*** sapi/nsapi/nsapi.c.orig     Sat Jan 20 15:11:01 2001
--- sapi/nsapi/nsapi.c  Sat Jan 20 15:31:34 2001
***************
*** 101,106 ****
--- 101,107 ----
        { "HTTP_ACCEPT_LANGUAGE",       "accept-language" },
        { "HTTP_AUTHORIZATION",         "authorization" },
        { "HTTP_COOKIE",                "cookie" },
+       { "HTTP_CLIENT_IP",             "client-ip" },
        { "HTTP_IF_MODIFIED_SINCE",     "if-modified-since" },
        { "HTTP_REFERER",               "referer" },
        { "HTTP_USER_AGENT",            "user-agent" },
***************
*** 445,457 ****
        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 *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)
                path_translated = request_translate_uri(uri, NSG(sn));
  
  #if defined(NSAPI_DEBUG)
        log_error(LOG_INFORM, "nsapi_request_ctor", NSG(sn), NSG(rq),
--- 446,460 ----
        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 = 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)
                path_translated = request_translate_uri(uri, NSG(sn));
+       */
  
  #if defined(NSAPI_DEBUG)
        log_error(LOG_INFORM, "nsapi_request_ctor", NSG(sn), NSG(rq),

-- 
PHP Development 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]

Reply via email to