Mukund Sivaraman
551e041638
Make takesig() into a static function
2009-09-15 04:09:34 +05:30
Mukund Sivaraman
42d2e10c93
Fix constness of stathost
2009-09-15 04:08:26 +05:30
Mukund Sivaraman
83ebd74d87
Minor indenting changes
...
Also changed the text "configuration file" to read "config file".
2009-09-15 04:07:06 +05:30
Mukund Sivaraman
d243515fa7
Return instead of exit() at end of main()
2009-09-15 04:06:26 +05:30
Mukund Sivaraman
ce55167487
Minor indenting changes
2009-09-15 03:53:35 +05:30
Mukund Sivaraman
b3065b6d18
Exit with proper status in case of bad commandline arguments
2009-09-15 03:53:18 +05:30
Mukund Sivaraman
34e23233ce
Add doc for change_user()
2009-09-15 02:00:20 +05:30
Mukund Sivaraman
1d744eb4c9
Return correct error status when setuid() or setgid() fails
2009-09-15 01:55:16 +05:30
Mukund Sivaraman
56748c5e65
Extract setuid/setgid code into a function
2009-09-15 01:55:16 +05:30
Mukund Sivaraman
5ec5449194
Extract cmdline parsing code into a function
2009-09-15 01:55:16 +05:30
Michael Adam
f25b0e2872
filter: untangle assignment and check in filter_init().
...
Michael
2009-09-14 22:18:28 +02:00
Michael Adam
c8e1696a22
conffile: reformat the directives array for readability.
...
Michael
2009-09-14 22:17:45 +02:00
Mukund Sivaraman
96303e10f3
Remove unused variable
2009-09-15 01:15:27 +05:30
Mukund Sivaraman
7b9234f394
Indent code to Tinyproxy coding style
...
The modified files were indented with GNU indent using the
following command:
indent -npro -kr -i8 -ts8 -sob -l80 -ss -cs -cp1 -bs -nlps -nprs -pcs \
-saf -sai -saw -sc -cdw -ce -nut -il0
No other changes of any sort were made.
2009-09-15 01:11:25 +05:30
Mukund Sivaraman
2cb6777592
Remove C++ wrapper from headers
...
These are not necessary as Tinyproxy is pure C code, and only
to be used within Tinyproxy. It is not a library.
2009-09-15 01:04:28 +05:30
Michael Adam
389f5d1464
make "config_file" a const in the config struct.
...
Michael
2009-09-10 22:16:58 +02:00
Michael Adam
735c9cb70f
reqs.c: fix two implicit cast warnings.
...
Michael
2009-09-10 22:12:16 +02:00
Michael Adam
4092c70b06
Fix compiler warnings: make const strings const in process_server_headers().
...
Michael
2009-08-12 23:49:46 +02:00
Michael Adam
0d585dca8d
Fix compiler warnings: make const strings const in process_client_headers().
...
Michael
2009-08-12 23:49:16 +02:00
Michael Adam
c59d012d11
Fix compiler warnings: Make const strings const in remove_connection_headers()
...
Michael
2009-08-12 23:47:45 +02:00
Michael Adam
1bfe8b6bea
Fix implicit cast warning in get_all_headers().
...
And untangle assignment from check.
Michael
2009-08-09 23:30:04 +02:00
Michael Adam
3b6bc45c37
Fix two implicit cast warnings in pull_client_data().
...
Michael
2009-08-09 23:28:36 +02:00
Michael Adam
bfca4019b7
Fix three implicit cast warnings in process_request().
...
Michael
2009-08-09 23:08:54 +02:00
Michael Adam
43fcc9ea37
Fix implicit cast warning in upstream_add().
...
Michael
2009-08-09 23:06:31 +02:00
Michael Adam
00fd84586c
Fix implicit cast warning in extract_ssl_url().
...
Michael
2009-08-09 23:05:28 +02:00
Michael Adam
ed23ceef64
Fix implicit cast warning in extract_http_url().
...
Michael
2009-08-09 23:04:27 +02:00
Michael Adam
bfa2c8ed77
Fix implicit cast warning in check_allowed_connect_ports().
...
Michael
2009-08-09 23:02:54 +02:00
Michael Adam
eb0deeb966
fix signed vs unsigned comparison warning in check_allowed_connect_ports().
...
Michael
2009-08-09 23:01:32 +02:00
Michael Adam
caee88c774
readline(): fix 5 implicit cast warnings
...
Michael
2009-08-07 10:10:04 +02:00
Michael Adam
947e8eb838
write_message(): fix signed/unsigned comparison warning
...
Michael
2009-08-07 10:07:07 +02:00
Michael Adam
c535939a9c
write_message(): fix implicit cast warnings.
...
Michael
2009-08-07 10:06:12 +02:00
Michael Adam
b450ad76ff
safe_write: fix unsigned vs. signed comparison
...
Michael
2009-08-07 10:04:57 +02:00
Michael Adam
2fff622819
send_stored_logs(): remove an implicit cast warning.
...
Michael
2009-08-07 09:54:15 +02:00
Michael Adam
4434dd24f1
send_stored_logs: fix signed/unsigned comparison
...
Michael
2009-08-07 09:42:45 +02:00
Michael Adam
8a27e29f7e
log_message(): remove implicit cast warning.
...
Michael
2009-08-07 09:28:35 +02:00
Michael Adam
87f5657db0
log: make const char array const.
...
Michael
2009-08-07 09:27:51 +02:00
Michael Adam
1052502b63
http_message_add_headers: make argument num_headers unsigned
...
and remove signed vs. unsigned comparison warnings.
Michael
2009-08-07 09:24:32 +02:00
Michael Adam
f99edadc92
http_message_add_headers(): fix implicit cast warning.
...
Michael
2009-08-07 09:21:28 +02:00
Michael Adam
baf634194c
http_message_create(): remove two implicit cast warnings.
...
Michael
2009-08-07 09:20:28 +02:00
Michael Adam
6a35704cdb
heap: make a const string const in malloc_shared_memory().
...
Michael
2009-08-07 09:17:49 +02:00
Michael Adam
8f50875740
heap: fix an implicit cast warning.
...
Michael
2009-08-07 09:17:12 +02:00
Michael Adam
ab9e8a59e2
hashmap: fix three implicit cast warnings.
...
Michael
2009-08-07 09:16:07 +02:00
Michael Adam
181b03d729
Fix an implicit cast warning in initialize_conn().
...
Michael
2009-08-07 09:12:42 +02:00
Michael Adam
02e7bc7545
send_html_file(): remove a discards qualifyer warning
...
and untangle assignment from check.
Michael
2009-08-07 08:56:46 +02:00
Michael Adam
3adec81872
html-error: make read only argument const in lookup_variable().
...
Michael
2009-08-07 08:53:26 +02:00
Michael Adam
76dadf47d3
make a const string const in send_http_error_message().
...
Michael
2009-08-07 08:51:35 +02:00
Michael Adam
1c3c268b50
make a const string const in send_http_headers().
...
Michael
2009-08-07 08:49:21 +02:00
Michael Adam
c8ee85702e
make message argument of indicate_http_error() const.
...
Michael
2009-08-07 08:48:51 +02:00
Michael Adam
20b606b6f5
make message argument to send_http_headers() constant.
...
Michael
2009-08-07 08:44:47 +02:00
Michael Adam
251a975126
add_error_variable(): make key and data arguments const
...
Michael
2009-08-07 08:41:36 +02:00
Michael Adam
05d1b2b372
showstats(): fix an implicit cast warning.
...
Michael
2009-08-07 08:38:41 +02:00
Michael Adam
3127baa4c6
showstats(): add a const to a const string
...
Michael
2009-08-07 08:37:44 +02:00
Michael Adam
bb067eb13c
init_stats(): fix implicit cast warning.
...
Michael
2009-08-07 08:36:10 +02:00
Mukund Sivaraman
4518e4334d
Wrap len in parantheses
2009-08-07 04:30:38 +05:30
Matthew Dempsky
59d273fdcc
correctly handle folded header fields
2009-08-07 03:59:10 +05:30
Mukund Sivaraman
402b662def
Fix const warning
2009-08-07 03:54:08 +05:30
Mukund Sivaraman
a21cd7e3ed
Rename tinyproxy.[ch] to main.[ch]
2009-08-07 03:42:53 +05:30
Matthew Dempsky
b5089fecc7
fix error message formatting
...
Signed-off-by: Michael Adam <obnox@samba.org>
2009-08-06 07:33:20 +02:00
Michael Adam
2ca1f9027b
add const to the key argument of anonymous_insert().
...
Michael
2009-08-05 00:15:04 +02:00
Michael Adam
c6475974b5
add const to the key argument for anonymous_search().
...
Michael
2009-08-05 00:14:20 +02:00
Michael Adam
caf20d786b
utils: make headers constant in send_http_message() to reduce compiler warnings
...
Michael
2009-08-05 00:09:41 +02:00
Michael Adam
1cdd76af31
http_message_add_headers(): make parameter headers const.
...
Michael
2009-08-05 00:09:16 +02:00
Michael Adam
867b4c9813
filter_init(): kill implicit cast warnings by adding explicit casts.
...
Michael
2009-08-04 23:57:30 +02:00
Michael Adam
f0a46fd71c
vector: remove implicit cast warning in vector_insert() by adding explicit cast
...
Michael
2009-08-04 23:52:56 +02:00
Michael Adam
5b81dec879
vector: remove implicit cast warning in vector_create()
...
Michael
2009-08-04 23:51:29 +02:00
Michael Adam
0aa45b0d34
child_pool_create(): add to explicit cats to reduce compiler warnings.
...
Michael
2009-08-04 23:47:28 +02:00
Michael Adam
60de38ceaa
child: adapt child_config to contain unsigned integers
...
as just changed in get_int_arg.
Michael
2009-08-04 23:47:28 +02:00
Michael Adam
b4d8c5b9bf
conffile: change [sg]et_int_arg() to return unsigned long int
...
This is also the parser regexp for INT in the definition.
Michael
2009-08-04 23:47:28 +02:00
Michael Adam
23b09947c6
conffile: add explicit cast in get_string_arg().
...
Michael
2009-08-04 23:47:28 +02:00
Michael Adam
35abbbc26d
config_compile(): add an explicit cast.
...
Michael
2009-08-04 23:47:28 +02:00
Michael Adam
0b583194b7
config_compile(): fix as signed / unsigned comparison compiler warning.
...
Michael
2009-08-04 23:47:28 +02:00
Michael Adam
f52be1a2a1
conffile: fix indentation in the directives definition.
...
Michael
2009-08-04 23:47:28 +02:00
Michael Adam
e6ac4b28cd
conffile: fix some missing initializer warnings in the directives definition.
...
Michael
2009-08-04 23:47:28 +02:00
Michael Adam
32c7caf710
conffile: reformat some indentation and linebreak in the directives definition.
...
Michael
2009-08-04 23:47:28 +02:00
Michael Adam
8f955d5543
child: add explicit cast in child_main().
...
Michael
2009-08-04 23:47:28 +02:00
Michael Adam
50dbd61063
buffer: add explicit cast in read_buffer().
...
Michael
2009-08-04 23:47:28 +02:00
Michael Adam
e5e665b0c6
buffer: add explicit cast in new_buffer().
...
Michael
2009-08-04 23:47:27 +02:00
Michael Adam
88dbe04c81
buffer: untangle assignment and check.
...
Michael
2009-08-04 23:47:27 +02:00
Michael Adam
f5c80119ca
buffer: add two explicit casts to reduce compiler warnings in makenewline().
...
Michael
2009-08-04 23:47:27 +02:00
Michael Adam
25344751eb
buffer: untangle assignment from check in makenewline().
...
For better debuggability.
Michael
2009-08-04 23:47:27 +02:00
Michael Adam
ab4df6edb8
check_acl(): initialize "perm" to eliminate compiler warning.
...
Provides safe fallback for switch statement, just in case..
Michael
2009-08-04 23:47:27 +02:00
Michael Adam
14a3e187ee
check_acl(): remove the fd argument - it is not used.
...
Host name and IP address are provided instead.
Michael
2009-08-04 23:47:27 +02:00
Michael Adam
64ff313260
check_acl(): fix function header comment.
...
Michael
2009-08-04 23:47:27 +02:00
Michael Adam
0abd82b7e9
check_acl(): add explicit cast to return value of vector_getentry()
...
to reduce compiler warnings.
Michael
2009-08-04 23:47:27 +02:00
Michael Adam
b9f2325c54
check_acl(): add cast to recuce compiler warning (unsigned / signed comparison)
...
vector_lenth() returns < 0 if the vectore is NULL but this has been
checked before, so we can safely cast.
Michael
2009-08-04 23:47:27 +02:00
Michael Adam
a34276feee
change vector_prepend() to take size_t len instead of ssize_t len argument.
...
Michael
2009-08-04 23:47:27 +02:00
Michael Adam
67628dcc63
change vector_append() to take size_t len instead of ssize_t len argument
...
Michael
2009-08-04 23:47:27 +02:00
Michael Adam
590f99ef2d
vector: change vectore_insert() to take size_t len instead of ssize_t len arg
...
Michael
2009-08-04 23:47:27 +02:00
Michael Adam
c2c7245030
remove "discard const" compiler warnings with log_message().
...
Michael
2009-08-04 23:47:26 +02:00
Mukund Sivaraman
0b191f16fe
Indenting change
2008-12-29 13:28:02 +00:00
Mukund Sivaraman
024b317de0
Convert tabs to spaces
2008-12-08 13:39:44 +00:00
Mukund Sivaraman
6e6f992f8c
Update Tinyproxy website URL
2008-12-08 12:41:44 +00:00
Mukund Sivaraman
4c1ede779e
Break at 80 columns
2008-12-08 12:26:08 +00:00
Mukund Sivaraman
a257703e59
Reformat code to GNU coding style
...
This is a commit which simply ran all C source code files
through GNU indent. No other modifications were made.
2008-12-01 15:01:11 +00:00
Mukund Sivaraman
448c19077c
Don't disable the creation of core files
...
Creation of core files can be disabled in the OS environment such
as by using the ulimit program.
2008-12-01 14:40:26 +00:00
Mukund Sivaraman
fadb98ee55
Add more calls to umask() before mkstemp()
2008-08-24 11:47:50 +05:30
Mukund Sivaraman
82cd6c765b
Move buffer to the heap due to its size
2008-08-24 11:38:59 +05:30
Mukund Sivaraman
fce253253a
Set umask before mkstemp() for some versions of glibc
2008-08-24 11:27:38 +05:30
Mukund Sivaraman
62ddbd5e74
pos can never be less than 0 as it's of type size_t
...
Also fix the type which is passed in from various places.
2008-08-24 10:58:16 +05:30
Mukund Sivaraman
90c1bb4b73
Remove useless check as data can't be NULL at this point
2008-08-24 10:45:29 +05:30
Mukund Sivaraman
aa95c34004
Allow numeric uid/gids in User and Group directives
...
This change allows numeric uid/gids to be specified in the User and
Group directives in tinyproxy.conf. Formerly, only username and group
names were accepted. This fixes bug #15 , which was created after
looking at a case on the OpenWrt wiki.
X-Banu-Bugzilla-Ids: 15
2008-07-14 17:40:20 +05:30
Mukund Sivaraman
2fe213d777
Fix error variable names that stats.html expects
2008-07-14 17:14:12 +05:30
Mukund Sivaraman
7e5ac7c58a
Fix a regression where empty error variables caused strlen() to crash
...
This fixes a regression (bug #16 ) introduced in
95c1f39f60
, where a NULL check was
removed. This caused NULL error variable values to be sent to
add_error_variable() in which strlen() segfaulted.
With this fix, custom stats pages should be displayed properly.
X-Banu-Bugzilla-Ids: 16
2008-07-14 17:13:06 +05:30
Mukund Sivaraman
7bdd47d030
Make the embedded error message display valid XHTML too
...
Also fix the information that is displayed.
2008-07-14 15:47:00 +05:30
Mukund Sivaraman
7b9e178a76
Add version info in embedded stats page
2008-07-14 15:46:05 +05:30
Mukund Sivaraman
7f12f71f94
Add error number as a template parameter for error pages
2008-07-14 15:31:14 +05:30
Mukund Sivaraman
8b26558254
Make the embedded stats message display valid XHTML too
2008-07-14 15:09:02 +05:30
Mukund Sivaraman
74f5c3e417
Spruce up error page footers a bit
2008-07-14 15:02:41 +05:30
Mukund Sivaraman
20a7e61360
Removed obsolete ignore rules
2008-06-19 21:33:20 +05:30
Mukund Sivaraman
7dcb5f9061
Include values.h to use LONG_MAX and LONG_MIN
2008-06-17 13:44:42 +05:30
Robert James Kaes
c8cf89a954
Add strtol conversion error checking
...
Moved the strtol() call into fill_netmask_array() and added additional
error checking to ensure that the strtol() call succeeded.
Error checking code taken from strtol() manpage.
Signed-off-by: Robert James Kaes <rjk@wormbytes.ca>
2008-06-17 13:32:20 +05:30
Robert James Kaes
51fb15be2c
Refactored netmask array fill with range check
...
When building a numeric ACL with netmask, range check the supplied
value. In addition, the code to walk the array has been extracted and
"simplified".
Signed-off-by: Robert James Kaes <rjk@wormbytes.ca>
2008-06-17 13:31:04 +05:30
Mukund Sivaraman
95c1f39f60
Don't check the value to be inserted as it's already checked
...
This change primarily avoids a gcc warning where timebuf
is never non-NULL. There is no need to check the value to be
inserted as it's checked inside hashmap_insert().
This changeset also lets error return values from hashmap_insert()
propogate instead of clamping them to -1 (not that these are
currently used anyway).
2008-06-10 09:51:23 +05:30
Robert James Kaes
5ea289d82e
Moved transparent proxy code into its own file
...
Extracted the transparent proxy logic from reqs.c and placed it into a
separate file.
Signed-off-by: Robert James Kaes <rjk@wormbytes.ca>
2008-06-09 10:01:14 +05:30
Robert James Kaes
b092de72f8
Ignore profiling generated files
...
The *.pcno files are generated as part of the profiling code.
Signed-off-by: Robert James Kaes <rjk@wormbytes.ca>
2008-06-03 21:51:02 +05:30
Mukund Sivaraman
cc1f04ecba
Updated copyright header in Makefile.am
2008-05-24 16:24:12 +05:30
Mukund Sivaraman
6f9ee262e5
Removed unnecessary LDFLAGS variable
2008-05-24 16:21:29 +05:30
Mukund Sivaraman
b0a3568de0
Renamed htmlerror.[ch] to html-error.[ch]
2008-05-24 13:47:14 +05:30
Mukund Sivaraman
249d4b7f33
Updated copyright, license notices in source code
...
The notices have been changed to a more GNU look. Documentation
comments have been separated from the copyright header. I've tried to
keep all copyright notices intact. Some author contact details have
been updated.
2008-05-24 13:35:49 +05:30
Mukund Sivaraman
b110332ed3
Free arg before returning, or it'll leak
2008-03-30 17:56:45 -07:00
Mukund Sivaraman
ff72f5426e
Free entry_buffer or it'll be leaked
...
vector_append() calls vector_insert() which makes a copy
of the passed buffer, so the caller can free its buffer.
2008-03-30 17:51:51 -07:00
Mukund Sivaraman
12501d599c
Fixed leaks of va_lists
2008-03-30 17:43:32 -07:00
Mukund Sivaraman
44d91bdf6b
Removed obsolete lexer/parser files
2008-03-30 16:33:08 -07:00
Andrew Stribblehill
fdf7e4ea8b
Added more patterns to .gitignore
2008-03-19 15:11:13 -07:00
Mukund Sivaraman
b11c74637f
Fixed format string warnings
2008-03-13 15:09:30 -07:00
Mukund Sivaraman
fc62283164
Removed the clean target from the src directory
...
This was overriding the automake clean target to clean up
files like *.o by default.
2008-03-13 15:09:26 -07:00
Mukund Sivaraman
8848b647d7
Corrected datatype of salen to fix compiler warning
2008-03-13 15:09:21 -07:00
Mukund Sivaraman
31766cce90
Renamed file to replace underscores in it with dashes
2008-03-13 15:07:43 -07:00
Mukund Sivaraman
d5472ec0bd
Renamed file to replace underscores in it with dashes
2008-03-13 15:07:37 -07:00
Mukund Sivaraman
376caf8f25
Renamed .cvsignore to .gitignore
2008-03-13 15:07:29 -07:00
Robert James Kaes
2f5118046d
Added support for UPSTREAM directive.
...
Included the basic grammar and handler functions for the "upstream" and
"no upstream" directives. I still need to update the grammar to match
_all_ the possibilities documented in the tinyproxy.conf file, but at
least it now does as much as the old config parser.
2005-11-04 05:15:47 +00:00
Robert James Kaes
72e1731092
Reformatted the reverse and filter configuration blocks. If either
...
section is not enabled at compile time, it should not be included in the
object file.
2005-11-04 01:31:41 +00:00
Robert James Kaes
ffec04c65e
Fixed up whitespace formatting of the config file directives. Also
...
added blank lines to group related directives.
2005-11-04 00:47:07 +00:00
Robert James Kaes
4c58663041
* [Refactor] Moved Reverse Proxy Code
...
Moved the reverse proxy code from reqs.c into it's own files
(reverse_proxy.c). The code in reqs.c is way too complicated, so I
want to move unrelated code into their own files to simplify the main
concepts in reqs.c.
2005-08-16 04:03:19 +00:00
Robert James Kaes
808bdbd1e9
* [Indent] Fixed typedef Formatting
...
Added the list of tinyproxy typedefs to the indent command to have them
formatted correctly as well.
2005-08-15 18:35:09 +00:00
Robert James Kaes
c0299e1868
* [Indent] Ran Source Through indent
...
I re-indented the source code using indent with the following options:
indent -kr -bad -bap -nut -i8 -l80 -psl -sob -ss -ncs
There are now _no_ tabs in the source files, and all indentation is
eight spaces. Lines are 80 characters long, and the procedure type is
on it's own line. Read the indent manual for more information about
what each option means.
2005-08-15 03:54:31 +00:00
Robert James Kaes
38f0b3a103
* Specified Correct typedef in getsock_ip()
...
Changed the variable type for the namelen variable to the correct
socklen_t type. The configure script already checked for it, but for
some reason I never got around to actually using it in this function.
2005-07-12 20:34:26 +00:00
Robert James Kaes
a59117c7ca
* Updated Copyright Email Addresses
...
Updated the copyright email addresses for Robert James Kaes. The
users.sourceforge.net address should always exist.
2005-07-12 17:39:44 +00:00
Robert James Kaes
6042483a0e
Removed the proxy-* headers from the list of headers to skip. Since
...
tinyproxy does not prompt for any proxy information from the client, it
should not be eating the proxy headers. They are most likely needed by
an upstream proxy.
2005-07-06 21:44:08 +00:00
Robert James Kaes
51096e2944
* [1118363] Proxy reverse order of headers
...
Changed the internal implementation of the hashmap to maintain the
insert order if the same key is repeated. The insertion is still
constant since we keep track of the head and tail of the bucket
chain.
2005-05-03 20:34:54 +00:00
Robert James Kaes
019b91c3f9
(takesig): Fixed the return type to use the autoconf defined
...
RETSIGTYPE. This is portable, while simply using "void" is not.
2004-08-24 16:36:22 +00:00
Robert James Kaes
c446e19003
Added code to handle HTTP/0.9 simple GET requests.
2004-08-24 16:35:27 +00:00
Robert James Kaes
79d40a536a
(get_bool_arg): Moved the initialization of "p" _before_ the assert()
...
calls. The code doesn't compile under gcc 2.95 otherwise. (I'm
surprised it compiles under gcc 3.3 without a problem.)
2004-08-24 16:34:22 +00:00
Robert James Kaes
35196f7d8e
Changed some of the variable types so that the code compiles cleanly
...
on other operating systems. (Used cf.sourceforge.net as the test
system for cross compiling.)
2004-08-24 16:33:00 +00:00
Robert James Kaes
d41260fe2d
Fixed up the acl_s structure so that it compiles correctly under
...
gcc 2.95.
2004-08-24 16:31:45 +00:00
Robert James Kaes
93fbb5ff49
Changed the calls to the config_compile() and config_parse()
...
functions. Also, if the "logfile" directive is used, it will now
override use of the syslog system. Added an error message if neither
is defined.
2004-08-14 03:21:28 +00:00
Robert James Kaes
5c02939533
(log_message): Added a fsync() call after each line outputted to the
...
log file.
2004-08-14 03:20:01 +00:00
Robert James Kaes
c5307363be
Reorganized the source code. Added the missing reverse proxy
...
directives. Added a bunch of comments to clarify how the code works.
2004-08-14 03:18:41 +00:00
Robert James Kaes
9f4323a562
Removed the last code relating to the old configuration parsing
...
system. The grammar.y and scanner.l files still need to be removed.
2004-08-14 00:37:51 +00:00
Robert James Kaes
52562b49df
Removed the grammar.y and scanner.l files from the list of files
...
required by tinyproxy.
2004-08-13 21:04:24 +00:00
Robert James Kaes
febb521bfd
Added some error logging information for directives that are
...
conditionally compiled. Still need to add info messages for the
directives.
2004-08-13 21:03:58 +00:00
Robert James Kaes
1d2e4fc2c3
Change the code to use the new config_parse() method rather than the
...
flex/bison based configuration system.
2004-08-13 21:03:11 +00:00
Robert James Kaes
9d04667848
Added the new configuration parsing system (conffile.c and
...
conffile.h.) The new system is intended to replace the existing
grammar.y and scanner.l files. I don't want to depend on flex/bison
any longer.
2004-08-13 20:19:50 +00:00
Robert James Kaes
b3943c21f2
(check_allowed_connect_ports): By default DENY any CONNECT requests
...
unless explicitly allowed by a configuration directive.
2004-08-12 20:15:04 +00:00
Robert James Kaes
28dd133623
(add_xtinyproxy_header): Removed the runtime error checking of the
...
connptr->server_fd variable and moved it into an assert since we
should never be called with invalid data. Also made the function an
inline function since it's only called in one place.
2004-08-12 19:57:15 +00:00
Robert James Kaes
924da17c17
Completely rewrote the ACL functionality. The new system is intended
...
to handle IPv6 style addresses along with the existing IPv4 and string
addresses. In addition, the hand-rolled "list" code has been replaced
with a vector (code reuse.) Also, the code should be a little easier
to understand (relatively speaking.)
I do need to add some kind of testing framework (in general) to check
that the new code does work with all the formats that will be thrown
at it.
2004-08-11 20:09:20 +00:00
Robert James Kaes
fd4b67bbb4
(strip_username_password): Removed one of the pointer variables since
...
it's no longer needed. Reorganized the function to make it more
obvious what was actually being done.
2004-08-11 02:49:05 +00:00
Robert James Kaes
badc7673d0
Merged in changes from 1.6.3
2004-08-10 21:24:24 +00:00
Robert James Kaes
18df4910a4
Added the "BindSame" configure directive from Oswald Buddenhagen.
...
This allows tinyproxy to respond to a request bound to the same
interface that the request came in on. As Oswald explains:
"attached is a patch that adds the BindSame option. it causes
binding an outgoing connection to the ip address of the respective
incoming connection. that way one can simulate an entire proxy farm
with a single instance of tinyproxy on a multi-homed machine."
Cool.
2004-04-27 18:53:14 +00:00
Robert James Kaes
3b961ec66b
(init_stats): Fixed a memset bug, where the structure was not cleared
...
properly. (The sizeof "struct stat" was being used rather than the
proper "struct stat_s". On my system, "struct stat" is 88 bytes long,
while "struct stat_s" is 20 bytes long. Quite a difference!)
2004-04-27 18:48:53 +00:00
Robert James Kaes
095d0d0142
These files list all the other files that CVS should ignore. It makes
...
looking at the CVS status information a little cleaner.
2004-04-27 18:28:45 +00:00
Robert James Kaes
5ecd9157ce
Converted the various socket functions to work with both IPv4 and IPv6
...
addresses.
2004-02-18 20:18:53 +00:00
Robert James Kaes
c21df1ea0f
Added two functions:
...
- get_ip_string() converts a binary network address into either a
dotted-decimal IPv4 address, or a IPv6 hex-string
- full_inet_pton() converts a numeric character string into an IPv6
network address (binary form). It's like the system inet_pton()
function, but it will work with bot IPv4 and IPv6 character
strings.
These functions are required for the conversion to Internet protocol
independence. (Or to put it more clearly: allow tinyproxy to work in
an IPv6 network.)
2004-02-18 20:17:18 +00:00
Robert James Kaes
aee5a63849
Removed unnecessary casts (mostly dealing with memory allocation.) I
...
should never have added them in the first place. They don't really
buy anything, and they can hide bugs.
2004-02-13 21:27:42 +00:00
Robert James Kaes
bf22966f55
(strip_return_port): Patch from "alex" to strip the port from the host
...
string and return the port. I cleaned up and added error handling to
the code, but it's basically "alex"'s fix.
(extract_http_url): Rewrote this function to remove all the sscanf()
calls. It's much easier to just split on the path slash (if it's
present) and then strip the user name/password and port from the host
string. Less code, handles more cases!
2004-02-04 19:57:40 +00:00
Robert James Kaes
0a8e4e4d8d
Added reverse proxy support from Kim Holviala. His comments regarding
...
this addition follow:
The patch implements a simple reverse proxy (with one funky extra
feature). It has all the regular features: mapping remote servers to local
namespace (ReversePath), disabling forward proxying (ReverseOnly) and HTTP
redirect rewriting (ReverseBaseURL).
The funky feature is this: You map Google to /google/ and the Google front
page opens up fine. Type in stuff and click "Google Search" and you'll get
an error from tinyproxy. Reason for this is that Google's form submits to
"/search" which unfortunately bypasses our /google/ mapping (if they'd
submit to "search" without the slash it would have worked ok). Turn on
ReverseMagic and it starts working....
ReverseMagic "hijacks" one cookie which it sends to the client browser.
This cookie contains the current reverse proxy path mapping (in the above
case /google/) so that even if the site uses absolute links the reverse
proxy still knows where to map the request.
And yes, it works. No, I've never seen this done before - I couldn't find
_any_ working OSS reverse proxies, and the commercial ones I've seen try
to parse the page and fix all links (in the above case changing "/search"
to "/google/search"). The problem with modifying the html is that it might
not be parsable (very common) or it might be encoded so that the proxy
can't read it (mod_gzip or likes).
Hope you like that patch. One caveat - I haven't coded with C in like
three years so my code might be a bit messy.... There shouldn't be any
security problems thou, but you never know. I did all the stuff out of my
memory without reading any RFC's, but I tested everything with Moz, Konq,
IE6, Links and Lynx and they all worked fine.
2004-01-26 19:11:52 +00:00
Robert James Kaes
f2d846d057
Merged in changes from the 1.6.2 release. (Fixes for the filtering code
...
and the HTML installation script.)
2003-10-17 16:11:00 +00:00
Robert James Kaes
d2098f638f
tinyproxy no longer includes a fall-back regular expression library,
...
so these files needed to be modified to only use the system's
installed regular expression library.
2003-08-07 16:32:12 +00:00
Robert James Kaes
d72fa83245
Removed the included regular expression library, since it should come
...
standard on any reasonably modern system.
2003-08-07 16:29:54 +00:00
Robert James Kaes
7eb4eba381
# Merged in changes from the stable 1.6 branch.
2003-08-07 15:31:20 +00:00
Robert James Kaes
fd23cd4aed
# Fixed a comment to actually reflect what the function does.
2003-08-05 16:11:59 +00:00
Robert James Kaes
a117ed9cb0
Included patches from Steven Young to use the hashmap functionality to
...
manage the HTML error pages. It simplifies the source, and also make
the object file smaller. Nice. Also added any casting from (void*)
to ensure that the code compiles using a C++ compiler.
2003-08-01 00:14:34 +00:00
Robert James Kaes
15870a9582
Added appropriate casts (void*) casts to allow the code to compile
...
cleanly using a C++ compiler.
Changed the servers_waiting variable to an unsigned int, since the
number of servers waiting can never be negative, and added an assert()
to ensure this invariant.
2003-07-31 23:44:52 +00:00
Robert James Kaes
bc77dfb492
(debugging_realloc): Removed the assert for the NULL pointer, since
...
realloc() can take a NULL pointer, as defined by the realloc() man
page.
Fixed the cast in both safefree() macros to compile cleaning using a
C++ compiler.
2003-07-31 23:42:51 +00:00
Robert James Kaes
5a2af49e58
Fixed the cast in both safefree() macros to compile cleaning using a
...
C++ compiler.
2003-07-31 23:41:26 +00:00
Robert James Kaes
8a6a94db0a
# Fixed a preprocessor test (misspelled __cplusplus)
2003-07-31 23:40:16 +00:00
Robert James Kaes
6aaa863432
Added appropriate casts from (void*) so that the code will compile
...
cleanly with a C++ compiler. (Tested using GCC 3.3)
2003-07-31 23:38:28 +00:00
Robert James Kaes
7c96935552
(indicate_http_error): Added calls to va_end() before leaving the
...
function.
2003-07-14 17:42:43 +00:00
Robert James Kaes
a4cd3eb9ec
# Removed the debugging information.
2003-06-26 18:26:10 +00:00
Robert James Kaes
a8798e999b
# Added debugging flags for the flex scanner.
2003-06-26 18:23:01 +00:00
Robert James Kaes
1cb032a934
(upstream_add): Rewrote the function to actually handle the various
...
types of upstream configurations correctly. Hopefully, the code is
also a little clearer in it's implementation.
2003-06-26 18:19:57 +00:00
Robert James Kaes
988f243286
# Removed the STRING_ADDRESS token since it was conflicting with the
...
IDENTIFIER directive and also the keyword directives.
2003-06-26 18:17:09 +00:00
Robert James Kaes
db142b6e23
Modified the patterns to allow the new upstream directives to work as
...
defined in the tinyproxy.conf documentation.
2003-06-26 18:16:09 +00:00
Robert James Kaes
2736a19518
(debugging_free): Rather than assert on a NULL pointer, log the NULL
...
pointer and return.
2003-06-26 18:14:13 +00:00
Robert James Kaes
ddcac5ae09
Added a test to define INADDR_NONE if it's not present. For example,
...
SunOS (solaris 2.8) does not include this define. [Thank to Ben
Hartshorne for pointing this out.]
2003-06-25 18:20:22 +00:00
Robert James Kaes
4c9141aac6
Removed the "ViaHeader" directive and replaced it with the
...
"ViaProxyName" directive. The "Via" HTTP header is _required_ by the
HTTP spec, so the code has been changed to always send the header.
However, including the proxy's host name could be considered a
security threat, so the "ViaProxyName" directive is used to set the
token sent in the "Via" header. If the directive is not enabled the
proxy's host name will be used.
2003-06-20 17:02:13 +00:00
Robert James Kaes
b081019d5a
(connect_to_upstream): Fixed an off-by-one error in the snprintf()
...
call used to build the URL for the upstream proxy. [Patch suggested by
David T. Pierso]
2003-06-06 16:14:50 +00:00
Robert James Kaes
91e082671a
(upstream_get):
...
(upstream_add): Added support to allow ip addresses and networks to be
used when matching an upstream proxy directive.
[Code by Peter da Silva]
2003-06-02 21:55:14 +00:00
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