Robert James Kaes
ea50171a95
Changed the safefree() macro to make it safe to use a conditional
...
statement, and also safe to use with a rvalue that has a side
effect. [Bug fix recommended by Peter da Silva]
2003-05-31 23:04:15 +00:00
Robert James Kaes
77ca1c8ce0
# Changed all the for calls to use the != test rather than < test.
...
The change was recommended in the C/C++ User Journal magazine.
2003-05-31 23:02:21 +00:00
Robert James Kaes
af5e1e29f6
# Changed the calls to vector_getentry() to use the new calling
...
convention.
2003-05-30 16:22:30 +00:00
Robert James Kaes
1955dcd47b
(vector_getentry): Changed the API to return the data pointer and have
...
the length returned in a argument variable pointer. This should be a
more natural way of using the function.
2003-05-30 16:21:48 +00:00
Robert James Kaes
c3eaebd1c5
# Added a vector_prepend() function and recoded the old vector_insert()
...
to be a general "insert" for both vector_append() and vector_prepend()
2003-05-29 21:07:22 +00:00
Robert James Kaes
8ab278998f
# Renamed the vector_insert() calls to vector_append()
2003-05-29 20:48:25 +00:00
Robert James Kaes
42f9f37afc
(vector_append): Renamed the vector_insert() function to more
...
accurately indicate that entries are appended to the end of the
vector.
2003-05-29 20:47:52 +00:00
Robert James Kaes
4a377a712d
Improved the upstream proxy support by making the upstream proxy
...
server configurable based on the destination host. [Code written by
Peter da Silva]
2003-05-29 19:44:00 +00:00
Robert James Kaes
5e1303ecd1
(establish_http_connection): If the port being requested is not a
...
standard HTTP port (80 or 443) append the port string to the host
header; otherwise, leave the host string with only the host's domain
name.
Replaced all occurrences of constant 80 and 443 with defines HTTP_PORT
and HTTP_PORT_SSL.
2003-05-05 16:46:05 +00:00
Robert James Kaes
ac88af1f71
Fixed a bug that would kill a child process because of an invalid
...
safefree() call. Basically, destroy_conn() was trying to free memory
not allocated by malloc. [Fix by David T. Pierson]
2003-05-04 04:35:10 +00:00
Robert James Kaes
c94bfa8223
(build_url): Rebuild the URL from the component pieces. This function
...
is used by the transparent proxy code. [Anatole Shaw]
(process_request): Fixed up the transparent proxy code so that
filtering can be done on the whole URL. [Anatole Shaw]
(pull_client_data): Added a bug fix for Internet Explorer (IE). IE
will leave an extra CR and LF after the data in an HTTP POST. The new
code will eat the extra bytes if they're present. Thanks to Yannick
Koehler for finding the bug and offering an explanation as to why it
was happening.
Changed all calls of connptr->remote_content_length to
connptr->content_length.server
2003-04-16 18:11:58 +00:00
Robert James Kaes
648e8f1438
# Changed it again to this time use the TINYPROXY_DEBUG environment
...
variable to determine whether to wait for a connection from GDB.
2003-04-16 18:04:58 +00:00
Robert James Kaes
4a942bc59a
# The programmer is now made to _explicitly_ enable the GDB support in
...
the child handling function.
2003-04-16 16:39:23 +00:00
Robert James Kaes
6ff4192069
Removed the remote_content_length field in the "conn" structure and
...
replaced it with a smaller structure containing both the remote/server
and the local/client content-length fields if they're present in the
HTTP response headers.
2003-04-16 16:37:59 +00:00
Robert James Kaes
bcf25dc67e
(add_error_variable): Test whether connptr->error_variable is NULL,
...
and if so call safemalloc(). This is needed since saferealloc() will
assert() if the first argument is a NULL pointer.
2003-04-01 16:41:33 +00:00
Robert James Kaes
7cd19206cc
(establish_http_connection): Always include the port number for the
...
requested server. This fixes a problem when the server is not
listening on the default port, 80.
[Fix suggested by duncan@sapio.co.uk ]
2003-03-26 16:47:30 +00:00
Robert James Kaes
63a7914830
# Moved the location of the "initializing" log message to below the
...
processing of the command line options.
2003-03-17 04:24:19 +00:00
Robert James Kaes
d2c9ffac23
Made get_html_file() and lookup_variable() static functions since they
...
are only used with this file.
2003-03-14 22:49:03 +00:00
Robert James Kaes
5faa0879ec
# Added copyright notices for Steve. Reformatted the source code to
...
better match the existing tinyproxy practise. Included a few bug
fixes from Steve.
2003-03-14 22:45:59 +00:00
Robert James Kaes
cc90414b29
(send_http_message): Changed the function to use the new http_message
...
API.
2003-03-14 06:15:27 +00:00
Robert James Kaes
c76183a3f0
# Updated all the calls to indicate_http_error() to include a
...
terminating NULL. The va_arg() function requires it to work
properly.
2003-03-14 06:13:04 +00:00
Robert James Kaes
75dd0b22c4
Allow the URL for the statistic page to be controlled from the
...
configuration file, rather than being hard-coded in the program.
[John M Wright]
2003-03-13 21:42:46 +00:00
Robert James Kaes
a46bfdc2e0
Moved the send_http_error_message() and indicate_http_error()
...
functions into the htmlerror.c file, and recoded them to use the new
variable substitution system. [Steven Young]
2003-03-13 21:34:38 +00:00
Robert James Kaes
badd237fe6
# Added variables to config structure to keep track of the files to be
...
displayed for various HTTP errors and the stats page. [Steven Young]
2003-03-13 21:32:33 +00:00
Robert James Kaes
b06f26cba1
# Changed showstats() to use the HTML variable functions when
...
possible. It still retains the hard-coded page for when an HTML file
is not available. [Steven Young]
2003-03-13 21:31:03 +00:00
Robert James Kaes
cb8aaf521e
# Changed calls to indicate_http_error() to use the new HTML variable
...
substitution mechanism. [Steven Young]
2003-03-13 21:29:45 +00:00
Robert James Kaes
7995027c8c
# Added parser support for the error file configuration keywords
...
(ErrorFile, DefaultErrorFile, StatFile) [Steven Young]
2003-03-13 21:28:37 +00:00
Robert James Kaes
056bbf84bd
# Added variables to keep track of the variables to be substituted in
...
.html files displayed to the client [Steven Young]
2003-03-13 21:27:29 +00:00
Robert James Kaes
a830af5097
# Steve Young's code to implement file based HTML error messages,
...
rather than the hard coded string.
2003-03-13 21:25:06 +00:00
Robert James Kaes
d28d9fb195
# Added htmlerror.c and htmlerror.h
2003-03-13 21:23:01 +00:00
Robert James Kaes
2057ffdb50
# Changed the wording of the header comment to remove the reference to
...
"dnsserver"
2003-03-13 19:31:09 +00:00
Robert James Kaes
99ec965544
# (child_main): If this is a debugging build output the child process
...
ID and wait for 10 seconds so we have time to connect gdb to the
child. This is needed if we want to use gdb against the child
process.
2003-03-13 19:30:19 +00:00
Robert James Kaes
0a3a1d7c71
Fixed up the include order for the <sys/time.h> and <time.h> headers.
2003-03-13 16:56:28 +00:00
Robert James Kaes
e04ff12768
# Include the http_message.[ch] into the compiled tinyproxy object.
2003-03-13 05:28:46 +00:00
Robert James Kaes
686826c3b0
An API to handle HTTP messages as concrete entities.
2003-03-13 05:25:30 +00:00
Robert James Kaes
2f9370afe7
(chomp): Fixed up the code to prevent negative array access. Added
...
code to make sure the supplied arguments are valid.
2003-03-13 05:20:06 +00:00
Robert James Kaes
20d3008c38
(main): Removed duplicate code calling the filter_destroy() function.
...
Once is enough. [Detected by John M Wright]
2003-02-26 22:37:38 +00:00
Robert James Kaes
40c4d3c57a
# (connect_to_upstream): Improved the preprocessor directives to make
...
sure the function would compile cleanly regardless of how the
directive was set.
2003-01-28 21:21:55 +00:00
Robert James Kaes
2f98fec1aa
# Style clean up.
2003-01-27 18:45:25 +00:00
Robert James Kaes
abbf826445
(display_usage): Removed the output line mentioning that regular
...
expression support was included. It will be there always.
2003-01-27 18:44:43 +00:00
Robert James Kaes
2fc9c76969
(connect_to_upstream): Reorganized the preprocessor directives to make
...
sure the function's symbol name is stored, even if upstream was not
compiled it. This should keep some compilers from reporting errors.
2003-01-27 18:42:18 +00:00
Robert James Kaes
cb7e3eef04
Added support for conditionally using case sensitive filtering files.
...
Code changes from James E. Flemer.
2003-01-27 17:57:45 +00:00
Robert James Kaes
212abd64d7
(process_client_headers): Fixed inverted anonymous header logic. Fix
...
comes from the FreeBSD port through James E. Flemer.
2003-01-27 17:39:02 +00:00
Robert James Kaes
59ec5dc69f
(strip_username_password): New function to remove any
...
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-04 17:36:48 +00:00
Robert James Kaes
0a20bdd5b4
Removed the "bool_t" type since it conflicts with the newer C standards.
...
The type was just replaced by "unsigned int" types.
2002-12-04 17:06:14 +00:00
Robert James Kaes
d069b4fce9
(extract_http_url): Removed the leading "http://" from all the tests,
...
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-29 19:25:59 +00:00
Robert James Kaes
e58343012f
Included code to disable the sending of the Via header. This is now
...
controlled by the ViaHeader configure directive.
2002-11-26 21:44:43 +00:00
Robert James Kaes
c826b18437
(child_main): Cleaned up the notice string to be more clear why a
...
child is being closed.
2002-11-21 21:54:09 +00:00
Robert James Kaes
22df8c29e4
(main): Check to see if the PID file was created successfully, and if
...
not report this to the user and close the program.
2002-11-21 21:52:59 +00:00
Robert James Kaes
48df7d401c
# Changed the return type for pidfile_create() to int from void.
2002-11-21 21:52:03 +00:00
Robert James Kaes
820832a647
(create_file_safely): Rather than exiting the program if there is an
...
error, a negative "error code" is returned to the program. The
various callers then need to decide what to do.
(pidfile_create): Returns an error status depending on whether the PID
file was created successfully.
2002-11-21 21:51:34 +00:00
Robert James Kaes
d40a4e8af7
(relay_connection): Shutdown the client socket for writing once all
...
the data has been sent.
2002-11-13 17:48:48 +00:00
Robert James Kaes
a1e24ac839
(destroy_conn): Added code to log any error messages when the sockets
...
are closed.
2002-11-13 17:47:40 +00:00
Robert James Kaes
3b2be8ae88
Removed all the code supporting the TCP tunnelling feature of
...
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-11-03 17:10:33 +00:00
Robert James Kaes
69be2b84d7
(relay_connection): Ivan pointed out a bug with the code to send any
...
remaining data to the server when the connections are being closed.
It was a one line fix.
2002-10-17 19:27:08 +00:00
Robert James Kaes
1d39f204ca
Fixed up the storing and sending of the internal tinyproxy logs prior
...
to when the log file is created. Also, the log file is created with
the proper owner permissions.
2002-10-03 20:53:11 +00:00
Robert James Kaes
745c40650b
#Style formatting change.
2002-10-03 20:50:59 +00:00
Robert James Kaes
942f22989a
The internal log structure now uses a vector rather than a hash. This
...
change was required to actually display all the logs in the correct
order. Also, all log lines are stored internally while tinyproxy is
starting. At the appropriate point all the logs are written to the
log file.
2002-10-03 20:49:57 +00:00
Robert James Kaes
7fd291f407
Filtering is now case insensitive.
2002-10-03 20:40:39 +00:00
Robert James Kaes
2b44dbd7e4
#(makedaemon): Commented out the closing of the standard file
...
descriptors since we need them to display error messages.
2002-10-03 20:38:06 +00:00
Robert James Kaes
ac881909bf
(child_main): Check to make sure memory could be allocated to handle
...
the child request.
(child_main_loop): Added a call to truncate_log_file() when the log
file is to be rotated.
2002-10-03 20:33:09 +00:00
Robert James Kaes
f8b5fe53e7
(main): Fixed up a bug reported by Oswald Buddenha where the log file was being initially created with the initial user's permissions, which is obviously a problem if tinyproxy is not running as the initial user. This is now fixed by delaying the creation of the log file until _after_ tinyproxy has been switched to the user it will run as. Confused yet?
2002-07-12 17:02:02 +00:00
Robert James Kaes
ab574cbec0
(create_file_safely):
...
(pidfile_create): Changed all the error logging to write to standard error and then exit the program. This will prevent segmentation fault problems from occurring because the log file could not be created properly.
2002-07-09 19:02:57 +00:00
Robert James Kaes
4932b87fc9
(malloc_shared_memory): Changed the static character array to include the ".XXXXXX" string already. This saves one system call when creating a temporary file name.
2002-07-09 18:52:32 +00:00
Robert James Kaes
e50d0c4072
(child_make): Reset the various signals to the default signal handler so that the children can be properly destroyed.
2002-06-27 16:29:21 +00:00
Robert James Kaes
f0d7992765
(log_message): Changed the code so that the log is opened, written, and closed whenever a message is submitted. This allows the log file to be moved away, for example a rotating the log, and yet still have the information written to the correct file name by all the children.
2002-06-15 17:37:11 +00:00
Robert James Kaes
ac5d67c11a
Renamed the "log_rotation_request" boolean to "received_sighup".
...
(main): Removed the log file creation code because it has been moved into the log.c file. Also, removed the explicit fclose() for the log file since it will be close when the program has exited.
2002-06-15 17:35:03 +00:00
Robert James Kaes
8a9db93977
(child_main_loop): Moved the filter re-initiation code into the loop. This code is activated whenever the SIGHUP signal is received.
2002-06-15 17:31:31 +00:00
Robert James Kaes
fb688a2077
Removed the "logf" FILE structure from the config structure, and also renamed the "log_rotation_request" boolean to "received_sighup".
2002-06-15 17:29:59 +00:00
Robert James Kaes
2f84b170a6
Removed the rotate_log_files() function since I'm moving to an Apache style where the _user_ needs to move the log file themselves, and tinyproxy will continue to write to the original name. This allows more flexibility for users to determine their own log rotation scheme.
2002-06-15 17:28:19 +00:00
Robert James Kaes
1f2fe53c4b
Added myself to the copyright since I've made a bunch of changes to this file.
2002-06-07 19:10:05 +00:00
Robert James Kaes
7e1de2012c
Added code to handle the "FilterDefaultDeny" directive. The filter_set_default_policy() function is used to select the default policy (either default allow or default deny) for the filtering code. Also, the two filtering functions now support the policy code.
2002-06-07 18:36:22 +00:00
Robert James Kaes
ff56e32e8e
Added the "FilterDefaultDeny" directive to allow the user to select whether the default policy of the filter is to allow everything which isn't denied, or to deny everything which isn't allowed.
2002-06-07 18:29:41 +00:00
Robert James Kaes
f47685c861
A bunch of changes from Petr Lampa that add transparent proxy support to 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-06-06 20:32:30 +00:00
Robert James Kaes
0242d89877
(filter_domain): Removed code which stripped of a port number from the host name. The "host" variable will _always_ be just the name by the time filter_domain() is called.
2002-06-06 20:30:04 +00:00
Robert James Kaes
06d38ce529
(display_usage): Added a message indicating whether transparent proxy support has been compiled in.
2002-06-06 20:28:02 +00:00
Robert James Kaes
a72fc7ad09
Added a warning message to the Bind directive stating that it will be ignored if "transparent proxy" has been compiled into tinyproxy.
2002-06-06 20:26:13 +00:00
Robert James Kaes
2b5a3625bc
(send_stored_logs): Actually included the code to output the stored logs. Plus, there was a bug with how I was calling the hashmap_is_end() function. This has now been fixed.
2002-06-06 20:24:21 +00:00
Robert James Kaes
e440dee245
(child_main): Added a DEBUG call to let me know which process has accepted a connection. This is needed for debugging using "gdb".
2002-06-05 17:02:15 +00:00
Robert James Kaes
89dee022e5
(malloc_shared_memory): Removed the assert() call for shared_file since it's now a static variable.
2002-06-05 17:01:09 +00:00
Robert James Kaes
b697ebf16b
(acl_string_processing): Moved the string processing code out of check_acl() and into it's own function because it now does two (2) tests. If the ACL string is a complete host name, in other words doesn't start with a period, than a reverse DNS look-up is done on the host name and compared to the IP address of the client; otherwise, the normal text string comparison is done.
...
(check_acl): Moved the string text out of the function and removed some logging code by jumping to the "Deny" code at the end of the function.
2002-06-05 16:59:21 +00:00
Robert James Kaes
02f3bdf5ff
Added a boolean "truncate_file" flag for the create_file_safely() function.
2002-05-31 18:27:13 +00:00
Robert James Kaes
833186b7be
(create_file_safely): Added the "truncate_file" boolean flag. This is needed since I use this function for both the log file and the pid file, and they behave differently when tinyproxy is started.
...
(pidfile_create): Call create_file_safely() with a TRUE "truncate_file" flag so that the file is emptied whenever the pid file is needed.
2002-05-31 18:26:30 +00:00
Robert James Kaes
e340b3371b
The log file is now opened in "append" mode so that you can restart tinyproxy without losing the log file.
2002-05-31 18:24:36 +00:00
Robert James Kaes
26a983b467
(process_server_headers): Since we're stripping off the carriage return and newline, we need to add them back on when sending the response header to the client.
2002-05-31 18:09:09 +00:00
Robert James Kaes
f548ce72b2
(getpeer_information): Fixed a problem retrieving the FQDN of a host because I was passing in an incorrect parameter to gethostbyaddr(). D'oh.
2002-05-31 18:08:01 +00:00
Robert James Kaes
12fc92828c
(malloc_shared_memory): Removed the MMAP_ANON and open("/dev/zero") since they are not portable across a while enough spectrum of machines. Right now tinyproxy is using a "classic" temporary file method of sharing memory. This will likely be improved in the future.
2002-05-29 20:51:35 +00:00
Robert James Kaes
360deb4568
Changed the tests on the return value from malloc_shared_memory() to make tinyproxy more portable, since we can't be certain that "if (!ret_value)" would actually detect a mmap() error.
2002-05-29 20:49:55 +00:00
Robert James Kaes
9b13e9bda8
(add_header_to_connection): Removed the "double_cgi" boolean, since 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-29 18:11:57 +00:00
Robert James Kaes
5fcb8553da
(init_stats): Fixed a spelling mistake where the number of bytes being allocated was incorrect.
2002-05-29 17:31:01 +00:00
Robert James Kaes
e7fcb5fc7d
(add_header_to_connection): Added a boolean to indicate that a "Double CGI" 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 20:40:01 +00:00
Robert James Kaes
cf2bd809fb
(get_all_headers): Added code to ignore a "response" line in a header. This 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-28 04:53:33 +00:00
Robert James Kaes
4ce9674365
(process_request): Changed the filtering code around to handle both domains and URLs.
2002-05-27 02:00:22 +00:00
Robert James Kaes
35d3d79e92
Added into the config structure the filter_urls and filter_extended flags.
2002-05-27 01:59:28 +00:00
Robert James Kaes
d64dfc5d77
Some spelling fixes.
2002-05-27 01:58:41 +00:00
Robert James Kaes
83a1a32f2a
(opensock): Changed a comment around to better state what the code is actually doing.
2002-05-27 01:57:48 +00:00
Robert James Kaes
b11015c2e1
Added a copyright for James E. Flemer since these are his changes.
...
(filter_init): Added code to handle both host and URLs. Also include code to use extended regular expressions.
(filter_domain): The old filter_url function has been renamed filter_domain().
(filter_url): This function now actually filters complete URLs.
2002-05-27 01:56:22 +00:00
Robert James Kaes
026c7d9a3d
Added support for the "FilterURLs" and "FilterExtended" directives.
...
These directives were submitted by James Flemer for use with the new
filtering code.
2002-05-27 01:52:44 +00:00
Robert James Kaes
514182a05f
(display_license): Updated the copyright dates
...
(main): Moved the signals around so that the appropriate signal is assigned to either the children or just the parrent process.
Updated the copyright on the file.
2002-05-27 00:46:24 +00:00
Robert James Kaes
9910c06bd2
Removed the "dnsserver" program all together, and changed the names of
...
some of the files.
2002-05-26 18:56:43 +00:00
Robert James Kaes
2e6ab58f37
Added the malloc_shared_memory() and calloc_shared_memory() function to
...
allow the use of shared memory between all the children.
2002-05-26 18:56:06 +00:00
Robert James Kaes
63f481c61a
Spelling changes (from thread to child.)
2002-05-26 18:55:19 +00:00
Robert James Kaes
6cc0dce1b4
Removed the directives for the old DNSserver process.
2002-05-26 18:54:27 +00:00
Robert James Kaes
49b21c7e2f
The stats structure has been moved into a shared memory block since it
...
needs to be shared by all the children.
2002-05-26 18:53:14 +00:00
Robert James Kaes
a67fb30bdf
Removed all the code relating to the DNS API (dnsclient.h) as it's no
...
longer needed with the new pre-forked model.
2002-05-26 18:52:23 +00:00
Robert James Kaes
523f2003fa
Removed the DNS API calls and replaced them with the standard
...
gethostbyname() and gethostbyaddr() functions. This is possible
because tinyproxy now uses a standard pre-forked() method.
2002-05-26 18:51:17 +00:00
Robert James Kaes
71046cd407
Removed the "pthread" related includes.
2002-05-26 18:49:19 +00:00
Robert James Kaes
c35e56ae66
No longer using a threading model; so these files have been replaced by
...
the child.c/child.h files (which use a pre-forked model.)
2002-05-26 18:48:32 +00:00
Robert James Kaes
1fda8899b1
I didn't like the DNS co-process design so I changed tinyproxy from a
...
threading model to a standard pre-forked model. This means I don't need
the DNS co-process files. Gone.
2002-05-26 18:47:11 +00:00
Robert James Kaes
b3e657a00e
Changed from using a threading model to a standard pre-forked model.
...
Therefore the thread.c file has been removed and this file replaces it.
These files are really just the thread.c and thread.h files with all the
threading stuff replaced with fork() code. Most of the code is identical.
2002-05-26 18:45:26 +00:00
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
Robert James Kaes
1db154464e
Removed the call to inet_aton() since the gethostbyname() function handles
...
the dotted-decimal case itself.
2002-04-18 21:53:33 +00:00
Robert James Kaes
60f0a86c75
The stats now wait until after the client has finished sending all its
...
headers before sending the HTTP response back. This should be more
standards compliant.
2002-04-18 21:43:53 +00:00
Robert James Kaes
73a53daf38
Removed the call to hstrerror() in the getpeer_string() function. It's
...
not available on all machines.
2002-04-18 18:48:22 +00:00
Robert James Kaes
d14b612e13
Fixed a memory leak in the hashmap_delete function. The array of maps was
...
not being deleted.
2002-04-18 18:40:38 +00:00
Robert James Kaes
9a8d732a13
Changed all calls to strdup to safestrdup. This should provide better
...
memory usage tracking.
2002-04-18 17:59:21 +00:00
Robert James Kaes
a66aae880c
Fixed a memory leak in reading in headers from the client or server.
2002-04-18 17:58:52 +00:00
Robert James Kaes
3b5a4b7362
Replaced the explicit header includes with one call to tinyproxy.h. Also,
...
added the utils.h header and changed all the malloc, calloc, free, and
strdup to the appropriate safe variety.
2002-04-18 17:57:20 +00:00
Robert James Kaes
ce4687fbf9
Added the debuggin_strdup() function and the associated safestrdup()
...
macro. Also, added asserts to the other debugging_* functions.
2002-04-18 17:49:14 +00:00
Robert James Kaes
43860d2469
Moved the filter_destroy() logic from inside the signal handler. It's now
...
been moved to inside the main() function.
2002-04-18 17:04:04 +00:00
Robert James Kaes
5822ec3d44
Moved the log rotation code out of the signal handler and into it's own
...
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-18 16:57:06 +00:00
Robert James Kaes
3e60a5b819
Removed the LOOKUP_LOCK() and LOOKUP_UNLOCK() macros since I believe I
...
need locking around both gethostbyname() and gethostbyaddr() at the same
time.
2002-04-17 20:56:13 +00:00
Robert James Kaes
1d85484c3a
If the initialize_conn() function fails, close the socket and return.
...
Also, changed the call to check_acl() to include the peer's IP and string
addresses.
2002-04-17 20:55:21 +00:00
Robert James Kaes
42098699db
Removed the close(connfd) call since the socket has already been closed
...
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-17 20:54:26 +00:00
Robert James Kaes
44bbdb2623
Changed the check_acl() function to require the peer IP address and string
...
address from the calling function.
2002-04-17 20:52:45 +00:00
Robert James Kaes
04da777bed
Removed the duplicate calls to strlen().
2002-04-16 03:22:16 +00:00
Robert James Kaes
0e4436a070
Tightened the lookup_domain() function.
2002-04-16 03:21:46 +00:00
Robert James Kaes
ca10b1353d
Various code clean up. There is nothing new here, just mechanical changes
...
to the source to either remove code which is not needed, or consolidate
common code into a common section.
2002-04-16 03:20:43 +00:00
Robert James Kaes
c722851bce
Cleaned up the return values of the two anonymous functions to make the
...
code cleaner and smaller.
2002-04-16 03:19:19 +00:00
Robert James Kaes
4b7de22999
Added a test to make sure the "whole_buffer" could be allocated.
2002-04-15 04:16:01 +00:00
Robert James Kaes
550145d49e
Changed the variable type in read_request_line() to an unsigned variable
...
in order to detect negative returns.
2002-04-15 04:14:03 +00:00
Robert James Kaes
f0b6861998
Added an assert() call to detect design errors.
2002-04-15 04:13:14 +00:00
Robert James Kaes
a5d3212751
Changed the error boolean flag into a pointer to an error string and an
...
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-15 02:07:27 +00:00
Robert James Kaes
c86d22226f
Added additional error handling for the bind() and listen() system calls
...
when setting up the listening socket.
2002-04-13 19:03:18 +00:00
Robert James Kaes
be47c1791d
Modified the opensock() function to respect the Listen directive. If it's
...
set, bind all outgoing addresses to this local address.
2002-04-13 05:20:19 +00:00
Robert James Kaes
ecb249f424
Added code to support the new ConnectPort directive which is needed to
...
improve security of the tinyproxy system. This new directive allows the
admin to block CONNECT methods to illegal ports.
2002-04-12 17:00:42 +00:00
Robert James Kaes
660e4d5687
Added the support code to process a ConnectPort configuration directive.
2002-04-12 16:59:37 +00:00
Robert James Kaes
f1a451faea
Added a write_via_header() function which is now used in both header
...
processing functions. Also, added a list of headers to drop in the
process server header functions.
2002-04-12 03:09:04 +00:00
Robert James Kaes
85a82af5f5
Did a bit of consolidation by moving code into remove_connection_headers()
...
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-11 20:44:15 +00:00
Robert James Kaes
ce06f27a35
Added the remote_content_length variable to store the number of bytes the
...
remote server is supposed to be transmiting to the client.
2002-04-11 20:27:51 +00:00
Robert James Kaes
abdfa8b2da
Removed the dependency on LIBOBJS and instead use the ADDITIONAL_OBJECTS
...
variable in conjunction with _DEPENDENCIES and _LDADD. The change here
makes filter a "required" module in the sense that it will always be
compiled (to make sure it doesn't get out of date), but it will
conditionally included in the object file.
2002-04-10 21:51:01 +00:00
Robert James Kaes
a903b6d997
Added an extra new line at the end of the file to quiet picky compilers.
...
:)
2002-04-10 17:29:18 +00:00
Robert James Kaes
4fa5cef491
The malloc/free functions should be in stdlib.h, but if we can't find
...
stdlib.h then try including malloc.h. Maybe this will allow clean
compiling on some platforms.
2002-04-09 22:02:05 +00:00
Robert James Kaes
eef4559783
Removed the compare_header() function since it's been replaced by a call
...
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-09 20:06:24 +00:00
Robert James Kaes
0c5bd57698
Added more include logic code to be more portable.
2002-04-09 20:05:15 +00:00
Robert James Kaes
7409281e34
Replaced the internally used linked list with a call to the hashmap
...
module. Code reuse is a good thing.
2002-04-09 20:04:39 +00:00
Robert James Kaes
3c631c6e5c
James Flemer cleaned up the make_netmask() function to remove the static
...
table. Very nice.
2002-04-09 19:11:09 +00:00
Robert James Kaes
2f54303d98
Cleaned up the include lines to be slightly more portable (I hope.)
2002-04-09 16:28:13 +00:00
Robert James Kaes
eb78e5e1f4
Added the cancelation setting to make sure the thread stops immediately.
2002-04-09 00:37:43 +00:00
Robert James Kaes
0d66719c5a
Just moved the looping code from main() into thread_main_loop().
2002-04-08 21:35:10 +00:00
Robert James Kaes
bf82c863bc
Just a variable name change to make it easier to read.
2002-04-07 21:37:07 +00:00
Robert James Kaes
1d52d9d510
Updated the copyright notice.
2002-04-07 21:36:39 +00:00
Robert James Kaes
fb736ec3fb
A _tonne_ of changes. It would almost be easier to just read the source
...
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.
2002-04-07 21:35:59 +00:00
Robert James Kaes
5e9aa90009
Update the list of source code files to include the vector and hashmap
...
files.
2002-04-07 21:33:38 +00:00
Robert James Kaes
97a72783f5
Cleaned up some of the code to handle errors better. Also, a little bit
...
easier to read in the variable department.
2002-04-07 21:32:01 +00:00
Robert James Kaes
5b3658b122
A hashmap implementation. I use this for storing the headers from the
...
client.
2002-04-07 21:30:02 +00:00
Robert James Kaes
54f369a734
Added the vector module which is a vector implementation. I use it in the
...
hashmap implementation.
2002-04-07 21:29:23 +00:00
Robert James Kaes
e70b98252a
Added define check for XTINYPROXY_ENABLE. Although, I'm not sure if this
...
is the correct way to do this, since grammar.c probably doesn't get
recomplied even if config.h is changed. Must look into this more.
2002-04-02 17:17:30 +00:00
Robert James Kaes
1819c0f818
Added code to check for "errors" from the accept call in thread_main() and
...
also a new thread_kill_threads() function which should cancel all threads
when the main thread is being closed.
2002-01-25 00:01:45 +00:00
Robert James Kaes
388920bc53
Added code which checks to see if the user has signalled that tinyproxy
...
should be closed.
2002-01-08 02:02:25 +00:00
Robert James Kaes
ea0d956a57
Removed an unused header.
2001-12-28 22:31:12 +00:00
Robert James Kaes
a0dee6c57f
Check for errors returned by the accept() function.
2001-12-28 22:29:11 +00:00
Robert James Kaes
9520866ab3
Changed send_http_message() to use the write_message() function.
...
Changed httperr() to use the same concept as the write_message() function.
Still haven't figured out how to combine the code.
2001-12-24 00:02:32 +00:00
Robert James Kaes
b10221fa07
Added the write_message() function (from reqs.c)
2001-12-24 00:01:32 +00:00
Robert James Kaes
475e526a48
Moved write_message() into sock.c because I'm using it in other places.
2001-12-24 00:01:02 +00:00
Robert James Kaes
831b00dc7a
Made the error message regarding the Idle timeout more verbose, and
...
changed the level to WARNING.
2001-12-23 22:00:36 +00:00
Robert James Kaes
c3124815a1
Cleaned up the code which sends the "Via" header. It now uses
...
write_message().
2001-12-23 21:55:08 +00:00
Robert James Kaes
b68354a9da
Add a pre-processor test around the sys/types.h header file, to make sure
...
it's available before we try to include it.
2001-12-23 18:44:02 +00:00
Robert James Kaes
4ed73b6f07
Fixed up the order of some of the includes to cope with OpenBSD. Also,
...
test for the MSG_NOSIGNAL define.
2001-12-23 03:28:03 +00:00
Robert James Kaes
d6e5285e95
Updated the copyright notice.
2001-12-20 04:48:52 +00:00
Robert James Kaes
93f0406b7e
Created the CHECK_CRLF() macro to handle the tests for the appropriate
...
control characters in a string.
2001-12-20 04:48:32 +00:00
Robert James Kaes
7240af4333
Changed the calls to write() to send() so that we can use send(...,
...
MSG_NOSIGNAL) and not get signals sent to the process. (easier for
debugging and the system doesn't need to worry about signals.)
2001-12-19 20:41:28 +00:00
Robert James Kaes
63a1fa96cc
Removed duplicate code from process_server_headers() and removed the calls
...
to strlen(); readline() already returns the length of the string, so use
that instead.
2001-12-19 20:40:23 +00:00
Robert James Kaes
e964cf0d35
Damn---removed the debugging code from write_message().
2001-12-19 05:20:01 +00:00
Robert James Kaes
5140f01d5c
Opps! Fixed a problem with negative numbers. :)
2001-12-19 05:19:03 +00:00
Robert James Kaes
56b541d76b
Redefined HTTP_LINE_LENGTH to be based on MAXBUFFSIZE (and set to around
...
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-19 05:13:40 +00:00
Robert James Kaes
17103bf8fe
Updated the list of headers to ignore.
2001-12-18 05:01:03 +00:00
Robert James Kaes
faf655c5db
Added the code to log the request when in tunnelling mode.
2001-12-17 19:10:56 +00:00
Robert James Kaes
9448787ff2
Added UPSTREAM_CONFIGURED() macro to help clean up the code.
...
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-12-17 00:11:32 +00:00
Robert James Kaes
fdb4952e5f
Added the assert() calls to safe_write() to make sure the arguments are
...
sane.
2001-12-17 00:00:24 +00:00
Robert James Kaes
6919faea77
Removed reference to ternary.h
2001-12-15 20:08:24 +00:00
Robert James Kaes
997d3daa65
No longer need this system since it was only being used in the DNS caching
...
section and the anonymous header section. Once I had removed the DNS
caching, the ternary tree system was overkill for the anonymous header
code. Replaced in the anonymous header section with a simple linked list.
2001-12-15 20:07:45 +00:00
Robert James Kaes
b969ed4302
Changed safe_write() to fully send all the data in the buffer it was
...
passed. Also safe_write() and safe_read() now use char pointer buffers
rather than the void pointer style.
2001-12-15 20:04:04 +00:00
Robert James Kaes
cad9a5d11b
Switched from using the ternary tree to a simple linked list.
2001-12-15 20:02:59 +00:00
Robert James Kaes
b811c2fbf8
Removed the references to ternary.c and ternary.h
2001-12-15 20:02:26 +00:00
Robert James Kaes
75ab2c8de3
Removed the include "dnscache.h" header file.
2001-12-15 06:02:16 +00:00
Robert James Kaes
a4934e2232
Added the host name lookup code (which use to be in the DNS caching
...
system.)
2001-12-15 05:58:30 +00:00
Robert James Kaes
b15be9de3e
Removed the references to dnscache.c and dnscache.h
2001-12-15 05:57:40 +00:00
Robert James Kaes
bf18ec5adc
Removed the DNS caching system because tinyproxy did not determine the TTL
...
of the host names being resolved, which is not recommended by RFC2616.
Basically, if a HTTP client doesn't respect the TTL is should not be
caching the address since it leaves itself open to DNS spoofing attacks.
Also, having a DNS caching system is an administater decision, and so
should not be included in the tinyproxy source.
2001-12-15 05:57:13 +00:00
Robert James Kaes
e0694a8f6e
Added support for the <pthreads.h> header.
2001-11-26 05:23:49 +00:00
Robert James Kaes
09fdf9af74
Increased the maximum buffer size to 96 KB
2001-11-26 01:39:53 +00:00
Robert James Kaes
a03a1d3847
Fixed a problem with not buffering more than 2K (which is obviously a
...
problem. :)
2001-11-26 01:39:07 +00:00
Robert James Kaes
fa193dcd22
send_message changed to send_response_message in the conn_s structure.
2001-11-25 22:08:11 +00:00
Robert James Kaes
f8b61da4ae
Added tests for _every_ header to make sure they are actually present on
...
the system.
2001-11-25 22:07:36 +00:00
Robert James Kaes
2f4ccc04ae
Added an additional test to make sure the <regex.h> header is actually
...
present on the system.
2001-11-25 22:06:54 +00:00
Robert James Kaes
5e17d0736e
Removed some of the members of the structures and renamed a few others.
2001-11-25 22:06:20 +00:00
Robert James Kaes
e9cfd1f82e
makenewline() now copies the data into the structure rather than just
...
storing the pointer to the data.
add_to_buffer() is now exported.
Renamed writebuff() and readbuff() to write_buffer() and read_buffer().
2001-11-25 22:05:42 +00:00
Robert James Kaes
6e054e4a72
Added a new error code.
2001-11-25 02:22:05 +00:00
Robert James Kaes
8dc7035fbc
Add support to limit the maximum size of the input line (to 128KB which
...
should be _more_ than enough for any header line. :)
2001-11-25 02:21:46 +00:00
Robert James Kaes
09dbdbc3d7
Change the C code to match the new style.
2001-11-25 02:20:54 +00:00
Robert James Kaes
4aa5e79cdf
Added the chomp() function (to replace the trim() function reqs.c)
2001-11-23 01:19:15 +00:00
Robert James Kaes
fd3b313e9f
Style changes. Also replaces all mallocs with safemalloc, etc.
2001-11-23 01:18:43 +00:00
Robert James Kaes
c6c7427e8d
Removed the trim() function and move it into chomp()/utils.c
2001-11-23 01:17:19 +00:00
Robert James Kaes
787ece6c01
Reformated text.
2001-11-22 00:31:10 +00:00
Robert James Kaes
1fa9d257c2
Replaced the calls to the old readline() function with calls to the new
...
version.
2001-11-22 00:19:45 +00:00
Robert James Kaes
d08d088d4a
Replaced the readline() function with a new version which has no
...
restrictions on the length of a line (unless you fill memory of course.)
Reformated the source.
2001-11-22 00:19:18 +00:00
Robert James Kaes
a30eb425e3
#if 0'd the code handling the "Via" header in the process_client_headers()
...
function since I'm not completely happy with the code.
2001-11-21 19:19:46 +00:00
Robert James Kaes
bc8c3ff399
Include the protocol variables in the conn_s structure.
2001-11-21 01:00:09 +00:00
Robert James Kaes
90ee7e01ca
Extract the version from the request line and store it in the conn_s
...
structure.
Don't send a Connection header to the remote connection.
Handle the Via header correctly.
2001-11-21 00:59:33 +00:00
Robert James Kaes
dde4e9adcc
Changed the read() call into a recv() call with a flag of NOSIGNAL since I
...
don't want signals messing up my calling conventions.
2001-11-12 21:10:51 +00:00
Robert James Kaes
fffdc76681
Made is_anonymous_enabled() an inline function.
2001-11-05 15:24:42 +00:00
Robert James Kaes
d2f2750a37
Added a clean rule to remove the gprof files.
2001-11-05 15:24:01 +00:00
Robert James Kaes
ddb002d57e
Replaced all calls to buffer_size() with the macro BUFFER_SIZE().
2001-11-05 15:23:34 +00:00
Robert James Kaes
270af08171
Removed the buffer_size() function and turned it into BUFFER_SIZE() macro.
...
Moved the struct buffer_s into the header file. Added more assert() calls
to better document the assumptions the functions make. Removed incorrect
code in remove_from_buffer() which was never actually called anyway.
2001-11-05 15:23:05 +00:00
Robert James Kaes
9f0c8f18fb
Tightened the string/numeric ACL checks.
2001-11-03 06:08:37 +00:00
Robert James Kaes
e61424a7bf
Informing the user of the connection to the tunnel is a INFO type message,
...
not a CONN level message.
2001-11-02 21:19:46 +00:00
Robert James Kaes
4ac03908fc
Header reorganization. Basically all system headers are now included in
...
tinyproxy.h and all the other files include the tinyproxy.h header. This
moves all the dependancy issues into one file.
2001-10-25 17:27:39 +00:00
Robert James Kaes
722a7d2142
Changed the included headers to be only the "tinyproxy.h" since it
...
contains all the code for properly bringing in the system headers (in the
correct order and with proper dependancies.)
2001-10-25 17:02:50 +00:00
Robert James Kaes
d3b099140f
Some code clean up due to the creation of the conns.{c,h} files which now
...
store the creation/destruction and definition of the connection structure.
2001-10-25 16:58:50 +00:00
Robert James Kaes
f8ad0dced3
Moved the connection creation/destruction and definition into it's own
...
files.
2001-10-25 16:58:09 +00:00
Robert James Kaes
1bbf32f04c
Fixed the problems with sending/not sending headers so that the CONNECT
...
(SSL) method would work with upstream proxying!
2001-10-25 05:12:46 +00:00
Robert James Kaes
28b4477f48
Added the upstream flag to the conn_s structure.
2001-10-25 05:10:57 +00:00
Robert James Kaes
5f8ee4fae3
Bit of source code clean up.
2001-10-25 05:10:32 +00:00
Robert James Kaes
6afa56ba09
Changed the way relay_connection() works by having the both buffers
...
emptied when either socket is closed. This should be better for the tunnel
connections.
Change the connect_to_upstream() function to better utilize the
establish_http_connection() function. Code re-use is cool. :)
2001-10-25 04:40:48 +00:00
Robert James Kaes
f8d43bd423
Lowered the size of the read buffer to 2K since Ethernet seems to work
...
with 1400 byte segments.
2001-10-25 04:39:10 +00:00
Robert James Kaes
b7b4d08758
Error message cleanup to make the information more informative.
2001-10-24 00:37:23 +00:00
Robert James Kaes
7d7958b0d7
Fixed a spelling problem in a log message.
2001-10-23 16:43:08 +00:00
Robert James Kaes
a746b9d0b2
Moved the zero-length string setting to outside the tests in getpeer_*()
...
functions. Also added a more robust error reporting for DNS errors.
2001-10-23 03:57:34 +00:00
Robert James Kaes
a6a026cb9e
Changed the getpeer_*() functions to return the reason why the name or IP
...
address could not be looked up.
2001-10-22 16:52:34 +00:00
Robert James Kaes
358b2781af
Cleaned up the code in handle_connection() and added a NULL pointer test
...
in the free request function.
2001-10-22 16:08:29 +00:00
Robert James Kaes
ad743c1e41
Fixed a problem where a user's variable would be uninitialized if a DNS
...
lookup failed.
2001-10-22 15:56:11 +00:00
Robert James Kaes
b40e382e5a
More moving around of the source code. Still can't get CONNECT to work
...
with an upstream proxy.
2001-10-19 18:03:49 +00:00
Robert James Kaes
26587ef1e7
Fixed a problem where a full buffer on the read side would cause the
...
connection to be closed.
2001-10-18 21:45:54 +00:00
Robert James Kaes
ac111ee8c6
Added netinet/in.h so that tinyproxy will compile on OpenBSD.
2001-10-18 03:44:06 +00:00
Robert James Kaes
7a613287ee
Trying to allow CONNECT methods through an Upstream proxy.
2001-10-17 04:15:35 +00:00
Robert James Kaes
af1246c78b
Added the ability to compile tinyproxy with static linking.
2001-10-01 04:01:10 +00:00
Robert James Kaes
6ab7ebcb31
send_http_message() doesn't create a memory block and store it in the
...
connection's output_message variable. Instead the error is sent to the
client right away. Once we finish processing the client's headers it will
automatically accept the error message. So we get the same result, but
less memory is used.
2001-09-16 20:13:52 +00:00
Robert James Kaes
606c8196a0
Added the configure variables to support the upstream proxy.
2001-09-16 20:12:29 +00:00
Robert James Kaes
490754594e
Added a check to make sure the Upstream and Tunnel directives are not both
...
set in the configuration file.
2001-09-16 20:11:54 +00:00
Robert James Kaes
2a566d194d
Fixed a spelling mistake.
2001-09-16 20:11:24 +00:00
Robert James Kaes
b9c4c480d2
Moved the safe_write() and safe_read() functions here.
2001-09-16 20:11:07 +00:00
Robert James Kaes
08baf6b01b
Moved the safe_read() and safe_write() functions into the sock.c file
...
since they're now used in other places.
Added support for a true upstream proxy connection. This involved some
rewriting of the handle_connection() function and some of the support
functions so that they do perform the domain filtering and anonymous
filtering while still connecting to the upstream proxy. I think the code
should be cleaned up further.
2001-09-16 20:10:19 +00:00
Robert James Kaes
a8f0272ace
Added the token for Upstream and the code the handle the upstream
...
directive in the configuration file.
2001-09-16 20:08:24 +00:00
Robert James Kaes
4619035cd2
Fixed a problem where log messages could be missed during a rotate.
2001-09-16 05:38:27 +00:00
Robert James Kaes
9860222979
Added the send_http_message() function to handle sending messages back to
...
the client. It's used by httperr() and showstats().
2001-09-15 21:29:59 +00:00
Robert James Kaes
d3213f193c
Changed to rotating the log file instead of truncating it. Also using the
...
create_file_safely() function to eliminate potential security problems.
2001-09-15 21:29:22 +00:00
Robert James Kaes
d2ddca583e
Removed the memory allocation log messages.
2001-09-15 21:28:25 +00:00
Robert James Kaes
7615024f27
Changed to using the send_http_message() function so that the HTTP headers
...
are sent properly.
2001-09-15 21:27:58 +00:00
Robert James Kaes
b7fc58333b
Removed the log messages related to memory allocation.
...
Move the SSL response header into into own function.
Added support for the status host.
2001-09-15 21:26:14 +00:00
Robert James Kaes
1c8dcecf82
Removed the log message when unable to allocate memory.
2001-09-15 21:24:18 +00:00
Robert James Kaes
48ddb827a7
Updated the authorization string.
2001-09-15 21:21:01 +00:00
Robert James Kaes
9d61e1fd4b
Removed these files since their functionality has been replaced.
2001-09-14 23:43:59 +00:00
Robert James Kaes
ea4d707d12
Finally got the SSL problem fixed. We can not send _any_ client headers
...
(including the new line) to the origin server when in tunnelling mode. SSL
now works correctly. Yeah.
2001-09-14 21:16:56 +00:00
Robert James Kaes
9c520c7a50
Changed the buffer pointer in safe_write() to be const void* since we're
...
not changing the values.
Instead of building a new request and memory, simply send each part
separately. Actually uses less memory _and_ less code.
2001-09-14 19:50:45 +00:00
Robert James Kaes
dab361f764
When logging an error indicate the file descriptor and the error number.
2001-09-14 19:49:10 +00:00
Robert James Kaes
7bfb5527ff
Include the SSL field in the connection structure since we're going to
...
handle SSL connections.
2001-09-14 04:56:58 +00:00
Robert James Kaes
c6d2e0f7ff
Massive changes. Split process_method() into a bunch of smaller files and
...
changed the parsing code from REGEX and uri.c to a simplier sscanf()
method. Also, include code to handle SSL connections, but that's not quite
working yet.
2001-09-14 04:56:29 +00:00
Robert James Kaes
bce9e6601e
Removed the reference to uri.c and uri.h since the new reqs.c doesn't use
...
them.
2001-09-14 04:55:06 +00:00
Robert James Kaes
c48aea165d
Fixed memory leak.
2001-09-12 03:33:15 +00:00
Robert James Kaes
25457361c7
Changed mallocs to callocs.
2001-09-12 03:32:54 +00:00
Robert James Kaes
ac4bbe6bd6
Increased the number of "insertions" before the free memory.
2001-09-12 03:32:24 +00:00
Robert James Kaes
e2f10bc2ea
Added the debugging realloc() function.
2001-09-11 19:27:27 +00:00
Robert James Kaes
2c3cc9185d
Set the stack size of threads to 32KB from 128KB.
2001-09-11 19:27:09 +00:00
Robert James Kaes
f8edd2d8b4
Switched the memory allocation for the large strings to heap based instead
...
of stack based.
2001-09-11 19:26:49 +00:00
Robert James Kaes
8aca9455b2
Style stuff.
2001-09-11 04:38:23 +00:00
Robert James Kaes
365df5b5be
Used safecalloc() instead of malloc() and memset(). Fixed a potential
...
memory leak with the regular expression engine.
2001-09-11 04:13:58 +00:00
Robert James Kaes
c04ffd3913
Comment cleanup.
2001-09-11 04:12:47 +00:00
Robert James Kaes
0668e42e8f
Changed all the mallocs and callocs to use the new safemalloc and
...
safecalloc.
2001-09-08 18:58:37 +00:00
Robert James Kaes
d5253ec5f4
Lowered the number BUFARRAY and BUFSIZE constants to reduce the maximum
...
memory usage of a ternary tree. It now should not exceed 4MB of memory.
2001-09-08 18:58:02 +00:00
Robert James Kaes
78bc90cd07
Lowered the number of insertions before the ternary tree is rebuilt.
2001-09-08 18:56:30 +00:00
Robert James Kaes
4923dd22a7
Added the debugging_(malloc|calloc|free) functions to help track memory
...
usage. There are also now defines for safe(malloc|calloc|free) which allow
for debugging code to be enabled or not.
2001-09-08 18:55:58 +00:00
Robert James Kaes
b8a694e7a3
Fixed a memory leak in thread_main().
2001-09-08 06:29:04 +00:00
Robert James Kaes
28d955a3c8
Explictly added the DETACHED creation method on threads.
2001-09-07 18:19:39 +00:00
Robert James Kaes
1a9dc4e7e8
Error message cleanup.
2001-09-07 04:21:07 +00:00
Robert James Kaes
f5b9bdb93d
Fixed up return types.
2001-09-07 04:20:04 +00:00
Robert James Kaes
ea1309bf73
Error message cleanup.
...
Include locking around access to the servers_waiting variable.
2001-09-07 04:19:05 +00:00
Robert James Kaes
aa9e05430a
Added the ability to clear out the DNS cache after a certain number of
...
insertions.
2001-09-07 00:40:34 +00:00
Robert James Kaes
c24cace1d1
Fixed the ternary_destroy() function which causes segfaults.
2001-09-07 00:38:03 +00:00
Robert James Kaes
32ce57a6f6
Still need to fix a problem with tinproxy segfaulting when we try to
...
delete the ternary tree.
2001-09-06 21:53:16 +00:00
Robert James Kaes
4670eb5194
Make sure that freeptr actually points to something before we try to
...
invoke it.
2001-09-06 21:52:31 +00:00
Robert James Kaes
f2312262c7
Try moving the kill thread code into the thread_main() function so it can
...
check if there are too many thread after it's finished with it's request.
Needs to be cleaned up further (if this is the right idea) because of the
locking around the servers_waiting variable.
2001-09-06 21:16:35 +00:00
Robert James Kaes
445aaca53e
Initialzed the servers_waiting explictly. Added debugging code to find out
...
why the threads are not being closed.
2001-09-06 19:00:47 +00:00
Robert James Kaes
c937858ec1
Moved the compare_header() test after the skip header test.
2001-09-04 18:22:00 +00:00
Robert James Kaes
667b9d5d53
Switched to a case insensitive search method.
2001-09-04 17:53:41 +00:00
Robert James Kaes
45a021a18b
Fixed a format string bug with the syslog function.
2001-09-04 16:50:22 +00:00
Robert James Kaes
fc94a56f56
Removed the xstrstr() function since it is no longer used. reqs.c was the
...
only place it was called from, and strstr() will do the same work.
2001-08-30 16:52:56 +00:00
Robert James Kaes
a328cefbf0
Renamed ternary_insert() to ternary_insert_replace() and added the ability
...
to replace existing data (without a memory leak.) Added two DEFINES
ternary_insert() and ternary_replace() to aid in coding.
2001-08-30 16:52:09 +00:00
Robert James Kaes
22bdb8123d
Replaced the call to xstrstr() with strstr().
2001-08-30 16:51:10 +00:00
Robert James Kaes
c83c92a0d1
Removed the insert_data() function and made the LOCKing go around the
...
entire dnscache() function. Replaced the "replace" code in dns_insert()
with a call to ternary_replace().
2001-08-30 16:50:42 +00:00
Robert James Kaes
51e4ebb293
Text clean up.
2001-08-29 04:04:01 +00:00
Robert James Kaes
d06ddc50ab
Removed the new_dnscache() call.
2001-08-29 04:01:05 +00:00
Robert James Kaes
fcff398f31
Cleaned up the locking code to make it more fine grained. Did this since
...
dncache.c has locking itself now.
2001-08-29 04:00:22 +00:00
Robert James Kaes
9bdfa623ba
Changed how we handle when compiled with debug code.
2001-08-29 03:59:12 +00:00
Robert James Kaes
4c24890f17
Removed the new_dnscache() function and the ternary.h include.
2001-08-29 03:58:39 +00:00
Robert James Kaes
c9a772e36b
Added a more fine grained locking system for multiple threads.
...
Removed the new_dnscache() function and moved it into dnscache().
Fixed a memory leak in dns_insert().
2001-08-29 03:57:51 +00:00
Robert James Kaes
9a61faa716
The logging levels _now_ output the correct information depending on where
...
the config file sets it.
2001-08-28 15:51:58 +00:00
Robert James Kaes
ee892c109b
Added an extra CRNL to the end of the HTML body.
2001-08-28 04:33:54 +00:00
Robert James Kaes
fd65072f1f
Changed the default stack size to 128 KB.
2001-08-28 04:33:21 +00:00
Robert James Kaes
f9d0fcd1a2
Moved the strip new line/carriage return from the end of a line into a
...
separate function.
2001-08-28 04:32:14 +00:00
Robert James Kaes
f7d0ea8784
Changed the MIME type to text/html rather than the incorrect text/mime.
2001-08-27 17:46:50 +00:00
Robert James Kaes
be9ce3ad26
Moved some of the includes around so that FreeBSD can compile correctly.
2001-08-27 17:46:20 +00:00
Robert James Kaes
e88c426966
Changed the default stack size since some OS's have a stack size which is
...
too small.
2001-08-27 17:45:50 +00:00
Robert James Kaes
bf7a671d87
Fixed a problem where the connect messages were not getting logged if the
...
log level was set to INFO.
2001-08-27 17:44:55 +00:00
Robert James Kaes
3b5e17d579
Split the headers from the message body. Also now include proper headers
...
like Date, Server, Content-Length, etc. Also, fixed the type for an error
message to be const char*.
2001-08-27 03:45:34 +00:00
Robert James Kaes
771425700d
Fixed a SEGV problem with invalid requests.
2001-08-27 03:44:22 +00:00
Robert James Kaes
cc70fc6f43
Fixed a problem with the new LOG_CONN log level.
2001-08-26 23:37:26 +00:00
Robert James Kaes
cebda5913d
Removed the config.anonymous entry since we've moved the information into
...
anonymous.c file.
2001-08-26 21:18:04 +00:00
Robert James Kaes
5530451545
Renamed versiondisp() to display_version() and added the PACKAGE, VERSION,
...
and TARGET_SYSTEM into the version list. Also moved the license into a
separate function. Renamed usagedisp() to display_usage(). Fixed a problem
where the anonymous search tree was being created _after_ it was being
accessed.
2001-08-26 21:17:30 +00:00
Robert James Kaes
7fe7ee2828
Fixed a problem where child threads would not be closed if they had been
...
created after the initial creation. Also fixed a problem where the status
of the threads were not going back to T_WAITING if MaxRequestsPerChild was
0.
2001-08-26 21:14:30 +00:00
Robert James Kaes
af10311eaf
Fixed a problem with the Anonymous filtering. Basically, anonymous
...
filtering was not working in the previous version.
2001-08-26 21:11:55 +00:00
Robert James Kaes
e5819ebe1c
Added the Connect log level.
2001-08-26 21:10:04 +00:00
Robert James Kaes
849345e88b
Removed the anon_new() function and moved it's functionality into
...
anonymous_insert(). Also renamed all the anon_* functions to anonymous_*
function.
2001-08-26 21:07:27 +00:00
Robert James Kaes
ace480bb65
Fixed the include order to better handle the sys/time.h and time.h
...
headers.
2001-06-06 19:33:26 +00:00
Robert James Kaes
ff97b38603
Explictly cast getpid() to a long int to remove the compiler warnings on
...
various machines.
2001-06-06 19:32:51 +00:00
Robert James Kaes
540e33000b
Changed the format type in the printf() to remove the compiler error (I
...
hope.)
2001-06-05 16:08:15 +00:00
Robert James Kaes
f43404aeef
Removed the DEFAULT_LOG, DEFAULT_PORT, and DEFAULT_USER directives since
...
these MUST be set in the configuration file.
2001-06-04 23:30:34 +00:00
Robert James Kaes
3dfc5e84cc
Fixed a type problem with fprintf in log_message() when logging the PID.
2001-06-02 03:38:02 +00:00
Robert James Kaes
e45c95fa97
LOG_EMERG doesn't exist anymore, so replace it with LOG_CRIT.
2001-06-02 03:10:34 +00:00
Robert James Kaes
a9720e85f6
Include LogLevel and it's settings into the grammar of the config file.
2001-06-02 03:10:09 +00:00
Robert James Kaes
2925b18412
Added the code for handling selective logging.
2001-06-02 03:09:27 +00:00
Robert James Kaes
0a5b82cd97
Fixed up the names of the DEFINES.
2001-06-02 02:07:34 +00:00
Robert James Kaes
5b11a1e2c9
Formating changes. Also, explictly close the client_fd when the
...
connections are destroyed.
2001-05-30 15:45:14 +00:00
Robert James Kaes
7febdd028c
Changed all references to log() to log_message().
2001-05-27 02:38:46 +00:00
Robert James Kaes
154a2e0880
Changed the references to log() to log_message(). Also changed some of the
...
data types for the variables.
2001-05-27 02:37:18 +00:00
Robert James Kaes
1cd4d6d440
Added code to stop the creation of core files.
...
Changed all references to log() to log_message().
2001-05-27 02:36:22 +00:00
Robert James Kaes
b242a2896e
Changed the thread_main() function to only deal with the connections per
...
thread if the user has actually requested it.
Also changed some of the data types for the variables.
2001-05-27 02:33:35 +00:00
Robert James Kaes
42b09e5441
Removed the SA define.
...
Made the sock_mutex static since it's not referenced outside the file.
Changed the data types for some of the variables.
Cleaned up the readline function (changed data types and removed
variables.)
2001-05-27 02:31:20 +00:00
Robert James Kaes
981adafb5d
Changed some of the types to Posix data types.
...
Changed any reference to log() to log_message().
Fixed a potential memory leak in process_method().
Removed redundant code and variables in relay_connection().
2001-05-27 02:29:06 +00:00
Robert James Kaes
91ba2103d1
Changed the reference from log() to log_message().
2001-05-27 02:26:53 +00:00
Robert James Kaes
f89272be35
Changed the log() function to log_message().
2001-05-27 02:26:11 +00:00
Robert James Kaes
627c88c736
Changed all the references to log() to log_message().
2001-05-27 02:25:21 +00:00
Robert James Kaes
69617f6d56
Just a bit of a cleanup. Nothing major.
2001-05-27 02:24:40 +00:00
Robert James Kaes
938b7e7f21
Fixed the return type for new_dnscache().
2001-05-27 02:24:00 +00:00
Robert James Kaes
23c08ca3ee
Changed the types for various variables. Some the functions had the
...
variable types changed as well.
2001-05-27 02:23:08 +00:00
Robert James Kaes
df52296674
Updated the return type for new_anonymous().
2001-05-27 02:21:37 +00:00
Robert James Kaes
bf477e9dff
Renamed the access member of struct acl_s to acl_access.
...
Changed some of the types for the various variables to better reflect what
they are actually being used for.
2001-05-27 02:20:54 +00:00
Robert James Kaes
d32e0d1ccb
Added ASSERT statements.
2001-05-23 18:01:23 +00:00
Robert James Kaes
86313eb6f5
Made the safefree() macro enabled all the time.
2001-05-23 18:00:54 +00:00
Robert James Kaes
b1d942c22a
Removed a debugging aid.
2001-05-23 17:59:53 +00:00
Robert James Kaes
3f8b219210
Removed a DEBUG line in the "can't happen" case.
2001-05-23 17:59:08 +00:00
Robert James Kaes
03ffa590b7
Just a formatting change.
2001-05-23 17:58:19 +00:00
Robert James Kaes
36d84f4bc1
Make the netmask static and include the asserts.
2001-05-23 17:57:22 +00:00
Robert James Kaes
fedbe888e8
Fixed a potential problem with not zeroing the number of connections when
...
the threads are emptied.
2001-05-23 17:56:35 +00:00
Robert James Kaes
93b201d23b
Fixed more potential overflow bugs.
2001-01-15 17:11:57 +00:00
Robert James Kaes
2f2d74e9f2
Fixed a potential security bug in http_err. There was a possibility of a
...
heap overflow exploit.
2001-01-15 17:06:19 +00:00
Robert James Kaes
cc704ae7a7
Fixed a bug where the ':' character was not being properly detected.
2001-01-02 19:30:40 +00:00
Robert James Kaes
d5467e404b
Implimented the MaxRequestsPerChild directive.
2000-12-09 02:35:30 +00:00
Robert James Kaes
0051208777
Fixed a problem with polling for the number of active threads. No longer
...
polls. :)
2000-12-08 03:35:07 +00:00
Robert James Kaes
068b0337c5
Fixed MACRO error.
2000-11-23 04:49:26 +00:00
Robert James Kaes
c01af94a1c
Fixed spelling mistake.
2000-11-23 04:46:48 +00:00
Robert James Kaes
b023ff577f
Changed the filter_host command to filter_url.
2000-11-23 04:46:25 +00:00
Robert James Kaes
b6c6939e0a
In the Key Found code, don't display the string in the debug code since it
...
doesn't exist anymore when we display it. Doh!
2000-10-23 21:46:38 +00:00
Robert James Kaes
1de608ec5c
Added the initialization section for the DNS and Anonymous sub systems.
2000-10-23 21:44:43 +00:00
Robert James Kaes
5a5c2adcd8
Added the new_anonymous initialize routine
2000-10-23 21:43:52 +00:00
Robert James Kaes
670fad4a41
Added the new_dnscache routine to initialize the Ternary tree. Also,
...
removed the garbage collection routine.
2000-10-23 21:42:31 +00:00
Robert James Kaes
91b7c55972
Fixed the insert function to handle a failed insert properly.
2000-09-26 04:59:48 +00:00
Robert James Kaes
ba5e5fc109
Added the TE_EXISTS return code, and cleaned up the ternary_destroy
...
function.
2000-09-26 04:59:20 +00:00
Robert James Kaes
a2c3e5ecc9
Moved the safefree() macro to the tinyproxy.h header.
2000-09-26 04:58:35 +00:00
Robert James Kaes
fd61e791b5
Updated the free() calls to the safefree() calls.
2000-09-26 04:57:46 +00:00
Robert James Kaes
8398c7337d
There is no LOG_EMERG level, so changed to LOG_CRIT.
2000-09-21 16:57:10 +00:00
Robert James Kaes
30f36f3aa6
Added the LOG_NOTICE level.
2000-09-21 16:53:51 +00:00
Robert James Kaes
1deed67e1f
These are generated by grammar.y and scanner.l respectively, don't include
...
them in the CVS.
2000-09-15 20:58:57 +00:00
Robert James Kaes
955eb4b966
Automatically generated file.
2000-09-15 20:57:08 +00:00
Robert James Kaes
0b7488babe
Don't include automatically generated files.
2000-09-15 20:55:29 +00:00
Robert James Kaes
d0b36a6673
Need to do a check for the <stdint.h> header since it's not a standard
...
header available on all systems.
2000-09-14 16:41:20 +00:00
Robert James Kaes
a5fbf4ea4b
Again, needed for configure script. Automatically built by ./reconf
2000-09-12 18:10:30 +00:00
Robert James Kaes
dc18c065b7
These all handle reading the tinyproxy configuration file.
2000-09-12 00:12:52 +00:00
Robert James Kaes
2b5c6be1d5
Generalized the ternary code which was already being used in anonymous.*
...
now it can be used (and is used) in both anonymous and dnscache
2000-09-12 00:10:28 +00:00
Robert James Kaes
de6f42d9fa
Improvied access control semantics. Allows for a finger control for
...
allowing and denying hosts.
2000-09-12 00:08:48 +00:00
Robert James Kaes
322a53eb56
tinyproxy now uses a pool of threads to handle connections. All the work
...
for creating new threads, deleting old thread, and generally managing the
pool is done here.
2000-09-12 00:07:44 +00:00
Robert James Kaes
bb32293415
This module handles the various stats relating to tinyproxy's
...
funcationality.
2000-09-12 00:06:09 +00:00
Robert James Kaes
392c97e3d1
MAJOR RE-WRITE! Read the ChangeLog and look at the source. It's shorter
...
than redocumenting the changes here. :)
2000-09-12 00:04:42 +00:00
Robert James Kaes
9f080da488
Fixed the change user/group ability.
...
Log when tinyproxy is using default values rather than specific ones.
Cleaned up the command line arguments since tinyproxy now uses a
configuration file.
Removed the USR1 signal and added the thread creation code.
2000-09-12 00:03:53 +00:00
Robert James Kaes
1efe0265de
Removed the xmalloc() and xstrdup() functions.
...
Added the pidfile_create() function.
Added the OpenBSD style strlcat() and strlcpy() functions.
2000-09-12 00:01:29 +00:00
Robert James Kaes
04fc081e6d
Switched to the new logging style and replaced the xmalloc() with straight
...
malloc().
2000-09-11 23:57:43 +00:00
Robert James Kaes
f6b7fe3f5c
Needed locking in getpeer_string().
...
Added mutex locking around the dnscache() call.
Removed the global sockaddr and setup_fd variables.
Added the socket_blocking() and socket_nonblocking() functions.
Gutted the readling() function and replaced it with something similar to
the 1.0 version. :)
2000-09-11 23:56:32 +00:00
Robert James Kaes
c0ff35dd22
Moved back to the <config.h> for autoconf defines.
2000-09-11 23:50:07 +00:00
Robert James Kaes
4f4f91f76f
Cleaned up the logging format, and also included logging levels (which are
...
similar to the syslogd format.)
2000-09-11 23:47:52 +00:00
Robert James Kaes
5d7063a79e
Not using <defines.h> for autoconf anymore, so move back to the <config.h>
...
format.
2000-09-11 23:46:42 +00:00
Robert James Kaes
f807f4b96c
Just using standard malloc() since the xmalloc() didn't really add
...
anything useful to the command.
2000-09-11 23:43:59 +00:00
Robert James Kaes
df030a075f
Removed the custom hash routines. Using the ternary module instead.
2000-09-11 23:42:43 +00:00
Robert James Kaes
b7f7599d76
Cleaned up the source so that the internal structure is no exposed by the
...
buffer.h header.
2000-09-11 23:41:32 +00:00
Robert James Kaes
55185db499
Removed the ternary tree code from these files and made it a separate
...
module.
2000-09-11 23:38:36 +00:00
Robert James Kaes
06281b7898
Modified to include all the files needed to build tinyproxy, plus the
...
special targets for building the LEX and YACC files. (Also included the
GNU license.)
2000-09-11 23:37:01 +00:00
Robert James Kaes
2d9d164034
These files are no longer used within tinyproxy.
2000-09-11 23:24:59 +00:00
Robert James Kaes
73b1ff1b1a
Reorganized (or added) the #include <sys/types.h> line so tinyproxy would
...
compile cleanly on FreeBSD systems.
2000-04-26 16:31:29 +00:00
Robert James Kaes
d0a05357a1
Fixed a bug with the path in clientreq. If the path was empty it caused a
...
malformed request to be sent.
2000-03-31 22:55:22 +00:00
Robert James Kaes
8a563800e4
Added a line for the anonymous.* files.
2000-03-31 20:14:45 +00:00
Robert James Kaes
b841f484aa
Changed the socket time out to 10 secs.
2000-03-31 20:14:26 +00:00
Robert James Kaes
dede5f36a8
Updated the anonheader function to use the new anonymous API. Removed the
...
hack for the POST method in clientreq.
2000-03-31 20:13:36 +00:00
Robert James Kaes
2562d28129
Completely rewrote the readline function.
2000-03-31 20:10:13 +00:00
Robert James Kaes
ae347fc87a
Added the working_* fields as a scratch pad for readline().
2000-03-31 20:09:19 +00:00
Robert James Kaes
0edeabbd63
Removed the allowedhdr_s structure since it is now accessed through
...
anonymous.*
2000-03-31 20:08:19 +00:00
Robert James Kaes
b1e97bd24f
Moved the anonymous header code into it's own file to make it easier to
...
update.
2000-03-31 19:56:55 +00:00
Robert James Kaes
477dacb5fa
Included the <sys/types.h> header.
2000-03-29 16:18:05 +00:00
Robert James Kaes
0d421b5c39
Fixed a bug with the clientreq function which was incorrectly setting the
...
clientheader flag and causing _all_ headers to be sent even in anonymous
mode.
2000-03-29 16:17:37 +00:00
Robert James Kaes
46076808fb
Fixed another NULL bug with the uri->authority. If an badly formed request
...
was made in the form of http:\\www.somewhere.com/ tinyproxy would SEGV.
This has been corrected.
2000-03-28 16:41:45 +00:00
Robert James Kaes
d222c7725b
Fixed a NULL pointer bug in clientreq. If the SCHEME in the URL was NULL
...
the program would SEGV. This was caused by the error logging code.
2000-03-28 16:19:12 +00:00
Robert James Kaes
c2ef08202b
Remove the defines for DEFAULT_* and UPSTREAM (they've been moved into
...
acconfig.h and configure).
2000-03-13 00:56:21 +00:00
Robert James Kaes
10317d6701
Included the changes needed to re-add the upstream proxy option.
2000-03-11 20:37:44 +00:00
Robert James Kaes
3d6ee12d89
Once again, these files are made automatically, don't include them.
2000-03-11 20:34:44 +00:00
Steven Young
37e63909c0
This commit was generated by cvs2svn to compensate for changes in r2,
...
which included commits to RCS files with non-trunk default branches.
2000-02-16 17:32:49 +00:00