refactor html-error so send_http_headers() can take extra arg
we already required an extra argument inside the headers sent for 401 and 407 error responses, move those to sent_http_error_message() and refactor send_http_headers() to always take the extra argument. in calling sites where the extra arg isn't needed, use "".
This commit is contained in:
		
							parent
							
								
									c4231e58bf
								
							
						
					
					
						commit
						48860bbe26
					
				@ -133,7 +133,9 @@ send_html_file (FILE *infile, struct conn_s *connptr)
 | 
			
		||||
        return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int send_http_headers (struct conn_s *connptr, int code, const char *message)
 | 
			
		||||
int send_http_headers (
 | 
			
		||||
        struct conn_s *connptr, int code,
 | 
			
		||||
        const char *message, const char *extra)
 | 
			
		||||
{
 | 
			
		||||
        const char headers[] =
 | 
			
		||||
            "HTTP/1.0 %d %s\r\n"
 | 
			
		||||
@ -142,21 +144,9 @@ int send_http_headers (struct conn_s *connptr, int code, const char *message)
 | 
			
		||||
            "%s"
 | 
			
		||||
            "Connection: close\r\n" "\r\n";
 | 
			
		||||
 | 
			
		||||
        const char p_auth_str[] =
 | 
			
		||||
            "Proxy-Authenticate: Basic realm=\""
 | 
			
		||||
            PACKAGE_NAME "\"\r\n";
 | 
			
		||||
 | 
			
		||||
        const char w_auth_str[] =
 | 
			
		||||
            "WWW-Authenticate: Basic realm=\""
 | 
			
		||||
            PACKAGE_NAME "\"\r\n";
 | 
			
		||||
 | 
			
		||||
	/* according to rfc7235, the 407 error must be accompanied by
 | 
			
		||||
           a Proxy-Authenticate header field. */
 | 
			
		||||
        const char *add = code == 407 ? p_auth_str : (code == 401 ? w_auth_str : "");
 | 
			
		||||
 | 
			
		||||
        return (write_message (connptr->client_fd, headers,
 | 
			
		||||
                               code, message, PACKAGE, VERSION,
 | 
			
		||||
                               add));
 | 
			
		||||
                               extra));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
@ -180,8 +170,21 @@ int send_http_error_message (struct conn_s *connptr)
 | 
			
		||||
            "<p><em>Generated by %s version %s.</em></p>\n" "</body>\n"
 | 
			
		||||
            "</html>\n";
 | 
			
		||||
 | 
			
		||||
        const char p_auth_str[] =
 | 
			
		||||
            "Proxy-Authenticate: Basic realm=\""
 | 
			
		||||
            PACKAGE_NAME "\"\r\n";
 | 
			
		||||
 | 
			
		||||
        const char w_auth_str[] =
 | 
			
		||||
            "WWW-Authenticate: Basic realm=\""
 | 
			
		||||
            PACKAGE_NAME "\"\r\n";
 | 
			
		||||
 | 
			
		||||
	/* according to rfc7235, the 407 error must be accompanied by
 | 
			
		||||
           a Proxy-Authenticate header field. */
 | 
			
		||||
        const char *add = connptr->error_number == 407 ? p_auth_str :
 | 
			
		||||
                          (connptr->error_number == 401 ? w_auth_str : "");
 | 
			
		||||
 | 
			
		||||
        send_http_headers (connptr, connptr->error_number,
 | 
			
		||||
                           connptr->error_string);
 | 
			
		||||
                           connptr->error_string, add);
 | 
			
		||||
 | 
			
		||||
        error_file = get_html_file (connptr->error_number);
 | 
			
		||||
        if (!(infile = fopen (error_file, "r"))) {
 | 
			
		||||
 | 
			
		||||
@ -33,7 +33,7 @@ extern int add_error_variable (struct conn_s *connptr, const char *key,
 | 
			
		||||
                               const char *val);
 | 
			
		||||
extern int send_html_file (FILE * infile, struct conn_s *connptr);
 | 
			
		||||
extern int send_http_headers (struct conn_s *connptr, int code,
 | 
			
		||||
                              const char *message);
 | 
			
		||||
                              const char *message, const char *extra);
 | 
			
		||||
extern int add_standard_vars (struct conn_s *connptr);
 | 
			
		||||
 | 
			
		||||
#endif /* !TINYPROXY_HTML_ERROR_H */
 | 
			
		||||
 | 
			
		||||
@ -122,7 +122,7 @@ err_minus_one:
 | 
			
		||||
        add_error_variable (connptr, "deniedconns", denied);
 | 
			
		||||
        add_error_variable (connptr, "refusedconns", refused);
 | 
			
		||||
        add_standard_vars (connptr);
 | 
			
		||||
        send_http_headers (connptr, 200, "Statistic requested");
 | 
			
		||||
        send_http_headers (connptr, 200, "Statistic requested", "");
 | 
			
		||||
        send_html_file (statfile, connptr);
 | 
			
		||||
        fclose (statfile);
 | 
			
		||||
        pthread_mutex_unlock(&stats_file_lock);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user