Commit Graph

341 Commits

Author SHA1 Message Date
Robert James Kaes
391a408eee Fixed a tonne of spelling mistakes. 2002-05-24 04:45:32 +00:00
Robert James Kaes
a34db10d65 Fixed some spelling mistakes, and removed the getpeer_ip() and
getpeer_string() functions as they've been replaced by the
getpeer_information() function.
2002-05-24 04:44:36 +00:00
Robert James Kaes
b77fc5c860 Moved most of the function into separate files: the heap debugging
functions are in "heap.c"; the daemon functions are in "daemon.c"; and,
the string/text functions are in "text.c".
2002-05-23 18:28:12 +00:00
Robert James Kaes
52c15029d1 Moved all the system header includes into the common.h file. 2002-05-23 18:27:19 +00:00
Robert James Kaes
16386fbb70 Added a new signal handler to handle SIGCHLD signals because of the new
dnsserver child process.

Changed the set signal calls to use our new set_signal_handler() function.

Added code to start the "dnsserver" child process.
2002-05-23 18:27:01 +00:00
Robert James Kaes
478030c6ff Changed the lookup_domain() function to use the new "dnsserver" API.
Also moved safe_write(), safe_read(), readline(), and write_message()
functions into their own file.
2002-05-23 18:25:55 +00:00
Robert James Kaes
47ab97a347 Fixed up a spelling mistake and changed various bits of code to take
advantage of the fact that the peer's socket information is now stored
inside the connection structure.
2002-05-23 18:24:46 +00:00
Robert James Kaes
1f9085cef2 Added the "DNSserverLocation" and "DNSserverSocket" directives for use
with the "dnsserver" resolver.
2002-05-23 18:24:02 +00:00
Robert James Kaes
09b1b9b925 Added the peer's socket information to the connection structure. The
information is passed along during the initialization of the structure.
2002-05-23 18:23:29 +00:00
Robert James Kaes
9d0c65ad86 Fixed up the header includes for the new layout.
Changed one line of code to make it explicit how the pointers are to be
updated.
2002-05-23 18:22:48 +00:00
Robert James Kaes
451fad1ed2 Changed the header includes around to reflect the new source layout. 2002-05-23 18:20:27 +00:00
Robert James Kaes
e633b97957 Added code to create the "dnsserver" program, and also reorganized to
include the various new source files.
2002-05-23 04:43:06 +00:00
Robert James Kaes
1690c05075 Initial addition to CVS. Moved the three "text" related functions into a
separate file.
2002-05-23 04:42:30 +00:00
Robert James Kaes
fd3e6e84fb Initial addition to CVS. Moved the network related functions into a
separate module.
2002-05-23 04:41:48 +00:00
Robert James Kaes
c667952861 Initial addition to CVS. Moved all the debugging heap related functions. 2002-05-23 04:41:10 +00:00
Robert James Kaes
0b0e03fa39 Initial addition to CVS. The dnsserver process is a child executable that
handle DNS resolving.
2002-05-23 04:40:42 +00:00
Robert James Kaes
d22d6d181b Initial addition to CVS. These functions create an API for accessing the
dnsserver child process.
2002-05-23 04:40:06 +00:00
Robert James Kaes
2ee61db6af Initial addition into CVS. Moves various functions relating the daemon
processes.  Added a portable signal handler setting function.
2002-05-23 04:39:32 +00:00
Robert James Kaes
65cf5ea290 Initial addition to CVS. This header moves all the system includes from
the tinyproxy.h file to here.
2002-05-23 04:37:54 +00:00
Robert James Kaes
700f129750 Set the pointer to NULL after it's been freed() 2002-05-17 16:39:35 +00:00
Robert James Kaes
e4e78e0f1b request->host might have been freed by the time we get to
free_request_struct(), so make sure it's pointing to memory.
2002-05-17 16:34:42 +00:00
Robert James Kaes
bb9f206529 Moved the definition of the struct buffer_s into the buffer.c file and out
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-14 00:43:38 +00:00
Robert James Kaes
d46cba8a0b Added a "tail" pointer to the vector to make insertions more efficient. 2002-05-13 23:32:16 +00:00
Robert James Kaes
16e96c79e8 Thanks to Justin Guyett for making the hashmap_insert() function use a
constant time insert.  Explanation: new enteries are added to the _front_
of the chain, rather than search to the end.
2002-05-13 20:02:23 +00:00
Robert James Kaes
73e3b495e0 Fixed up a potential SEGFAULT if memory for an entry could not be
allocated.  Also, thanks to Justin Guyett for finding a problem the
hashmap_remove() function.  There was a problem where an entry's "prev"
pointer could be pointing to freed memory.

Finally, renamed all "maps" to bucket to make the source more
understandable.
2002-05-13 18:47:46 +00:00
Robert James Kaes
cf2ecb83b8 Removed the request logging in the tunnel because it breaks the tunnel
concept since it blocks waiting for information from the client before any
data from the remote is relayed.
2002-05-08 03:29:23 +00:00
Robert James Kaes
0a1f83bbe5 tinyproxy should be installed into the /sbin directory rather than the
/bin directory since it's a network daemon.
2002-05-02 17:34:58 +00:00
Robert James Kaes
3284f365b2 Check the return value of the write_message() function. 2002-04-28 20:03:53 +00:00
Robert James Kaes
ed90a4676f Added more error checking in process_client_headers() and
process_server_headers() functions.

Also, better reporting of errors back to the client.
2002-04-28 20:03:18 +00:00
Robert James Kaes
f79807ac11 Added extra logging information, and made sure that locks were being
released properly.
2002-04-28 18:32:16 +00:00
Robert James Kaes
e4fe04cbaf Clear the total array of threads before any of the threads are created. 2002-04-28 03:09:52 +00:00
Robert James Kaes
577f3cebbf Fixed up the error detection code when relating the pthread functions.
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-28 02:37:01 +00:00
Robert James Kaes
1a8c914dd2 Changed the len type to ssize_t because we need to detect errors in the
recv() call.  Thanks to Tom Cross for discovering this bug.
2002-04-26 19:33:09 +00:00
Robert James Kaes
1d78e63233 Added an assert in hashmap_first() 2002-04-26 16:51:29 +00:00
Robert James Kaes
e9f5b2e75f Check the return value of hashmap_first() 2002-04-26 16:50:55 +00:00
Robert James Kaes
0e7182533c Need to check the return value of hashmap_first() since it could be
negative.
2002-04-26 16:43:20 +00:00
Robert James Kaes
6992c74bba Check to see if request->path is actually allocated before trying to free
it.
2002-04-25 19:20:56 +00:00
Robert James Kaes
b4ef24844f First change all the hashmap related calls to use the new API.
The remove_connection_headers() function now handles both the Connection
header _and_ the Proxy-Connection header.
2002-04-25 18:58:08 +00:00
Robert James Kaes
d1031e2c8f The hashmap API changed, so this function needs to be changed as well. 2002-04-25 18:56:43 +00:00
Robert James Kaes
ce51a74045 Removed the hashmap_keys() function and added the "iterator" concept.
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-25 18:55:56 +00:00
Robert James Kaes
b5df4f1cf0 hashmap_search() only takes two arguments, so removed the unneeded NULL. 2002-04-25 18:52:09 +00:00
Robert James Kaes
d7c3f23610 bind_address has been moved inside the config structure. Fixed up a
problem where "data" was being freed even if it had not been allocated
(because of an error condition.)
2002-04-24 16:48:34 +00:00
Robert James Kaes
335d787018 Fixed a couple of problems where tinyproxy was trying to free a memory
block which had not been allocated.

Also, the "proxy-connection" to the list of headers we don't pass.
2002-04-24 16:47:19 +00:00
Robert James Kaes
89ada2df28 Moved bind_address inside the config structure. 2002-04-24 16:45:45 +00:00
Robert James Kaes
c5b9ec889e Renamed the LOCKing macros and added assert debugging code. Also, moved
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-22 19:41:17 +00:00
Robert James Kaes
08077cc9e1 The "Bind" directive sets a binding address which the outgoing connections
will use.
2002-04-22 19:35:24 +00:00
Robert James Kaes
1953348c90 Added the "Proxy-Connection" header to the list of client headers which
are not passed along.
2002-04-22 19:34:50 +00:00
Robert James Kaes
2ec7a4dd72 The log_message() function now stores the messages if the configuration
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-22 19:34:20 +00:00
Robert James Kaes
60f61c8f0c Added the "Bind" directive. 2002-04-22 19:33:01 +00:00
Robert James Kaes
aa68eb8540 Whoops. The previous include only had the code conditionally removed.
Remove for real this time.
2002-04-18 21:54:50 +00:00