Removed the trim() function and move it into chomp()/utils.c
This commit is contained in:
parent
6de3bf2f6d
commit
c6c7427e8d
60
src/reqs.c
60
src/reqs.c
@ -1,4 +1,4 @@
|
|||||||
/* $Id: reqs.c,v 1.41 2001-11-22 00:31:10 rjkaes Exp $
|
/* $Id: reqs.c,v 1.42 2001-11-23 01:17:19 rjkaes Exp $
|
||||||
*
|
*
|
||||||
* This is where all the work in tinyproxy is actually done. Incoming
|
* This is where all the work in tinyproxy is actually done. Incoming
|
||||||
* connections have a new thread created for them. The thread then
|
* connections have a new thread created for them. The thread then
|
||||||
@ -41,32 +41,6 @@
|
|||||||
#define HTTP500ERROR "Unable to connect to remote server."
|
#define HTTP500ERROR "Unable to connect to remote server."
|
||||||
#define HTTP503ERROR "Internal server error."
|
#define HTTP503ERROR "Internal server error."
|
||||||
|
|
||||||
#define LINE_LENGTH (MAXBUFFSIZE / 3)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Remove any new lines or carriage returns from the end of a string.
|
|
||||||
*/
|
|
||||||
static inline void
|
|
||||||
trim(char *string, unsigned int len)
|
|
||||||
{
|
|
||||||
char *ptr;
|
|
||||||
|
|
||||||
assert(string != NULL);
|
|
||||||
assert(len > 0);
|
|
||||||
|
|
||||||
ptr = string + len - 1;
|
|
||||||
while (*ptr == '\r' || *ptr == '\n') {
|
|
||||||
*ptr-- = '\0';
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Don't let the ptr back past the beginning of the
|
|
||||||
* string.
|
|
||||||
*/
|
|
||||||
if (ptr < string)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read in the first line from the client (the request line for HTTP
|
* Read in the first line from the client (the request line for HTTP
|
||||||
* connections. The request line is allocated from the heap, but it must
|
* connections. The request line is allocated from the heap, but it must
|
||||||
@ -90,7 +64,7 @@ read_request_line(struct conn_s *connptr)
|
|||||||
/*
|
/*
|
||||||
* Strip the new line and character return from the string.
|
* Strip the new line and character return from the string.
|
||||||
*/
|
*/
|
||||||
trim(request_buffer, len);
|
chomp(request_buffer, len);
|
||||||
|
|
||||||
log_message(LOG_CONN, "Request (file descriptor %d): %s",
|
log_message(LOG_CONN, "Request (file descriptor %d): %s",
|
||||||
connptr->client_fd, request_buffer);
|
connptr->client_fd, request_buffer);
|
||||||
@ -144,8 +118,7 @@ extract_http_url(const char *url, struct request_s *request)
|
|||||||
if (sscanf
|
if (sscanf
|
||||||
(url, "http://%[^:/]:%d%s", request->host, &request->port,
|
(url, "http://%[^:/]:%d%s", request->host, &request->port,
|
||||||
request->path) == 3) ;
|
request->path) == 3) ;
|
||||||
else if (sscanf(url, "http://%[^/]%s", request->host, request->path) ==
|
else if (sscanf(url, "http://%[^/]%s", request->host, request->path) == 2)
|
||||||
2)
|
|
||||||
request->port = 80;
|
request->port = 80;
|
||||||
else if (sscanf(url, "http://%[^:/]:%d", request->host, &request->port)
|
else if (sscanf(url, "http://%[^:/]:%d", request->host, &request->port)
|
||||||
== 2)
|
== 2)
|
||||||
@ -202,8 +175,7 @@ establish_http_connection(struct conn_s *connptr, struct request_s *request)
|
|||||||
return -1;
|
return -1;
|
||||||
if (safe_write(connptr->server_fd, " ", 1) < 0)
|
if (safe_write(connptr->server_fd, " ", 1) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
if (safe_write(connptr->server_fd, request->path, strlen(request->path))
|
if (safe_write(connptr->server_fd, request->path, strlen(request->path)) < 0)
|
||||||
< 0)
|
|
||||||
return -1;
|
return -1;
|
||||||
if (safe_write(connptr->server_fd, " ", 1) < 0)
|
if (safe_write(connptr->server_fd, " ", 1) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
@ -215,8 +187,7 @@ establish_http_connection(struct conn_s *connptr, struct request_s *request)
|
|||||||
*/
|
*/
|
||||||
if (safe_write(connptr->server_fd, "Host: ", 6) < 0)
|
if (safe_write(connptr->server_fd, "Host: ", 6) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
if (safe_write(connptr->server_fd, request->host, strlen(request->host))
|
if (safe_write(connptr->server_fd, request->host, strlen(request->host)) < 0)
|
||||||
< 0)
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (safe_write(connptr->server_fd, "\r\n", 2) < 0)
|
if (safe_write(connptr->server_fd, "\r\n", 2) < 0)
|
||||||
@ -250,8 +221,7 @@ send_ssl_response(struct conn_s *connptr)
|
|||||||
strlen(SSL_CONNECTION_RESPONSE)) < 0)
|
strlen(SSL_CONNECTION_RESPONSE)) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (safe_write(connptr->client_fd, PROXY_AGENT, strlen(PROXY_AGENT)) <
|
if (safe_write(connptr->client_fd, PROXY_AGENT, strlen(PROXY_AGENT)) < 0)
|
||||||
0)
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (safe_write(connptr->client_fd, "\r\n", 2) < 0)
|
if (safe_write(connptr->client_fd, "\r\n", 2) < 0)
|
||||||
@ -512,9 +482,7 @@ process_client_headers(struct conn_s *connptr)
|
|||||||
{
|
{
|
||||||
char *header;
|
char *header;
|
||||||
long content_length = -1;
|
long content_length = -1;
|
||||||
#if 0
|
|
||||||
short int sent_via_header = 0;
|
short int sent_via_header = 0;
|
||||||
#endif
|
|
||||||
|
|
||||||
static char *skipheaders[] = {
|
static char *skipheaders[] = {
|
||||||
"proxy-connection",
|
"proxy-connection",
|
||||||
@ -551,7 +519,7 @@ process_client_headers(struct conn_s *connptr)
|
|||||||
safefree(header);
|
safefree(header);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
/*
|
/*
|
||||||
* If we find a Via header we need to append our information
|
* If we find a Via header we need to append our information
|
||||||
* to the end of it.
|
* to the end of it.
|
||||||
@ -559,6 +527,7 @@ process_client_headers(struct conn_s *connptr)
|
|||||||
if (strncasecmp(header, "via", 3) == 0) {
|
if (strncasecmp(header, "via", 3) == 0) {
|
||||||
char hostname[128];
|
char hostname[128];
|
||||||
char via_header_buffer[256];
|
char via_header_buffer[256];
|
||||||
|
char *new_header;
|
||||||
|
|
||||||
sent_via_header = 1;
|
sent_via_header = 1;
|
||||||
|
|
||||||
@ -569,11 +538,16 @@ process_client_headers(struct conn_s *connptr)
|
|||||||
connptr->protocol.minor, hostname, PACKAGE,
|
connptr->protocol.minor, hostname, PACKAGE,
|
||||||
VERSION);
|
VERSION);
|
||||||
|
|
||||||
trim(header, strlen(header));
|
chomp(header, strlen(header));
|
||||||
|
|
||||||
strlcat(header, via_header_buffer, LINE_LENGTH);
|
new_header = safemalloc(strlen(header) + strlen(via_header_buffer) + 1);
|
||||||
|
strcpy(new_header, header);
|
||||||
|
strcat(new_header, via_header_buffer);
|
||||||
|
|
||||||
|
safefree(header);
|
||||||
|
|
||||||
|
header = new_header;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Don't send certain headers.
|
* Don't send certain headers.
|
||||||
@ -611,7 +585,6 @@ process_client_headers(struct conn_s *connptr)
|
|||||||
safefree(header);
|
safefree(header);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
if (sent_via_header == 0) {
|
if (sent_via_header == 0) {
|
||||||
/*
|
/*
|
||||||
* We're the first proxy so send the first Via header.
|
* We're the first proxy so send the first Via header.
|
||||||
@ -627,7 +600,6 @@ process_client_headers(struct conn_s *connptr)
|
|||||||
safe_write(connptr->server_fd, via_header_buffer,
|
safe_write(connptr->server_fd, via_header_buffer,
|
||||||
strlen(via_header_buffer));
|
strlen(via_header_buffer));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!connptr->send_message && (connptr->upstream || !connptr->ssl)) {
|
if (!connptr->send_message && (connptr->upstream || !connptr->ssl)) {
|
||||||
#ifdef XTINYPROXY_ENABLE
|
#ifdef XTINYPROXY_ENABLE
|
||||||
|
Loading…
Reference in New Issue
Block a user