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;
 | 
					        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[] =
 | 
					        const char headers[] =
 | 
				
			||||||
            "HTTP/1.0 %d %s\r\n"
 | 
					            "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"
 | 
					            "%s"
 | 
				
			||||||
            "Connection: close\r\n" "\r\n";
 | 
					            "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,
 | 
					        return (write_message (connptr->client_fd, headers,
 | 
				
			||||||
                               code, message, PACKAGE, VERSION,
 | 
					                               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"
 | 
					            "<p><em>Generated by %s version %s.</em></p>\n" "</body>\n"
 | 
				
			||||||
            "</html>\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,
 | 
					        send_http_headers (connptr, connptr->error_number,
 | 
				
			||||||
                           connptr->error_string);
 | 
					                           connptr->error_string, add);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        error_file = get_html_file (connptr->error_number);
 | 
					        error_file = get_html_file (connptr->error_number);
 | 
				
			||||||
        if (!(infile = fopen (error_file, "r"))) {
 | 
					        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);
 | 
					                               const char *val);
 | 
				
			||||||
extern int send_html_file (FILE * infile, struct conn_s *connptr);
 | 
					extern int send_html_file (FILE * infile, struct conn_s *connptr);
 | 
				
			||||||
extern int send_http_headers (struct conn_s *connptr, int code,
 | 
					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);
 | 
					extern int add_standard_vars (struct conn_s *connptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* !TINYPROXY_HTML_ERROR_H */
 | 
					#endif /* !TINYPROXY_HTML_ERROR_H */
 | 
				
			||||||
 | 
				
			|||||||
@ -122,7 +122,7 @@ err_minus_one:
 | 
				
			|||||||
        add_error_variable (connptr, "deniedconns", denied);
 | 
					        add_error_variable (connptr, "deniedconns", denied);
 | 
				
			||||||
        add_error_variable (connptr, "refusedconns", refused);
 | 
					        add_error_variable (connptr, "refusedconns", refused);
 | 
				
			||||||
        add_standard_vars (connptr);
 | 
					        add_standard_vars (connptr);
 | 
				
			||||||
        send_http_headers (connptr, 200, "Statistic requested");
 | 
					        send_http_headers (connptr, 200, "Statistic requested", "");
 | 
				
			||||||
        send_html_file (statfile, connptr);
 | 
					        send_html_file (statfile, connptr);
 | 
				
			||||||
        fclose (statfile);
 | 
					        fclose (statfile);
 | 
				
			||||||
        pthread_mutex_unlock(&stats_file_lock);
 | 
					        pthread_mutex_unlock(&stats_file_lock);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user