You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by co...@hyperreal.org on 1998/09/25 14:27:06 UTC

cvs commit: apache-1.3/src/main http_log.c http_protocol.c

coar        98/09/25 05:27:06

  Modified:    .        STATUS
               src/main http_log.c http_protocol.c
  Log:
  	Put back the default server status pages, with no inclusion of
  	error-notes, except for HTTP_INTERNAL_SERVER_ERROR, LENGTH_REQUIRED,
  	and HTTP_BAD_REQUEST.  Also only store ap_log_rerror() text in
  	error-notes if the severity is 'warning' or worse.
  
  PR:		3071
  Reviewed by:	Roy Fielding
  
  Revision  Changes    Path
  1.493     +0 -10     apache-1.3/STATUS
  
  Index: STATUS
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/STATUS,v
  retrieving revision 1.492
  retrieving revision 1.493
  diff -u -r1.492 -r1.493
  --- STATUS	1998/09/24 22:01:08	1.492
  +++ STATUS	1998/09/25 12:27:04	1.493
  @@ -25,16 +25,6 @@
   
   Available Patches:
   
  -    * Ken's fix for error pages and error-notes (#2)
  -      Take references to error-notes out of ap_send_error_response()
  -      except for internal HTTP_BAD_REQUEST uses.  Otherwise,
  -      leave its use for page customisation to ErrorDocuments.
  -      Only copy ap_log_rerror() text into error-notes if the
  -      level is 'warning' or more severe AND there's not already
  -      something stored there.
  -	Message-ID: <36...@Golux.Com>
  -	Status: Ken +1
  -
       * Earle Ake: Apache 1.3.1 port to Pyramid DC/OSx
         <19...@wpdiss1.wpafb.af.mil>
   
  
  
  
  1.70      +11 -2     apache-1.3/src/main/http_log.c
  
  Index: http_log.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/http_log.c,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -u -r1.69 -r1.70
  --- http_log.c	1998/09/22 15:43:42	1.69
  +++ http_log.c	1998/09/25 12:27:05	1.70
  @@ -440,9 +440,18 @@
   
       va_start(args, fmt);
       log_error_core(file, line, level, r->server, r, fmt, args);
  -    if (ap_table_get(r->notes, "error-notes") == NULL) {
  +    /*
  +     * IF the error level is 'warning' or more severe,
  +     * AND there isn't already error text associated with this request,
  +     * THEN make the message text available to ErrorDocument and
  +     * other error processors.  This can be disabled by stuffing
  +     * something, even an empty string, into the "error-notes" cell
  +     * before calling this routine.
  +     */
  +    if (((level & APLOG_LEVELMASK) <= APLOG_WARNING)
  +	&& (ap_table_get(r->notes, "error-notes") == NULL)) {
   	ap_table_setn(r->notes, "error-notes",
  -	    ap_pvsprintf(r->pool, fmt, args));
  +		      ap_pvsprintf(r->pool, fmt, args));
       }
       va_end(args);
   }
  
  
  
  1.240     +141 -126  apache-1.3/src/main/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/http_protocol.c,v
  retrieving revision 1.239
  retrieving revision 1.240
  diff -u -r1.239 -r1.240
  --- http_protocol.c	1998/08/25 09:15:31	1.239
  +++ http_protocol.c	1998/09/25 12:27:05	1.240
  @@ -2127,132 +2127,147 @@
                     "</TITLE>\n</HEAD><BODY>\n<H1>", h1, "</H1>\n",
                     NULL);
   
  -        if ((error_notes = ap_table_get(r->notes, "error-notes"))) {
  -            ap_bputs(error_notes, fd);
  -        }
  -        else
  -            switch (status) {
  -            case REDIRECT:
  -            case MOVED:
  -                ap_bvputs(fd, "The document has moved <A HREF=\"",
  -                          ap_escape_html(r->pool, location), "\">here</A>.<P>\n", NULL);
  -                break;
  -            case HTTP_SEE_OTHER:
  -                ap_bvputs(fd, "The answer to your request is located <A HREF=\"",
  -                          ap_escape_html(r->pool, location), "\">here</A>.<P>\n", NULL);
  -                break;
  -            case HTTP_USE_PROXY:
  -                ap_bvputs(fd, "This resource is only accessible through the proxy\n",
  -                ap_escape_html(r->pool, location), "<BR>\nYou will need to ",
  -                     "configure your client to use that proxy.<P>\n", NULL);
  -                break;
  -            case HTTP_PROXY_AUTHENTICATION_REQUIRED:
  -            case AUTH_REQUIRED:
  -                ap_bputs("This server could not verify that you\n", fd);
  -                ap_bputs("are authorized to access the document you\n", fd);
  -                ap_bputs("requested.  Either you supplied the wrong\n", fd);
  -                ap_bputs("credentials (e.g., bad password), or your\n", fd);
  -                ap_bputs("browser doesn't understand how to supply\n", fd);
  -                ap_bputs("the credentials required.<P>\n", fd);
  -                break;
  -            case BAD_REQUEST:
  -                ap_bputs("Your browser sent a request that\n", fd);
  -                ap_bputs("this server could not understand.<P>\n", fd);
  -                break;
  -            case HTTP_FORBIDDEN:
  -                ap_bvputs(fd, "You don't have permission to access ",
  -                  ap_escape_html(r->pool, r->uri), "\non this server.<P>\n",
  -                          NULL);
  -                break;
  -            case NOT_FOUND:
  -                ap_bvputs(fd, "The requested URL ", ap_escape_html(r->pool, r->uri),
  -                          " was not found on this server.<P>\n", NULL);
  -                break;
  -            case METHOD_NOT_ALLOWED:
  -                ap_bvputs(fd, "The requested method ", r->method, " is not allowed "
  -                          "for the URL ", ap_escape_html(r->pool, r->uri),
  -                          ".<P>\n", NULL);
  -                break;
  -            case NOT_ACCEPTABLE:
  -                ap_bvputs(fd,
  -                 "An appropriate representation of the requested resource ",
  -                          ap_escape_html(r->pool, r->uri),
  -                          " could not be found on this server.<P>\n", NULL);
  -                /* fall through */
  -            case MULTIPLE_CHOICES:
  -                {
  -                    const char *list;
  -                    if ((list = ap_table_get(r->notes, "variant-list")))
  -                        ap_bputs(list, fd);
  -                }
  -                break;
  -            case LENGTH_REQUIRED:
  -                ap_bvputs(fd, "A request of the requested method ", r->method,
  -                          " requires a valid Content-length.<P>\n", NULL);
  -                break;
  -            case PRECONDITION_FAILED:
  -                ap_bvputs(fd, "The precondition on the request for the URL ",
  -                ap_escape_html(r->pool, r->uri), " evaluated to false.<P>\n",
  -                          NULL);
  -                break;
  -            case NOT_IMPLEMENTED:
  -                ap_bvputs(fd, ap_escape_html(r->pool, r->method), " to ",
  -                          ap_escape_html(r->pool, r->uri), " not supported.<P>\n", NULL);
  -                break;
  -            case BAD_GATEWAY:
  -                ap_bputs("The proxy server received an invalid\015\012", fd);
  -                ap_bputs("response from an upstream server.<P>\015\012", fd);
  -                break;
  -            case VARIANT_ALSO_VARIES:
  -                ap_bvputs(fd, "A variant for the requested entity  ",
  -                          ap_escape_html(r->pool, r->uri), " is itself a ",
  -                          "transparently negotiable resource.<P>\n", NULL);
  -                break;
  -            case HTTP_REQUEST_TIME_OUT:
  -                ap_bputs("I'm tired of waiting for your request.\n", fd);
  -                break;
  -            case HTTP_GONE:
  -                ap_bvputs(fd, "The requested resource<BR>",
  -                          ap_escape_html(r->pool, r->uri),
  -                          "<BR>\nis no longer available on this server ",
  -                          "and there is no forwarding address.\n",
  -                  "Please remove all references to this resource.\n", NULL);
  -                break;
  -            case HTTP_REQUEST_ENTITY_TOO_LARGE:
  -                ap_bvputs(fd, "The requested resource<BR>",
  -                          ap_escape_html(r->pool, r->uri), "<BR>\n",
  -                          "does not allow request data with ", r->method,
  -                          " requests, or the amount of data provided in\n",
  -                          "the request exceeds the capacity limit.\n", NULL);
  -                break;
  -            case HTTP_REQUEST_URI_TOO_LARGE:
  -                ap_bputs("The requested URL's length exceeds the capacity\n", fd);
  -                ap_bputs("limit for this server.\n", fd);
  -                break;
  -            case HTTP_UNSUPPORTED_MEDIA_TYPE:
  -                ap_bputs("The supplied request data is not in a format\n", fd);
  -                ap_bputs("acceptable for processing by this resource.\n", fd);
  -                break;
  -            case HTTP_SERVICE_UNAVAILABLE:
  -                ap_bputs("The server is temporarily unable to service your\n", fd);
  -                ap_bputs("request due to maintenance downtime or capacity\n", fd);
  -                ap_bputs("problems. Please try again later.\n", fd);
  -                break;
  -            case HTTP_GATEWAY_TIME_OUT:
  -                ap_bputs("The proxy server did not receive a timely response\n", fd);
  -                ap_bputs("from the upstream server.<P>\n", fd);
  -                break;
  -            default:            /* HTTP_INTERNAL_SERVER_ERROR */
  -                ap_bputs("The server encountered an internal error or\n", fd);
  -                ap_bputs("misconfiguration and was unable to complete\n", fd);
  -                ap_bputs("your request.<P>\n", fd);
  -                ap_bputs("Please contact the server administrator,\n ", fd);
  -                ap_bputs(ap_escape_html(r->pool, r->server->server_admin), fd);
  -                ap_bputs(" and inform them of the time the error occurred,\n", fd);
  -                ap_bputs("and anything you might have done that may have\n", fd);
  -                ap_bputs("caused the error.<P>\n", fd);
  -                break;
  -            }
  +	switch (status) {
  +	case REDIRECT:
  +	case MOVED:
  +	    ap_bvputs(fd, "The document has moved <A HREF=\"",
  +		      ap_escape_html(r->pool, location), "\">here</A>.<P>\n",
  +		      NULL);
  +	    break;
  +	case HTTP_SEE_OTHER:
  +	    ap_bvputs(fd, "The answer to your request is located <A HREF=\"",
  +		      ap_escape_html(r->pool, location), "\">here</A>.<P>\n",
  +		      NULL);
  +	    break;
  +	case HTTP_USE_PROXY:
  +	    ap_bvputs(fd, "This resource is only accessible "
  +		      "through the proxy\n",
  +		      ap_escape_html(r->pool, location),
  +		      "<BR>\nYou will need to ",
  +		      "configure your client to use that proxy.<P>\n", NULL);
  +	    break;
  +	case HTTP_PROXY_AUTHENTICATION_REQUIRED:
  +	case AUTH_REQUIRED:
  +	    ap_bputs("This server could not verify that you\n", fd);
  +	    ap_bputs("are authorized to access the document you\n", fd);
  +	    ap_bputs("requested.  Either you supplied the wrong\n", fd);
  +	    ap_bputs("credentials (e.g., bad password), or your\n", fd);
  +	    ap_bputs("browser doesn't understand how to supply\n", fd);
  +	    ap_bputs("the credentials required.<P>\n", fd);
  +	    break;
  +	case BAD_REQUEST:
  +	    ap_bputs("Your browser sent a request that\n", fd);
  +	    ap_bputs("this server could not understand.<P>\n", fd);
  +	    if (error_notes = ap_table_get(r->notes, "error-notes") != NULL) {
  +		ap_bvputs(fd, error_notes, "<P>\n", NULL);
  +	    }
  +	    break;
  +	case HTTP_FORBIDDEN:
  +	    ap_bvputs(fd, "You don't have permission to access ",
  +		      ap_escape_html(r->pool, r->uri),
  +		      "\non this server.<P>\n", NULL);
  +	    break;
  +	case NOT_FOUND:
  +	    ap_bvputs(fd, "The requested URL ",
  +		      ap_escape_html(r->pool, r->uri),
  +		      " was not found on this server.<P>\n", NULL);
  +	    break;
  +	case METHOD_NOT_ALLOWED:
  +	    ap_bvputs(fd, "The requested method ", r->method,
  +		      " is not allowed "
  +		      "for the URL ", ap_escape_html(r->pool, r->uri),
  +		      ".<P>\n", NULL);
  +	    break;
  +	case NOT_ACCEPTABLE:
  +	    ap_bvputs(fd,
  +		      "An appropriate representation of the "
  +		      "requested resource ",
  +		      ap_escape_html(r->pool, r->uri),
  +		      " could not be found on this server.<P>\n", NULL);
  +	    /* fall through */
  +	case MULTIPLE_CHOICES:
  +	    {
  +		const char *list;
  +		if ((list = ap_table_get(r->notes, "variant-list")))
  +		    ap_bputs(list, fd);
  +	    }
  +	    break;
  +	case LENGTH_REQUIRED:
  +	    ap_bvputs(fd, "A request of the requested method ", r->method,
  +		      " requires a valid Content-length.<P>\n", NULL);
  +	    if (error_notes = ap_table_get(r->notes, "error-notes") != NULL) {
  +		ap_bvputs(fd, error_notes, "<P>\n", NULL);
  +	    }
  +	    break;
  +	case PRECONDITION_FAILED:
  +	    ap_bvputs(fd, "The precondition on the request for the URL ",
  +		      ap_escape_html(r->pool, r->uri),
  +		      " evaluated to false.<P>\n", NULL);
  +	    break;
  +	case NOT_IMPLEMENTED:
  +	    ap_bvputs(fd, ap_escape_html(r->pool, r->method), " to ",
  +		      ap_escape_html(r->pool, r->uri),
  +		      " not supported.<P>\n", NULL);
  +	    break;
  +	case BAD_GATEWAY:
  +	    ap_bputs("The proxy server received an invalid\015\012", fd);
  +	    ap_bputs("response from an upstream server.<P>\015\012", fd);
  +	    break;
  +	case VARIANT_ALSO_VARIES:
  +	    ap_bvputs(fd, "A variant for the requested entity  ",
  +		      ap_escape_html(r->pool, r->uri), " is itself a ",
  +		      "transparently negotiable resource.<P>\n", NULL);
  +	    break;
  +	case HTTP_REQUEST_TIME_OUT:
  +	    ap_bputs("I'm tired of waiting for your request.\n", fd);
  +	    break;
  +	case HTTP_GONE:
  +	    ap_bvputs(fd, "The requested resource<BR>",
  +		      ap_escape_html(r->pool, r->uri),
  +		      "<BR>\nis no longer available on this server ",
  +		      "and there is no forwarding address.\n",
  +		      "Please remove all references to this resource.\n",
  +		      NULL);
  +	    break;
  +	case HTTP_REQUEST_ENTITY_TOO_LARGE:
  +	    ap_bvputs(fd, "The requested resource<BR>",
  +		      ap_escape_html(r->pool, r->uri), "<BR>\n",
  +		      "does not allow request data with ", r->method,
  +		      " requests, or the amount of data provided in\n",
  +		      "the request exceeds the capacity limit.\n", NULL);
  +	    break;
  +	case HTTP_REQUEST_URI_TOO_LARGE:
  +	    ap_bputs("The requested URL's length exceeds the capacity\n", fd);
  +	    ap_bputs("limit for this server.\n", fd);
  +	    break;
  +	case HTTP_UNSUPPORTED_MEDIA_TYPE:
  +	    ap_bputs("The supplied request data is not in a format\n", fd);
  +	    ap_bputs("acceptable for processing by this resource.\n", fd);
  +	    break;
  +	case HTTP_SERVICE_UNAVAILABLE:
  +	    ap_bputs("The server is temporarily unable to service your\n", fd);
  +	    ap_bputs("request due to maintenance downtime or capacity\n", fd);
  +	    ap_bputs("problems. Please try again later.\n", fd);
  +	    break;
  +	case HTTP_GATEWAY_TIME_OUT:
  +	    ap_bputs("The proxy server did not receive a timely response\n",
  +		     fd);
  +	    ap_bputs("from the upstream server.<P>\n", fd);
  +	    break;
  +	default:            /* HTTP_INTERNAL_SERVER_ERROR */
  +	    ap_bputs("The server encountered an internal error or\n", fd);
  +	    ap_bputs("misconfiguration and was unable to complete\n", fd);
  +	    ap_bputs("your request.<P>\n", fd);
  +	    ap_bputs("Please contact the server administrator,\n ", fd);
  +	    ap_bputs(ap_escape_html(r->pool, r->server->server_admin), fd);
  +	    ap_bputs(" and inform them of the time the error occurred,\n", fd);
  +	    ap_bputs("and anything you might have done that may have\n", fd);
  +	    ap_bputs("caused the error.<P>\n", fd);
  +	    if (error_notes = ap_table_get(r->notes, "error-notes") != NULL) {
  +		ap_bvputs(fd, error_notes, "<P>\n", NULL);
  +	    }
  +	    break;
  +	}
   
           if (recursive_error) {
               ap_bvputs(fd, "<P>Additionally, a ",