From bb9bc9051629c3319c56785c2f4ae0e605d76329 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sat, 21 Nov 2015 14:51:17 +0100 Subject: Initial import of bitz-server version 0.1.6-1 --- README.md | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..799c2ef --- /dev/null +++ b/README.md @@ -0,0 +1,168 @@ +bitz-server +=========== + +An ICAP server implementation in C++ + +### Copyright and License + +Copyright (C) 2012-2013 Uditha Atukorala. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +[GNU General Public License](http://gnu.org/licenses/gpl.html) +for more details. + + +### The concept + +The main goal of this project is to create an ICAP server +([RFC 3507](http://www.ietf.org/rfc/rfc3507.txt)) implementation in C++ +to use the power of object oriented programming. + +Starting from scratch, the server is developed with a modular architecture in mind. +The server core (written in C++) will handle the client requests, manage workers +(child processes) etc. and will provide basic handlers to serve ICAP requests. + +To extend this core functionality the idea is to have pluggable modules (like apache +server modules). These modules will provide features like content filtering, anti-virus +scanning etc. and to make it easier to write (and faster to implement) such modules +there is hope to exploit python programming language. + + +### Acknowledgements + +* Many thanks to Kenneth Oksanen for his support in finding and fixing bugs + + +### Downloads +You can download the source distributions from http://packages.geniusse.com/source/bitz-server/. + + +#### Debian/Ubuntu packages +First you should add the repository key to avoid warning. + + $ wget -q -O - http://packages.geniusse.com/debian/packman.gpg.key | sudo apt-key add - + +Then add the following to your `/etc/apt/sources.list`; + + $ deb http://packages.geniusse.com/debian/ [release] main + +where the `[release]` being wheezy, jessie, sid etc. + +Finally update your package list and install bitz-server; + + $ sudo aptitude update + $ sudo aptitude install bitz-server + + +### Dependencies + +* [libconfig++ >= 1.4](http://www.hyperrealm.com/libconfig/) +* log4cpp >= 1.0 +* python 2.7 (for modpy module) + + +### Bugs and Feature Requests + +Please report all bugs and feature requests [here](http://bugs.geniusse.com/) under the +[bitz-server](http://bugs.geniusse.com/enter_bug.cgi?product=bitz-server) project. +Known issues can be found [here](http://bugs.geniusse.com/buglist.cgi?query_format=specific&order=relevance%20desc&bug_status=__open__&product=bitz-server&list_id=36). + + +### Version history + +__0.1.6__ - _28th September 2013_ +* Few tweaks and minor changes distribution files (no functional changes) + +__0.1.5__ - _11th August 2013_ +* Fixing modpy interface module string copy bug + +__0.1.4__ - _01st August 2013_ +* Code optimisations +* Fixing bug [#34](http://bugs.geniusse.com/show_bug.cgi?id=34) + +__0.1.3__ - _29th July 2013_ +* Fixing bugs + [#31](http://bugs.geniusse.com/show_bug.cgi?id=31), + [#32](http://bugs.geniusse.com/show_bug.cgi?id=32) + +__0.1.2__ - _07th July 2013_ +* Added a RESPMOD handler ([bug #16](http://bugs.geniusse.com/show_bug.cgi?id=16)) +* Added Message Preview features ([bug #17](http://bugs.geniusse.com/show_bug.cgi?id=17)) +* Code cleanup and optimisations +* Fixing bugs [#15](http://bugs.geniusse.com/show_bug.cgi?id=15), + [#23](http://bugs.geniusse.com/show_bug.cgi?id=23), + [#24](http://bugs.geniusse.com/show_bug.cgi?id=24), + [#25](http://bugs.geniusse.com/show_bug.cgi?id=25) + +__0.1.1__ - _06th March 2013_ +* Fixing bugs [#19](http://bugs.geniusse.com/show_bug.cgi?id=19) and [#22](http://bugs.geniusse.com/show_bug.cgi?id=22) + +__0.1.0__ - _03rd March 2013_ + +* Daemonized version ([bug #18](http://bugs.geniusse.com/show_bug.cgi?id=18)), hence + the minor version bump. Server core is re-organised with bitz::server namespace to + be more cleaner and easier to read. +* Make it possible to pass in command-line options +* Closed a memory leak in modpy module +* Fixing bugs [#20](http://bugs.geniusse.com/show_bug.cgi?id=20) and [#21](http://bugs.geniusse.com/show_bug.cgi?id=21) + + +__0.0.1__ - _24th February 2013_ + +* Proof of concept. An ICAP server with only a REQMOD handler. Includes a template + _echo_ module to demonstrate the pluggable module architecture and the _modpy_ module + to demonstrate the python interface. + +--------------------------------------- + + +### Compiling from source + +First you need to initialise the autotools + + $ libtoolize (glibtoolize in OS X) + $ aclocal + $ autoheader + $ autoconf + $ automake --add-missing --foreign + +Or you can grab the latest source distribution tar from [CI artifacts](http://jenkins.geniusse.com/job/bitz-server/). + +After that you can use the usual `./configure && make` + + +#### Notes +##### modpy +This is the (long awaited) python interface module. It provides a template for any +other python interface module implementations either as C++ module template or as +a C++ interface for python modules. + + +##### Debugging + +Use the following to create the binaries with debug symbols + + $ ./configure CXXFLAGS="-g -O0" + + +##### config file + +The default config file location is `/etc/bitz/bitz-server.conf` but this can +changed using the `--with-config` option when you run `configure`. + +e.g. + + $ ./configure --with-config=/[path to source code]/conf/bitz-server.conf + + +##### valgrind checks + + $ valgrind --leak-check=full --read-var-info=yes --trace-children=yes --suppressions=test/valgrind.supp --log-file=valgrind.log ./src/bitz-server --debug + -- cgit v1.2.3