rofl0r c64ac9edbe fix get_request_entity()
get_request_entity()'s purpose is to drain remaining unread bytes
in the request read pipe before handing out an error page,
and kinda surprisingly, also when connection to the stathost is
done.

in the stathost case tinyproxy just skipped proper processing and
jumped to the error handler code, and remembering whether a
connection to the stathost was desired in a variable, then doing
things a bit differently depending on whether it's set.

i tried to fix issues with get_request_entity in
88153e944f7d28f57cccc77f3228a3f54f78ce4e (which is basically the
right fix for the issue it tried to solve, but incomplete),
and resulting from there in 78cc5b72b18a3c0d196126bfbc5d3b6473386da9.
the latter fix wasn't quite right since we're not supposed to check
whether the socket is ready for writing, and having a return value
of 2 instead of 1 got resulted in some of the if statements not
kicking in when they should have.
this also resulted in the stathost page no longer working.

after in-depth study of the issue i realized that we only need to
call get_request_entity() when the headers aren't completely read,
additional to setting the proper connection timeout as
88153e944f7d28f57cccc77f3228a3f54f78ce4e already implemented.
the changes of 78cc5b72b18a3c0d196126bfbc5d3b6473386da9 have been
reverted.
2020-09-13 00:37:19 +01:00
2020-09-13 00:37:19 +01:00
2016-12-24 03:04:50 +01:00
2018-09-01 04:06:59 +02:00
2009-12-08 10:52:17 +05:30
2009-08-04 04:21:46 +05:30
2018-09-01 04:06:59 +02:00
2014-05-01 13:58:54 +05:30
2019-12-21 00:43:45 +00:00

Tinyproxy

Tinyproxy is a small, efficient HTTP/SSL proxy daemon released under the GNU General Public License. Tinyproxy is very useful in a small network setting, where a larger proxy would either be too resource intensive, or a security risk. One of the key features of Tinyproxy is the buffering connection concept. In effect, Tinyproxy will buffer a high speed response from a server, and then relay it to a client at the highest speed the client will accept. This feature greatly reduces the problems with sluggishness on the Internet. If you are sharing an Internet connection with a small network, and you only want to allow HTTP requests to be allowed, then Tinyproxy is a great tool for the network administrator.

For more info, please visit the Tinyproxy web site.

Installation

Tinyproxy uses a standard GNU configure script based on the automake system. If compiling from a git checkout, you need to first run

./autogen.sh

from the top level directory to generate the configure script. The release tarball contains the pre-created configure script, so when building from a release, you can skip this step. Then basically all you need to do is

./configure
make
make install

in the top level directory to compile and install Tinyproxy. There are additional command line arguments you can supply to configure. They include:

  • --enable-debug: If you would like to turn on full debugging support.

  • --enable-xtinyproxy: Compile in support for the XTinyproxy header, which is sent to any web server in your domain.

  • --enable-filter: Allows Tinyproxy to filter out certain domains and URLs.

  • --enable-upstream: Enable support for proxying connections through another proxy server.

  • --enable-transparent: Allow Tinyproxy to be used as a transparent proxy daemon. Unlike other work modes, transparent proxying doesn't require explicit configuration and works automatically when traffic is redirected to the proxy using the appropriate firewall rules.

  • --enable-reverse: Enable reverse proxying.

  • --with-stathost=HOST: Set the default name of the stats host.

For more information about the build system, read the INSTALL file that is generated by autogen.sh and comes with the release tar ball.

Support

If you are having problems with Tinyproxy, please raise an issue on github.

Contributing

If you would like to contribute a feature, or a bug fix to the Tinyproxy source, please clone the git repository from github and create a pull request.

Community

You can meet developers and users to discuss development, patches and deployment issues in the #tinyproxy IRC channel on Freenode (irc.freenode.net).

Description
No description provided
Readme 2.2 MiB
Languages
C 88.8%
Perl 3.9%
M4 2.7%
Shell 2.7%
Makefile 1%
Other 0.9%