summaryrefslogtreecommitdiff
path: root/src (follow)
AgeCommit message (Collapse)AuthorFilesLines
2002-04-28Added more error checking in process_client_headers() andRobert James Kaes1-34/+68
process_server_headers() functions. Also, better reporting of errors back to the client.
2002-04-28Added extra logging information, and made sure that locks were beingRobert James Kaes1-22/+33
released properly.
2002-04-28Clear the total array of threads before any of the threads are created.Robert James Kaes1-2/+2
2002-04-28Fixed up the error detection code when relating the pthread functions.Robert James Kaes1-21/+27
They return 0 if OK, and a positive error code. Cleaned up the status setting code in thread_main(). Thanks to Hans-Georg Bork for fixing the problem in thread_pool_create() where the status wasn't set early enough to allow all the threads to be created. Added additional logging information to let the admin know what is happening with the thread creation.
2002-04-26Changed the len type to ssize_t because we need to detect errors in theRobert James Kaes1-2/+2
recv() call. Thanks to Tom Cross for discovering this bug.
2002-04-26Added an assert in hashmap_first()Robert James Kaes1-2/+3
2002-04-26Check the return value of hashmap_first()Robert James Kaes1-8/+9
2002-04-26Need to check the return value of hashmap_first() since it could beRobert James Kaes1-24/+26
negative.
2002-04-25Check to see if request->path is actually allocated before trying to freeRobert James Kaes1-2/+8
it.
2002-04-25First change all the hashmap related calls to use the new API.Robert James Kaes1-47/+57
The remove_connection_headers() function now handles both the Connection header _and_ the Proxy-Connection header.
2002-04-25The hashmap API changed, so this function needs to be changed as well.Robert James Kaes1-11/+11
2002-04-25Removed the hashmap_keys() function and added the "iterator" concept.Robert James Kaes2-72/+229
This required a bunch of changes to the source (like the inclusion of the end_iterator member variable.) All this was required by sites like Yahoo which send out multiple "Set-Cookie" headers. tinyproxy needs to handle this situation correctly.
2002-04-25hashmap_search() only takes two arguments, so removed the unneeded NULL.Robert James Kaes1-3/+3
2002-04-24bind_address has been moved inside the config structure. Fixed up aRobert James Kaes1-5/+6
problem where "data" was being freed even if it had not been allocated (because of an error condition.)
2002-04-24Fixed a couple of problems where tinyproxy was trying to free a memoryRobert James Kaes1-4/+7
block which had not been allocated. Also, the "proxy-connection" to the list of headers we don't pass.
2002-04-24Moved bind_address inside the config structure.Robert James Kaes3-7/+5
2002-04-22Renamed the LOCKing macros and added assert debugging code. Also, movedRobert James Kaes1-23/+40
the mutex initialization into a function call so that I can use an error checking mutex once I figure out how to get it to work on my computer.
2002-04-22The "Bind" directive sets a binding address which the outgoing connectionsRobert James Kaes1-4/+4
will use.
2002-04-22Added the "Proxy-Connection" header to the list of client headers whichRobert James Kaes1-1/+2
are not passed along.
2002-04-22The log_message() function now stores the messages if the configurationRobert James Kaes4-9/+73
file has not been read yet. The reason for this is that we don't know where to log the messgaes until _after_ the config file has been processed.
2002-04-22Added the "Bind" directive.Robert James Kaes2-4/+14
2002-04-18Whoops. The previous include only had the code conditionally removed.Robert James Kaes1-9/+1
Remove for real this time.
2002-04-18Removed the call to inet_aton() since the gethostbyname() function handlesRobert James Kaes1-1/+3
the dotted-decimal case itself.
2002-04-18The stats now wait until after the client has finished sending all itsRobert James Kaes3-9/+15
headers before sending the HTTP response back. This should be more standards compliant.
2002-04-18Removed the call to hstrerror() in the getpeer_string() function. It'sRobert James Kaes1-3/+2
not available on all machines.
2002-04-18Fixed a memory leak in the hashmap_delete function. The array of maps wasRobert James Kaes1-1/+2
not being deleted.
2002-04-18Changed all calls to strdup to safestrdup. This should provide betterRobert James Kaes4-9/+9
memory usage tracking.
2002-04-18Fixed a memory leak in reading in headers from the client or server.Robert James Kaes1-4/+12
2002-04-18Replaced the explicit header includes with one call to tinyproxy.h. Also,Robert James Kaes2-53/+30
added the utils.h header and changed all the malloc, calloc, free, and strdup to the appropriate safe variety.
2002-04-18Added the debuggin_strdup() function and the associated safestrdup()Robert James Kaes2-5/+43
macro. Also, added asserts to the other debugging_* functions.
2002-04-18Moved the filter_destroy() logic from inside the signal handler. It's nowRobert James Kaes1-6/+6
been moved to inside the main() function.
2002-04-18Moved the log rotation code out of the signal handler and into it's ownRobert James Kaes5-55/+86
function. The signal handler now simply sets a flag which is monitored inside the thread_main_loop() function. The log rotation code has also been tightened to handle any error conditions better. Credit to Petr Lampa for suggesting that system functions inside of a signal handler is bad magic.
2002-04-17Removed the LOOKUP_LOCK() and LOOKUP_UNLOCK() macros since I believe IRobert James Kaes1-12/+4
need locking around both gethostbyname() and gethostbyaddr() at the same time.
2002-04-17If the initialize_conn() function fails, close the socket and return.Robert James Kaes1-3/+5
Also, changed the call to check_acl() to include the peer's IP and string addresses.
2002-04-17Removed the close(connfd) call since the socket has already been closedRobert James Kaes1-9/+32
from within the handle_connection() function. Added tests to make sure pthread_create() succeeds. Added defined tests for pthread_cancel() since it's not available on all platforms.
2002-04-17Changed the check_acl() function to require the peer IP address and stringRobert James Kaes2-13/+7
address from the calling function.
2002-04-16Removed the duplicate calls to strlen().Robert James Kaes1-5/+4
2002-04-16Tightened the lookup_domain() function.Robert James Kaes1-3/+2
2002-04-16Various code clean up. There is nothing new here, just mechanical changesRobert James Kaes1-67/+43
to the source to either remove code which is not needed, or consolidate common code into a common section.
2002-04-16Cleaned up the return values of the two anonymous functions to make theRobert James Kaes1-9/+7
code cleaner and smaller.
2002-04-15Added a test to make sure the "whole_buffer" could be allocated.Robert James Kaes1-3/+5
2002-04-15Changed the variable type in read_request_line() to an unsigned variableRobert James Kaes1-2/+2
in order to detect negative returns.
2002-04-15Added an assert() call to detect design errors.Robert James Kaes1-2/+6
2002-04-15Changed the error boolean flag into a pointer to an error string and anRobert James Kaes5-28/+54
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-13Added additional error handling for the bind() and listen() system callsRobert James Kaes1-3/+11
when setting up the listening socket.
2002-04-13Modified the opensock() function to respect the Listen directive. If it'sRobert James Kaes1-1/+17
set, bind all outgoing addresses to this local address.
2002-04-12Added code to support the new ConnectPort directive which is needed toRobert James Kaes2-2/+74
improve security of the tinyproxy system. This new directive allows the admin to block CONNECT methods to illegal ports.
2002-04-12Added the support code to process a ConnectPort configuration directive.Robert James Kaes2-2/+6
2002-04-12Added a write_via_header() function which is now used in both headerRobert James Kaes1-40/+67
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 Kaes1-37/+106
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.