233ce6de3b
* check return values of memory allocation and abort gracefully in out-of-memory situations * use sblist (linear dynamic array) instead of linked list - this removes one pointer per filter rule - removes need to manually allocate/free every single list item (instead block allocation is used) - simplifies code * remove storage of (unused) input rule - removes one char* pointer per filter rule - removes storage of the raw bytes of each filter rule * add line number to display on out-of-memory/invalid regex situation * replace duplicate filter_domain()/filter_host() code with a single function filter_run() - reduces code size and management effort with these improvements, >1 million regex rules can be loaded with 4 GB of RAM, whereas previously it crashed with about 950K. the list for testing was assembled from http://www.shallalist.de/Downloads/shallalist.tar.gz closes #20 |
||
---|---|---|
data | ||
docs | ||
etc | ||
m4macros | ||
scripts | ||
src | ||
tests | ||
.gitignore | ||
.travis.yml | ||
AUTHORS | ||
autogen.sh | ||
ChangeLog | ||
configure.ac | ||
COPYING | ||
Makefile.am | ||
NEWS | ||
README | ||
README.md | ||
tinyproxy-indent.sh | ||
TODO | ||
VERSION |
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. -
--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
).