summaryrefslogtreecommitdiffhomepage
path: root/src/reqs.c
AgeCommit message (Collapse)Author
2002-12-04(strip_username_password): New function to remove anyRobert James Kaes
username/password part from the host URI. (extract_http_url), (extract_ssl_url): Use the new strip_username_password function to remove any non-host information from the URI.
2002-12-04Removed the "bool_t" type since it conflicts with the newer C standards.Robert James Kaes
The type was just replaced by "unsigned int" types.
2002-11-29(extract_http_url): Removed the leading "http://" from all the tests,Robert James Kaes
since it's skipped by the caller before the URL is passed to this function. (process_request): Include code to handle proxy FTP requests as well. This also lead to a bit of a cleanup in the calling conventions of extract_http_url function. tinyproxy can handle both types of resources by skipping the leading :// part.
2002-11-26Included code to disable the sending of the Via header. This is nowRobert James Kaes
controlled by the ViaHeader configure directive.
2002-11-13(relay_connection): Shutdown the client socket for writing once allRobert James Kaes
the data has been sent.
2002-11-03Removed all the code supporting the TCP tunnelling feature ofRobert James Kaes
tinyproxy. There is really no need for this code, since there are perfectly good programs out there (like rinetd) which are designed for TCP tunnelling. tinyproxy should be a good HTTP proxy, nothing more, and nothing less; therefore, the tunnelling code is gone.
2002-10-17(relay_connection): Ivan pointed out a bug with the code to send anyRobert James Kaes
remaining data to the server when the connections are being closed. It was a one line fix.
2002-06-06A bunch of changes from Petr Lampa that add transparent proxy support to ↵Robert James Kaes
tinyproxy. The additional code is in process_request(), but Petr also had to change around some of the other functions (like process_client_headers and handle_connection.) Note: Right now this code has not been tested, but it is believed to work. To enable run ./configure --enable-transparent-proxy
2002-05-31(process_server_headers): Since we're stripping off the carriage return and ↵Robert James Kaes
newline, we need to add them back on when sending the response header to the client.
2002-05-29(add_header_to_connection): Removed the "double_cgi" boolean, since ↵Robert James Kaes
tinyproxy now ignores all the headers after a "double CGI" situation has occurred. (get_all_headers): Instead of dropping duplicate headers when the "double CGI" situation occurs, tinyproxy will now drop _all_ the headers from the "inner" HTTP response.
2002-05-28(add_header_to_connection): Added a boolean to indicate that a "Double CGI" ↵Robert James Kaes
situation is in affect. This is needed to solve a problem with some sites (like cgi.ebay.com) where they are sending two HTTP response lines (and associated headers) with a response. (get_all_headers): Detect if a "Double CGI" situation has occured.
2002-05-28(get_all_headers): Added code to ignore a "response" line in a header. This ↵Robert James Kaes
was pointed out as being a problem with eBay (cgi.ebay.com) (process_server_headers): Added code to make skip blank lines before a response line.
2002-05-27(process_request): Changed the filtering code around to handle both domains ↵Robert James Kaes
and URLs.
2002-05-26Spelling changes (from thread to child.)Robert James Kaes
2002-05-24Fixed a tonne of spelling mistakes.Robert James Kaes
2002-05-23Fixed up a spelling mistake and changed various bits of code to takeRobert James Kaes
advantage of the fact that the peer's socket information is now stored inside the connection structure.
2002-05-17request->host might have been freed by the time we get toRobert James Kaes
free_request_struct(), so make sure it's pointing to memory.
2002-05-14Moved the definition of the struct buffer_s into the buffer.c file and outRobert James Kaes
of the buffer.h file. This also required the removal of the BUFFER_SIZE macro, and replace it with the buffer_size() function.
2002-05-08Removed the request logging in the tunnel because it breaks the tunnelRobert James Kaes
concept since it blocks waiting for information from the client before any data from the remote is relayed.
2002-04-28Added more error checking in process_client_headers() andRobert James Kaes
process_server_headers() functions. Also, better reporting of errors back to the client.
2002-04-26Changed the len type to ssize_t because we need to detect errors in theRobert James Kaes
recv() call. Thanks to Tom Cross for discovering this bug.
2002-04-26Need to check the return value of hashmap_first() since it could beRobert James Kaes
negative.
2002-04-25Check to see if request->path is actually allocated before trying to freeRobert James Kaes
it.
2002-04-25First change all the hashmap related calls to use the new API.Robert James Kaes
The remove_connection_headers() function now handles both the Connection header _and_ the Proxy-Connection header.
2002-04-24Fixed a couple of problems where tinyproxy was trying to free a memoryRobert James Kaes
block which had not been allocated. Also, the "proxy-connection" to the list of headers we don't pass.
2002-04-22Added the "Proxy-Connection" header to the list of client headers whichRobert James Kaes
are not passed along.
2002-04-18The stats now wait until after the client has finished sending all itsRobert James Kaes
headers before sending the HTTP response back. This should be more standards compliant.
2002-04-18Fixed a memory leak in reading in headers from the client or server.Robert James Kaes
2002-04-17If the initialize_conn() function fails, close the socket and return.Robert James Kaes
Also, changed the call to check_acl() to include the peer's IP and string addresses.
2002-04-16Various code clean up. There is nothing new here, just mechanical changesRobert James Kaes
to the source to either remove code which is not needed, or consolidate common code into a common section.
2002-04-15Changed the variable type in read_request_line() to an unsigned variableRobert James Kaes
in order to detect negative returns.
2002-04-15Changed the error boolean flag into a pointer to an error string and anRobert James Kaes
error code. We're storing this information because tinyproxy doesn't output the error information until _after_ the client has sent it's information.
2002-04-12Added code to support the new ConnectPort directive which is needed toRobert James Kaes
improve security of the tinyproxy system. This new directive allows the admin to block CONNECT methods to illegal ports.
2002-04-12Added a write_via_header() function which is now used in both headerRobert James Kaes
processing functions. Also, added a list of headers to drop in the process server header functions.
2002-04-11Did a bit of consolidation by moving code into remove_connection_headers()Robert James Kaes
and added the get_content_length() function. The process_server_headers() function was rewritten to remove the Connection header correctly, and also retrieve the Content-Length value. This value is needed in the relay_connection() function since there are some remote machines which do not properly close down the connection once the body has been retrieved. Thanks to James Flemer for finding a test case for this problem.
2002-04-09Removed the compare_header() function since it's been replaced by a callRobert James Kaes
the anonymous_search(). Added a few more log_message() calls to better explain error conditions. Fixed up a problem with X-Tinyproxy sending logic.
2002-04-07A _tonne_ of changes. It would almost be easier to just read the sourceRobert James Kaes
itself to find out all the changes. Changed the process_client_header() function to use the hashmap and vector modules. I've made this change to better handle the Connection header. The Connection header, it it's present, lists all the headers which should _not_ be transmitted any further along. An HTTP/1.1 proxy must respect this. Other changes are basically cosmetic.
2001-12-24Moved write_message() into sock.c because I'm using it in other places.Robert James Kaes
2001-12-23Cleaned up the code which sends the "Via" header. It now usesRobert James Kaes
write_message().
2001-12-20Created the CHECK_CRLF() macro to handle the tests for the appropriateRobert James Kaes
control characters in a string.
2001-12-19Removed duplicate code from process_server_headers() and removed the callsRobert James Kaes
to strlen(); readline() already returns the length of the string, so use that instead.
2001-12-19Damn---removed the debugging code from write_message().Robert James Kaes
2001-12-19Opps! Fixed a problem with negative numbers. :)Robert James Kaes
2001-12-19Redefined HTTP_LINE_LENGTH to be based on MAXBUFFSIZE (and set to aroundRobert James Kaes
16 KB.) Added the TUNNEL_CONFIGURED() macro to help with testing for the tunnel support code. Create the write_message() function to encapsulate the code which sends the information to the file descriptor. Moved the tunnel code into it's own function.
2001-12-18Updated the list of headers to ignore.Robert James Kaes
2001-12-17Added the code to log the request when in tunnelling mode.Robert James Kaes
2001-12-17Added UPSTREAM_CONFIGURED() macro to help clean up the code.Robert James Kaes
Ignore any blank lines when tinyproxy is expecting a request line. Instead of sending the request line to the remote server in pieces, tinyproxy nows sends it in once go. This was done to fix a problem with some sites like www.heise.de. Changed all calls to connptr->ssl to connptr->connect_method. Changed all calls to connptr->send_message to connptr->send_response_message. Moved the call to Via header code to inside to the tests to handle if tinyproxy is sending an error message (don't need to send any headers.)
2001-11-23Removed the trim() function and move it into chomp()/utils.cRobert James Kaes
2001-11-22Reformated text.Robert James Kaes
2001-11-22Replaced the calls to the old readline() function with calls to the newRobert James Kaes
version.