2012-12-25 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.34
* AUTHORS: Add a new bug finger Thomas Mangin #19 #17
* README.md: Haxogreen 2012 presentation added
* bin/forban_announce.py: Fix #19 The forban bundle directory is a special
directory in the share folder used for two purposes: - Storing static pages
used by the HTTP interface of Forban. (only useful if people are directly
browsing the Forban) - Storing the current index of the Forban itself. (quite
important as this used by other Forban to download the index) By default the
directory exists in the forban directory, if the Forban owner decided to move
it somewhere else. The directory Forban should exist so this patch creates it
by default if not existing.
* README.md: Clarification regarding issue #19 and custome share directory
* lib/announce.py: Singleton comparaison must always be done with 'is' (PEP
8)
* lib/tools.py: Singleton comparaison must always be done with 'is' (PEP 8)
2012-11-23 Alexandre Dulaunoy
* bin/forban_discover.py: missed exception - fixed issue #17
2012-11-01 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.33 + config notes updated
* lib/fetch.py: Set default url of User-Agent string
* bin/forban_discover.py, bin/forban_share.py, lib/announce.py,
lib/discover.py: Cleanup pull #15 - white-spaces/smarttab
* bin/forban_announce.py: Updated the pull request #15 from MaStr.
setDestination method is called as a last resort to avoid issue older
configuration and be sure that the default broadcast addresses are used.
2012-10-30 Matthias Strubel
* bin/forban_announce.py, cfg/forban.cfg-sample, lib/announce.py: Enabling
custom broadcast destinations Logging Debug&Errors of announcent in more
detail to python_announce.log Can be used for fixing #13 Fixes #8
* bin/forban_announce.py, bin/forban_discover.py, bin/forban_share.py,
lib/announce.py, lib/discover.py: Some fixes for disabling IPv6
2012-10-28 Matthias Strubel
* cfg/forban.cfg-sample: raized version to make the new option clear
* .gitignore: First try disabling IPv6 stuff (testing stage)
2012-04-09 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.32
* bin/forbanctl: Fixed #12 test if loot directory exists
* bin/forbanctl: Fixed #9 lootcleanup added lootcleanup is removing all the
Forban loots discovered (including self) Useful for devices having not real
clock references. This can be called at boot, before starting the Forban
processes.
* bin/forban_share.py: Fixed #10 The browsing is now naturally sorted.
2012-04-08 Alexandre Dulaunoy
* bin/forbanctl: Fixed #7 cleanup mode added This modes check for existing
PID (based on forban_*.pid), if they exist kill the PID and remove the PID
files. If the processes are not existing, the PID files are removed too. Try
to keep the portability by using the POSIX standard "Signal 0"
* bin/forbanctl: Removed unused function
* AUTHORS: added Matthias Strubel
2012-04-07 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Fixed #7 - remove blank space in front of
indexrebuild
* bin/forban_announce.py, cfg/forban.cfg-sample: fixed #6 index rebuild
factor added The index rebuild made the index factor independant from the
Forban announce interval. The factor is used to limit the number of index
rebuild to avoid accessing filesystem too much on low-end hardware.
* lib/index.py: fixed #6 (symbolic links followed for index building) Index
building is now following symbolic links. As this was requested for low-end
hardware where the shared files are shared among flash, ram-based fs... There
are security risks to include symbolic links that should be considered when
adding links in the shared directory. CherryPy is already supporting
symbolic links for the HTTP server.
2012-03-27 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.31
2012-03-18 Alexandre Dulaunoy
* README.md: Added a link to the presentation given at FOSDEM 2011
* AUTHORS: resuscv added as CONTRIBUTOR
2012-03-10 Alexandre Dulaunoy
* lib/ext/cherrypy/test/__init__.py,
lib/ext/cherrypy/test/_test_decorators.py,
lib/ext/cherrypy/test/_test_states_demo.py,
lib/ext/cherrypy/test/benchmark.py, lib/ext/cherrypy/test/checkerdemo.py,
lib/ext/cherrypy/test/fastcgi.conf, lib/ext/cherrypy/test/fcgi.conf,
lib/ext/cherrypy/test/helper.py, lib/ext/cherrypy/test/logtest.py,
lib/ext/cherrypy/test/modfastcgi.py, lib/ext/cherrypy/test/modfcgid.py,
lib/ext/cherrypy/test/modpy.py, lib/ext/cherrypy/test/modwsgi.py,
lib/ext/cherrypy/test/sessiondemo.py,
lib/ext/cherrypy/test/static/dirback.jpg,
lib/ext/cherrypy/test/static/index.html, lib/ext/cherrypy/test/style.css,
lib/ext/cherrypy/test/test.pem, lib/ext/cherrypy/test/test_auth_basic.py,
lib/ext/cherrypy/test/test_auth_digest.py, lib/ext/cherrypy/test/test_bus.py,
lib/ext/cherrypy/test/test_caching.py, lib/ext/cherrypy/test/test_config.py,
lib/ext/cherrypy/test/test_config_server.py,
lib/ext/cherrypy/test/test_conn.py, lib/ext/cherrypy/test/test_core.py,
lib/ext/cherrypy/test/test_dynamicobjectmapping.py,
lib/ext/cherrypy/test/test_encoding.py, lib/ext/cherrypy/test/test_etags.py,
lib/ext/cherrypy/test/test_http.py, lib/ext/cherrypy/test/test_httpauth.py,
lib/ext/cherrypy/test/test_httplib.py, lib/ext/cherrypy/test/test_json.py,
lib/ext/cherrypy/test/test_logging.py, lib/ext/cherrypy/test/test_mime.py,
lib/ext/cherrypy/test/test_misc_tools.py,
lib/ext/cherrypy/test/test_objectmapping.py,
lib/ext/cherrypy/test/test_proxy.py, lib/ext/cherrypy/test/test_refleaks.py,
lib/ext/cherrypy/test/test_request_obj.py,
lib/ext/cherrypy/test/test_routes.py, lib/ext/cherrypy/test/test_session.py,
lib/ext/cherrypy/test/test_sessionauthenticate.py,
lib/ext/cherrypy/test/test_states.py, lib/ext/cherrypy/test/test_static.py,
lib/ext/cherrypy/test/test_tools.py, lib/ext/cherrypy/test/test_tutorials.py,
lib/ext/cherrypy/test/test_virtualhost.py,
lib/ext/cherrypy/test/test_wsgi_ns.py,
lib/ext/cherrypy/test/test_wsgi_vhost.py,
lib/ext/cherrypy/test/test_wsgiapps.py, lib/ext/cherrypy/test/test_xmlrpc.py,
lib/ext/cherrypy/test/webtest.py, lib/ext/cherrypy/tutorial/README.txt,
lib/ext/cherrypy/tutorial/__init__.py,
lib/ext/cherrypy/tutorial/bonus-sqlobject.py,
lib/ext/cherrypy/tutorial/custom_error.html,
lib/ext/cherrypy/tutorial/pdf_file.pdf,
lib/ext/cherrypy/tutorial/tut01_helloworld.py,
lib/ext/cherrypy/tutorial/tut02_expose_methods.py,
lib/ext/cherrypy/tutorial/tut03_get_and_post.py,
lib/ext/cherrypy/tutorial/tut04_complex_site.py,
lib/ext/cherrypy/tutorial/tut05_derived_objects.py,
lib/ext/cherrypy/tutorial/tut06_default_method.py,
lib/ext/cherrypy/tutorial/tut07_sessions.py,
.../tutorial/tut08_generators_and_yield.py,
lib/ext/cherrypy/tutorial/tut09_files.py,
lib/ext/cherrypy/tutorial/tut10_http_errors.py,
lib/ext/cherrypy/tutorial/tutorial.conf: CherryPy test and tutorial removed
2012-01-22 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.30
* lib/ext/cherrypy/LICENSE.txt, lib/ext/cherrypy/__init__.py,
lib/ext/cherrypy/_cpchecker.py, lib/ext/cherrypy/_cpconfig.py,
lib/ext/cherrypy/_cpdispatch.py, lib/ext/cherrypy/_cperror.py,
lib/ext/cherrypy/_cplogging.py, lib/ext/cherrypy/_cpmodpy.py,
lib/ext/cherrypy/_cprequest.py, lib/ext/cherrypy/_cpserver.py,
lib/ext/cherrypy/_cptools.py, lib/ext/cherrypy/_cptree.py,
lib/ext/cherrypy/_cpwsgi.py, lib/ext/cherrypy/_cpwsgi_server.py,
lib/ext/cherrypy/cherryd, lib/ext/cherrypy/favicon.ico,
lib/ext/cherrypy/lib/__init__.py, lib/ext/cherrypy/lib/auth.py,
lib/ext/cherrypy/lib/caching.py, lib/ext/cherrypy/lib/covercp.py,
lib/ext/cherrypy/lib/cptools.py, lib/ext/cherrypy/lib/encoding.py,
lib/ext/cherrypy/lib/http.py, lib/ext/cherrypy/lib/httpauth.py,
lib/ext/cherrypy/lib/profiler.py, lib/ext/cherrypy/lib/sessions.py,
lib/ext/cherrypy/lib/static.py, lib/ext/cherrypy/process/plugins.py,
lib/ext/cherrypy/process/servers.py, lib/ext/cherrypy/process/win32.py,
lib/ext/cherrypy/process/wspbus.py, lib/ext/cherrypy/scaffold/__init__.py,
lib/ext/cherrypy/scaffold/site.conf, lib/ext/cherrypy/test/__init__.py,
lib/ext/cherrypy/test/benchmark.py, lib/ext/cherrypy/test/checkerdemo.py,
lib/ext/cherrypy/test/helper.py, lib/ext/cherrypy/test/logtest.py,
lib/ext/cherrypy/test/modfcgid.py, lib/ext/cherrypy/test/modpy.py,
lib/ext/cherrypy/test/modwsgi.py, lib/ext/cherrypy/test/test_caching.py,
lib/ext/cherrypy/test/test_config.py, lib/ext/cherrypy/test/test_conn.py,
lib/ext/cherrypy/test/test_core.py, lib/ext/cherrypy/test/test_encoding.py,
lib/ext/cherrypy/test/test_etags.py, lib/ext/cherrypy/test/test_http.py,
lib/ext/cherrypy/test/test_httpauth.py,
lib/ext/cherrypy/test/test_httplib.py, lib/ext/cherrypy/test/test_logging.py,
lib/ext/cherrypy/test/test_misc_tools.py,
lib/ext/cherrypy/test/test_objectmapping.py,
lib/ext/cherrypy/test/test_proxy.py, lib/ext/cherrypy/test/test_refleaks.py,
lib/ext/cherrypy/test/test_routes.py, lib/ext/cherrypy/test/test_session.py,
lib/ext/cherrypy/test/test_sessionauthenticate.py,
lib/ext/cherrypy/test/test_states.py, lib/ext/cherrypy/test/test_static.py,
lib/ext/cherrypy/test/test_tools.py, lib/ext/cherrypy/test/test_tutorials.py,
lib/ext/cherrypy/test/test_virtualhost.py,
lib/ext/cherrypy/test/test_wsgi_ns.py,
lib/ext/cherrypy/test/test_wsgi_vhost.py,
lib/ext/cherrypy/test/test_wsgiapps.py, lib/ext/cherrypy/test/test_xmlrpc.py,
lib/ext/cherrypy/test/webtest.py,
lib/ext/cherrypy/tutorial/bonus-sqlobject.py,
lib/ext/cherrypy/tutorial/custom_error.html,
lib/ext/cherrypy/tutorial/tut02_expose_methods.py,
lib/ext/cherrypy/tutorial/tut03_get_and_post.py,
lib/ext/cherrypy/tutorial/tut04_complex_site.py,
lib/ext/cherrypy/tutorial/tut05_derived_objects.py,
lib/ext/cherrypy/tutorial/tut06_default_method.py,
lib/ext/cherrypy/tutorial/tut07_sessions.py,
.../tutorial/tut08_generators_and_yield.py,
lib/ext/cherrypy/tutorial/tut09_files.py,
lib/ext/cherrypy/tutorial/tut10_http_errors.py,
lib/ext/cherrypy/wsgiserver/__init__.py: bundled CherryPy updated to 3.2.2
* lib/base64e.py: b64decode assumes bytes stream by default We encode the
string as UTF-8 (ASCII) as the input is the Base64 ASCII charmap.
2011-06-21 Alexandre Dulaunoy
* doc/NOTES: added dynamic DNS idea + other
2011-04-24 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.29
2011-04-10 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Sample config for opportunistic_fs
2011-02-22 Alexandre Dulaunoy
* AUTHORS: AUTHORS document updated
* AUTHORS: AUTHORS page added + thanks page
* lib/loot.py: Remove IPv4 only for index fetching. Reported by rafiot on
system with IPv6 only
* lib/tools.py: tools: finddir() added finddir() function is finding
directories recursively following a specific pattern. To be used in the
opportunistic_fs mode to discover Forban directory on removable media.
* lib/tools.py: tools: dirtree() function added dirtree() is a function to
walk in a directory to get each filename, size and last modification time.
* bin/forban_opportunistic_fs.py: opportunistic_fs: skeleton code added The
idea is to have an additional Forban services to exchange files in
opportunistic or shared mode using removal media. This based on a discussion
with various users like Doegox and Creighton.
* cfg/forban.cfg-sample: opportunistic_fs: check forban directory presence
* cfg/forban.cfg-sample: opportunistic_fs: sample configuration added
2011-02-18 Philippe Teuwen
* bin/forban_share.py: forban_share: avoid cherrypy showing tracebacks in
case of err E.g. avoid leaking info on internal paths
* bin/forban_share.py, var/share/forban/img/forban-favicon.png: forban_share:
new favicon
* bin/forban_share.py: forban_share: avoid cherrypy showing tracebacks in
case of err E.g. avoid leaking info on internal paths
2011-02-13 Alexandre Dulaunoy
* bin/forban_share.py: forban_share: removed v4/v6 links Links are now
relative to get the file. Useful if you browse the Forban services via Tor
.onion or a proxy services.
* bin/forban_share.py: forban_share: make link relative for own Forban
2011-02-12 Alexandre Dulaunoy
* doc/NOTES: added Forban on removal devices idea
2011-02-06 Alexandre Dulaunoy
* bin/bash-forban/bforban.sh: Removed -iany from tcpdump (Linux specific)
* doc/NOTES: added comments/ideas gathered at FOSDEM 2011
2011-01-28 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.28
* bin/forban_announce.py: added dynpath missing for announce
2011-01-23 Alexandre Dulaunoy
* bin/bash-forban/bforban.sh: Forban bash client: listen on any network
device
* cfg/forban.cfg-sample: Forban 0.0.27
* bin/bash-forban/bforban.sh: bash client: bmonitor mode added The Forban
bash "client" got a functionnality to automatically open a web browser when a
new Forban is discovered. bmonitor works on MacOS and Unix with Firefox
installed.
* lib/fetch.py: don't continue to handle socket when timed out we don't need
to continue handling the handle while the socket already timeout. Instead of
stopping on file handle timeout, we return a False.
* bin/forban_share.py: forban/index always as a text/plain mime type
2011-01-21 Alexandre Dulaunoy
* lib/index.py: be liberal even if the underlying fs is changed
* bin/forban_opportunistic.py: less verbose logging
* cfg/forban.cfg-sample: Don't exclude everything by default in sample conf
2011-01-17 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.26
2011-01-16 Alexandre Dulaunoy
* lib/announce.py, lib/fid.py, lib/loot.py: forban.fid path lookup fixed
2011-01-06 Alexandre Dulaunoy
* bin/forban_opportunistic.py, bin/forban_share.py: Path creation cleanup
* bin/forban_opportunistic.py, bin/forban_share.py, lib/loot.py: path
creation cleanup
* bin/forbanctl: forbanctl: delay of 0.15sec added
2010-12-31 Alexandre Dulaunoy
* README.md: Protocol information more readable
* cfg/forban.cfg-sample: Forban 0.0.25
* README.md, bin/forban_share.py: Missing links added
* README.md: README in markdown format + quick install guide
* bin/bash-forban/bforban.sh: Typo fixed
* bin/bash-forban/bforban.sh: Forban bash client: search function added Now
you can use the forban bash client to search for all the indexes dicovered.
The script requires only Bash, curl and tcpdump. The script is used to show
how easy is to build a software using the Forban protocol. A sample output:
sudo bash bforban.sh search unix Found Forban elliptic
(5f916370-083f-4603-98ce-8051b70e71cb) http://192.168.1.5:12555/ ->
Unix/Albing - Bash Cookbook [unix shell programming] (O'Reilly,
2007).pdf,1999734 -> Unix/Learning The vi And Vim Editors 7th Ed.pdf,7261405
-> Unix/awk.txt,29190 -> Unix/ProBash.pdf,1505268 ->
Unix/Effective-AWK-Programming.pdf,3488653 -> Unix/OReilly Version Control
with GIT.pdf,1901067 -> Unix/LinuxJournal/Linux Journal 183 - July
2009.pdf,20481947 -> Unix/LinuxJournal/Linux Journal 185 - September
2009.pdf,17966468 -> Unix/LinuxJournal/Linux Journal 182 - June
2009.pdf,22835700 -> Unix/LinuxJournal/Linux Journal 181 - May
2009.pdf,22174869 -> Unix/LinuxJournal/Linux Journal 174 - October
2008.pdf,14520275 -> Python/Gift - Python for Unix and Linux System
Administration (O'Reilly, 2008).pdf,3585227 -> Python/Python for Unix and
Linux System Administration; Jason Brittain, Ian F. Darwin (O'Reilly,
2008).pdf,3204317
2010-12-30 Alexandre Dulaunoy
* bin/forban_announce.py, bin/forban_discover.py,
bin/forban_opportunistic.py, bin/forban_share.py: Config file exception
handling simplified As we want to have Forban running without configuration
files, we catch globally all the errors generated by the ConfigParser.
2010-12-27 Alexandre Dulaunoy
* cfg/forban.cfg-sample: name and path are no more mandatory
* bin/forban_announce.py, bin/forban_discover.py,
bin/forban_opportunistic.py, bin/forban_share.py, bin/forbanctl: guesspath
now works for Win32 platforms
* bin/forban_opportunistic.py, bin/forban_share.py, bin/forbanctl: in
default, there is no opportunistic global var
* bin/forban_opportunistic.py, bin/forban_share.py, bin/forbanctl: fallback
to opportunistic mode in any case Even if the configuration file is missing
or the configuration is incorrect, the default mode of operation is
opportunistic. Useful for dedicated forban USB stick.
* bin/forbanctl: Even if the config file is missing, try to start
2010-12-26 Alexandre Dulaunoy
* bin/bash-forban/bforban.sh: Forban standalone client in bash script The
current version of the script is able to discover forban (using tcpdump) and
display the URLs for each discovered forban (monitor mode).
2010-12-25 Alexandre Dulaunoy
* bin/forban_announce.py, bin/forban_share.py, lib/tools.py: Guess Forban
name if not set in config The Forban name is not linked to the UUID and is
there to help users to name/search for a device. So you can change the forban
name when the user wants. This is also useful for self-deployable Forban
where there is no name set by default and guessing Forban name is usually
enough to get a proper name. This should work on Windows and Unix-like
platform.
2010-12-22 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.24
* bin/forbanctl: restart function added
* bin/forban_announce.py, bin/forban_discover.py,
bin/forban_opportunistic.py, bin/forban_share.py, bin/forbanctl: Guess a
Forban root path even if not set For the upcoming version self-deployable
version, the root path is guessed if not set by the config file.
2010-12-21 Alexandre Dulaunoy
* bin/forban_announce.py, bin/forban_discover.py,
bin/forban_opportunistic.py, bin/forban_share.py, bin/forbanctl: Guessing
realpath of Forban installation added As the Forban processes can be started
from anywhere, we guess the installation path. This allows to have an
absolute path to read the configuration without additional ENV variables.
* lib/index.py: Recursive caching directory creation This is fixing a bug
when you are cleaning all the loot cache and restart Forban services.
2010-12-09 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.23
* lib/fetch.py: fetch: catching socket timeout. This is useful for
forban_opportunistic forban_discover while trying to fetch files from a lost
Forban or a disconnected network.
* bin/forban_opportunistic.py: forban_opportunistic: cleanup exclusion list
and logging
* bin/forban_opportunistic.py, cfg/forban.cfg-sample: forban_opportunistic:
an exclusion filter added to exclude some files to be downloaded.
2010-12-07 Alexandre Dulaunoy
* bin/forbanctl: Exit gracefully when the forban config file is missing
2010-11-01 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.22
* lib/loot.py: return a default value for the lastseen of a specific loot.
This is to avoid any issue when the lastseen cannot be retrieved due to some
race condition as we are just relying on the filesystem to store the value.
* bin/forban_opportunistic.py: don't try to get value when the loot is
currently not existing.
* bin/forban_share.py: remove query string output
* lib/index.py: exclude .dotfile from search results
2010-10-31 Alexandre Dulaunoy
* bin/forban_share.py: don't show missing link on itself
2010-08-28 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.21
* bin/forban_opportunistic.py, cfg/forban.cfg-sample: opportunistic: maximum
size function added to stop fetching if the limit is reached. This is to
avoid filling the disk with large loot.
* bin/forban_opportunistic.py: fail safely if not filter is configured
* README: Python 2.7 tests ok
* bin/forbanctl: Check if only one instance of Forban processes is running
and don't start if more than one is already running
* bin/forban_discover.py: remove import of unused time module
2010-07-10 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.20
2010-07-03 Alexandre Dulaunoy
* bin/forban_announce.py, bin/forban_opportunistic.py, cfg/forban.cfg-sample:
logging : added a maximum file size.
2010-07-01 Alexandre Dulaunoy
* bin/forban_share.py: Add size information while browsing a Forban
* lib/index.py: Escape the literal string when compiling regular expression
* bin/forban_share.py: Make actions more self explanatory
2010-06-05 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.19
* doc/I-D/forban-p2p.rst, doc/I-D/forban-p2p.txt, doc/I-D/forban-p2p.xml:
Forban protocol updated description
* lib/ext/cherrypy/__init__.pyc, lib/ext/cherrypy/_cpcgifs.pyc,
lib/ext/cherrypy/_cpchecker.pyc, lib/ext/cherrypy/_cpconfig.pyc,
lib/ext/cherrypy/_cpdispatch.pyc, lib/ext/cherrypy/_cperror.pyc,
lib/ext/cherrypy/_cplogging.pyc, lib/ext/cherrypy/_cprequest.pyc,
lib/ext/cherrypy/_cpserver.pyc, lib/ext/cherrypy/_cptools.pyc,
lib/ext/cherrypy/_cptree.pyc, lib/ext/cherrypy/_cpwsgi.pyc,
lib/ext/cherrypy/_cpwsgi_server.pyc, lib/ext/cherrypy/lib/__init__.pyc,
lib/ext/cherrypy/lib/auth.pyc, lib/ext/cherrypy/lib/caching.pyc,
lib/ext/cherrypy/lib/cptools.pyc, lib/ext/cherrypy/lib/encoding.pyc,
lib/ext/cherrypy/lib/http.pyc, lib/ext/cherrypy/lib/httpauth.pyc,
lib/ext/cherrypy/lib/sessions.pyc, lib/ext/cherrypy/lib/static.pyc,
lib/ext/cherrypy/lib/tidy.pyc, lib/ext/cherrypy/lib/wsgiapp.pyc,
lib/ext/cherrypy/lib/xmlrpc.pyc, lib/ext/cherrypy/process/__init__.pyc,
lib/ext/cherrypy/process/plugins.pyc, lib/ext/cherrypy/process/servers.pyc,
lib/ext/cherrypy/process/win32.pyc, lib/ext/cherrypy/process/wspbus.pyc,
lib/ext/cherrypy/wsgiserver/__init__.pyc: Cleanup and removal of python
compiled files
* bin/forban_share.py, var/share/forban/css/x.css: Added total size of each
Forban discovered
2010-06-03 Alexandre Dulaunoy
* lib/index.py: index : new function to get total size of a specific forban
* lib/tools.py: tools : added a function to make du-like bytes output
2010-05-27 Alexandre Dulaunoy
* doc/NOTES: NOTES : updates for [done] and [todo]
2010-05-24 Alexandre Dulaunoy
* doc/I-D/forban-p2p.rst, doc/I-D/forban-p2p.xml, doc/I-D/refs/RFC2119.xml,
doc/I-D/refs/RFC4122.xml: Forban protocol Internet-Draft ongoing work...
2010-05-14 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.18
* bin/forbanctl: forbanctl : stopping Forban services on win32 added
2010-05-13 Alexandre Dulaunoy
* lib/fetch.py, lib/index.py, lib/loot.py, lib/tools.py: tools.rename used
instead of os.rename (win32 support)
* lib/tmpname.py: tmpname() : custom suffix added as a parameter
* bin/forban_share.py: forban_share: don't show temporary files when browsing
the index
* lib/tools.py: tools.rename() added to support specific platform like
Windows
2010-05-02 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.17
* lib/loot.py: Fix bug if loot is not existing and trying to update hmac
value in the loot directory.
* cfg/forban.cfg-sample: Forban 0.0.16
* lib/index.py: fixing index not existing
* lib/announce.py: avoid hmac announcing value if not calculated
* lib/index.py: HMAC support cleanup
* lib/index.py: if hmac path doesn't not exist, don't try to go further
* bin/forban_announce.py, lib/announce.py, lib/index.py: hmac support added
to fetch index only on update
* lib/loot.py: use luuid instead of the non-existing self.uuid
* lib/loot.py: loot: HMAC support added
* lib/loot.py: announce protocol - name and uuid are REQUIRED while hmac is
RECOMMENDED in the announce message. order of key-value is not required.
name and uuid are REQUIRED but the hmac is RECOMMENDED as this helps to limit
the fetching of the index.
2010-05-01 Alexandre Dulaunoy
* bin/forban_opportunistic.py: forban_opportunistic: logging for filter
* bin/forban_share.py: forban_share: logging to file (instead of stdout)
* bin/forban_opportunistic.py: forban_opportunistic: logging added for info
level
* bin/forban_announce.py: forban_announce : create log directory if missing
2010-04-29 Alexandre Dulaunoy
* bin/forban_announce.py, cfg/forban.cfg-sample: forban_announce : logging
added in DEBUG or INFO level
* bin/build/build-forban.sh: First Forban build script with Pyinstaller The
purpose is to build binary packages of Forban. Now we are able to build Linux
packages that won't need Python to run.
2010-04-28 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.15
2010-04-17 Alexandre Dulaunoy
* README: Forban Protocol : added the use of HMAC for index update
notification
* README: README: remove CherryPy as requirements (as now included by
default)
* bin/forban_announce.py, bin/forban_opportunistic.py, bin/forban_share.py,
lib/index.py: index: option for index now used by all forban processes
* bin/forban_opportunistic.py, bin/forban_share.py, cfg/forban.cfg-sample:
share directory is now based on default path the share directory was an
option by default but it seems to be confusing for users. Now the default
directory is built on the default forban global directory :
forbanglobalpath+"/var/share/" An alternate share directory is still an
option but commented in the sample configuration file.
2010-04-16 Alexandre Dulaunoy
* lib/index.py: some more directory creation cleanup
* bin/forban_share.py: more path cleanup creation
* bin/forbanctl: cleanup path creation
* bin/forban_announce.py, bin/forban_discover.py,
bin/forban_opportunistic.py, bin/forban_share.py: cleanup path lib building
to allow directory without a trailing slash. (following test done during
Breizh Entropy Congress)
2010-04-11 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.14
* lib/index.py: index : exclude temporary/dot files
* lib/index.py: index: exclude temporary files of diff index
* lib/fetch.py: fetch: don't try to rename unexisting files
* lib/loot.py: setlastseen is now atomic
* lib/loot.py: Make add a discovered loot atomic
2010-04-07 Alexandre Dulaunoy
* doc/NOTES: NOTES updated to reflect past changes + new open points/ideas
2010-03-31 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.13
* lib/discover.py: forban_discover : IPv6/IPv4 detection improved (N900 test)
* lib/discover.py: forban_discover : Improved IPv6 detection and IPv4
fallback.
* bin/forban_share.py: python_share : before binding in IPv6, test
effectively IPv6 socket. (N900 test)
* lib/announce.py: Added IPv4 binding fallback (N900 test). Even if Python is
compiled with IPv6, it doesn't mean that the os is supporting IPv6. (like the
Nokia N900)
* bin/forban_share.py: Show when an index is missing. This often means that
the announce is there but we are not able to get the index from that
announced Forban. This can be an issue with the remote forban (forban_share
is not started) or the impossibility to fetch the index file (can be a
firewall blocking to access port TCP 12555).
2010-03-28 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.12
* bin/forban_share.py: Use system available CherryPy if available, if not use
internal CherryPy.
* lib/ext/cherrypy/LICENSE.txt, lib/ext/cherrypy/__init__.py,
lib/ext/cherrypy/__init__.pyc, lib/ext/cherrypy/_cpcgifs.py,
lib/ext/cherrypy/_cpcgifs.pyc, lib/ext/cherrypy/_cpchecker.py,
lib/ext/cherrypy/_cpchecker.pyc, lib/ext/cherrypy/_cpconfig.py,
lib/ext/cherrypy/_cpconfig.pyc, lib/ext/cherrypy/_cpdispatch.py,
lib/ext/cherrypy/_cpdispatch.pyc, lib/ext/cherrypy/_cperror.py,
lib/ext/cherrypy/_cperror.pyc, lib/ext/cherrypy/_cplogging.py,
lib/ext/cherrypy/_cplogging.pyc, lib/ext/cherrypy/_cpmodpy.py,
lib/ext/cherrypy/_cprequest.py, lib/ext/cherrypy/_cprequest.pyc,
lib/ext/cherrypy/_cpserver.py, lib/ext/cherrypy/_cpserver.pyc,
lib/ext/cherrypy/_cpthreadinglocal.py, lib/ext/cherrypy/_cptools.py,
lib/ext/cherrypy/_cptools.pyc, lib/ext/cherrypy/_cptree.py,
lib/ext/cherrypy/_cptree.pyc, lib/ext/cherrypy/_cpwsgi.py,
lib/ext/cherrypy/_cpwsgi.pyc, lib/ext/cherrypy/_cpwsgi_server.py,
lib/ext/cherrypy/_cpwsgi_server.pyc, lib/ext/cherrypy/cherryd,
lib/ext/cherrypy/favicon.ico, lib/ext/cherrypy/lib/__init__.py,
lib/ext/cherrypy/lib/__init__.pyc, lib/ext/cherrypy/lib/auth.py,
lib/ext/cherrypy/lib/auth.pyc, lib/ext/cherrypy/lib/caching.py,
lib/ext/cherrypy/lib/caching.pyc, lib/ext/cherrypy/lib/covercp.py,
lib/ext/cherrypy/lib/cptools.py, lib/ext/cherrypy/lib/cptools.pyc,
lib/ext/cherrypy/lib/encoding.py, lib/ext/cherrypy/lib/encoding.pyc,
lib/ext/cherrypy/lib/http.py, lib/ext/cherrypy/lib/http.pyc,
lib/ext/cherrypy/lib/httpauth.py, lib/ext/cherrypy/lib/httpauth.pyc,
lib/ext/cherrypy/lib/profiler.py, lib/ext/cherrypy/lib/safemime.py,
lib/ext/cherrypy/lib/sessions.py, lib/ext/cherrypy/lib/sessions.pyc,
lib/ext/cherrypy/lib/static.py, lib/ext/cherrypy/lib/static.pyc,
lib/ext/cherrypy/lib/tidy.py, lib/ext/cherrypy/lib/tidy.pyc,
lib/ext/cherrypy/lib/wsgiapp.py, lib/ext/cherrypy/lib/wsgiapp.pyc,
lib/ext/cherrypy/lib/xmlrpc.py, lib/ext/cherrypy/lib/xmlrpc.pyc,
lib/ext/cherrypy/process/__init__.py, lib/ext/cherrypy/process/__init__.pyc,
lib/ext/cherrypy/process/plugins.py, lib/ext/cherrypy/process/plugins.pyc,
lib/ext/cherrypy/process/servers.py, lib/ext/cherrypy/process/servers.pyc,
lib/ext/cherrypy/process/win32.py, lib/ext/cherrypy/process/win32.pyc,
lib/ext/cherrypy/process/wspbus.py, lib/ext/cherrypy/process/wspbus.pyc,
lib/ext/cherrypy/scaffold/__init__.py,
lib/ext/cherrypy/scaffold/example.conf, lib/ext/cherrypy/scaffold/site.conf,
.../scaffold/static/made_with_cherrypy_small.png,
lib/ext/cherrypy/test/__init__.py, lib/ext/cherrypy/test/benchmark.py,
lib/ext/cherrypy/test/checkerdemo.py, lib/ext/cherrypy/test/helper.py,
lib/ext/cherrypy/test/logtest.py, lib/ext/cherrypy/test/modfcgid.py,
lib/ext/cherrypy/test/modpy.py, lib/ext/cherrypy/test/modwsgi.py,
lib/ext/cherrypy/test/py25.py, lib/ext/cherrypy/test/static/dirback.jpg,
lib/ext/cherrypy/test/static/index.html, lib/ext/cherrypy/test/style.css,
lib/ext/cherrypy/test/test.pem, lib/ext/cherrypy/test/test.py,
lib/ext/cherrypy/test/test_caching.py, lib/ext/cherrypy/test/test_config.py,
lib/ext/cherrypy/test/test_conn.py, lib/ext/cherrypy/test/test_core.py,
lib/ext/cherrypy/test/test_encoding.py, lib/ext/cherrypy/test/test_etags.py,
lib/ext/cherrypy/test/test_http.py, lib/ext/cherrypy/test/test_httpauth.py,
lib/ext/cherrypy/test/test_httplib.py, lib/ext/cherrypy/test/test_logging.py,
lib/ext/cherrypy/test/test_misc_tools.py,
lib/ext/cherrypy/test/test_objectmapping.py,
lib/ext/cherrypy/test/test_proxy.py, lib/ext/cherrypy/test/test_refleaks.py,
lib/ext/cherrypy/test/test_routes.py,
lib/ext/cherrypy/test/test_safe_multipart.py,
lib/ext/cherrypy/test/test_session.py,
lib/ext/cherrypy/test/test_sessionauthenticate.py,
lib/ext/cherrypy/test/test_states.py,
lib/ext/cherrypy/test/test_states_demo.py,
lib/ext/cherrypy/test/test_static.py, lib/ext/cherrypy/test/test_tidy.py,
lib/ext/cherrypy/test/test_tools.py, lib/ext/cherrypy/test/test_tutorials.py,
lib/ext/cherrypy/test/test_virtualhost.py,
lib/ext/cherrypy/test/test_wsgi_ns.py,
lib/ext/cherrypy/test/test_wsgi_vhost.py,
lib/ext/cherrypy/test/test_wsgiapps.py, lib/ext/cherrypy/test/test_xmlrpc.py,
lib/ext/cherrypy/test/webtest.py, lib/ext/cherrypy/tutorial/README.txt,
lib/ext/cherrypy/tutorial/__init__.py,
lib/ext/cherrypy/tutorial/bonus-sqlobject.py,
lib/ext/cherrypy/tutorial/custom_error.html,
lib/ext/cherrypy/tutorial/pdf_file.pdf,
lib/ext/cherrypy/tutorial/tut01_helloworld.py,
lib/ext/cherrypy/tutorial/tut02_expose_methods.py,
lib/ext/cherrypy/tutorial/tut03_get_and_post.py,
lib/ext/cherrypy/tutorial/tut04_complex_site.py,
lib/ext/cherrypy/tutorial/tut05_derived_objects.py,
lib/ext/cherrypy/tutorial/tut06_default_method.py,
lib/ext/cherrypy/tutorial/tut07_sessions.py,
.../tutorial/tut08_generators_and_yield.py,
lib/ext/cherrypy/tutorial/tut09_files.py,
lib/ext/cherrypy/tutorial/tut10_http_errors.py,
lib/ext/cherrypy/tutorial/tutorial.conf,
lib/ext/cherrypy/wsgiserver/__init__.py,
lib/ext/cherrypy/wsgiserver/__init__.pyc: CherryPy 3.1.2 package is now part
of Forban (to limit external dependencies). When testing out Forban on the
OLPC XO-1,the missing part is always CherryPy that is not installed by
default. So I have imported the package inside Forban libraries. The license
are compatible : BSD-like for CherryPy and AGPL for Forban itself.
2010-03-25 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.11
* lib/index.py: removed HEAD support while caching index for remote Forban
The HEAD was introduced to permit the comparison between a cached index and a
remote index. The comparison was done only on the size of the file. But this
is a bad idea, as the size of a index could give the impression that the
index didn't change but some values where inversed (especially the size value
after each line). This was introducing a bug where a large download is taking
place and files were growing in size. So the fetching of the files was based
on the wrong data in the index... A new scheme for checking index change
need to be done (especially if the indexes are quite large among the Forban).
Maybe the HMAC value of the announce could be used to announce an updated
index...
* lib/fetch.py: make HTTP GET atomic while writing files
* lib/tmpname.py: temporary name function for files has been added
* lib/fetch.py: typo fixed
* FAQ: FAQ updated to include operation question over wireless networks
* lib/announce.py, lib/base64e.py, lib/discover.py, lib/fetch.py, lib/fid.py,
lib/index.py, lib/loot.py: License header added
* bin/forban_announce.py, bin/forban_discover.py,
bin/forban_opportunistic.py, bin/forban_share.py, bin/forbanctl: License
header added
* doc/COPYING: add the full-text of GNU Affero General Public License version
3 in the default Forban package.
2010-03-21 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.10
* README, bin/forban_opportunistic.py, bin/forban_share.py, lib/base64e.py:
Encoding of filename moved from Base64 to safe URL Base64 encoding. Protocol
description updated to include the information about the replacement of +,/
and = character. A simple base64e library added. This is introduced to avoid
issue with non-Forban client getting the HTTP files via the GET method.
2010-03-12 Alexandre Dulaunoy
* bin/forban_opportunistic.py, lib/index.py: Fixing non matching index or
where size cannot be get for local file
* bin/forban_share.py: fixed a bug on web interface when the index can't be
already built
2010-03-07 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.9
* lib/fetch.py: url fetch - default timeout set to 10 seconds
* bin/forban_opportunistic.py: opportunistic fetching bug fixed for unseen
forban services. opportunistic protocol is not trying to compare or fetch
files for not recently seen forban services.
* bin/forban_opportunistic.py, doc/NOTES: opportunistic wake-up is now
function of the announce time. As the speed of getting the files depends on
the stability or mobility of the link. It was more logical to use the
announce time as a basis for the wake-up of the opportunistic function. The
wake-up depends of the announce time multiply by a small decreasing factor.
* bin/forban_announce.py, cfg/forban.cfg-sample: announce interval is now a
configurable parameter and the default value is to 10 seconds. The announce
parameter defines the interval time between two announces sent. The parameter
is important if you have a high mobility or instability in the connectivity.
The announce interval recommended is 10 seconds, based on current user
experience.
2010-03-02 Alexandre Dulaunoy
* doc/NOTES: NOTES added regarding open points and next dev. steps
2010-02-19 Alexandre Dulaunoy
* lib/announce.py: add old sha module support fallback if hashlib module is
not present
2010-02-14 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.8
* bin/forban_share.py: Show mode in the user web interface
* bin/forbanctl: cleanup pid files after stopping forban processes
2010-01-30 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.7
* FAQ: FAQ added to answer questions around Forban and its protocol or mode
of operation.
* FAQ: FAQ added to answer questions around Forban and its protocol or mode
of operationg.
* bin/forban_opportunistic.py, lib/index.py: opportunistic : if local file in
local loot is larger than the remote loot, we don't try to fetch it. Added a
function in the index to get file size locally or from the cached index.
* lib/fetch.py: lib url fetch : use shutil.copyfileobj instead of reading
directly from memory. Avoid high memory usage while fetching large files.
* bin/forban_opportunistic.py: opportunistic : rebuild local index after each
HTTP fetch Useful when the distance of a cache is far away and files are
quite large.
2010-01-23 Alexandre Dulaunoy
* cfg/forban.cfg-sample: Forban 0.0.6
* bin/forban_share.py: forban-share : add url builder function and url get
for search output
* bin/forban_share.py: forban_share : search added to the main web interface.
* README: Forban protocols: modification of the search interface and added
more information about the gossip protocol approach in the Forban
opportunistic mode.
* bin/forban_share.py, lib/index.py: index - missingfiles : return None if no
files are missing between Forban
* bin/forban_share.py: forban-share : refresh parameter added to permit
continuous search
* bin/forban_share.py: forban-share : search implemented to search all
indexes of last seen Forban/loots.
2010-01-17 Alexandre Dulaunoy
* bin/forban_share.py: view diff index : URL fixed
* bin/forban_opportunistic.py: opportunistic : only get index if the Forban
has been recently seen (to avoid trying to fetch shutdown Forban/loots)
* bin/forban_share.py: index/diff index: add link to get files in IPv6 too
(if IPv6 is present)
2010-01-16 Alexandre Dulaunoy
* bin/forban_opportunistic.py: opportunistic : avoid fetching files from not
recently seen Forban/loot
2010-01-13 Alexandre Dulaunoy
* bin/forban_share.py, cfg/forban.cfg-sample: bug fix in forban_share : do
not try to fetch index if the loot was not seen in the past 300 seconds. This
is to avoid locking of the web interface for non available forban but still
in the cache.
2010-01-10 Alexandre Dulaunoy
* bin/forbanctl: start the discover before the announce. useful to avoid a
gap when displaying your own announced forban.
* bin/forbanctl, cfg/forban.cfg-sample: shared mode added in addition to the
opportunistic mode. shared mode is the same mode as opportunistic without
the automatic fetching of files. The shared mode is usually used when you are
proposing content (e.g. a large and organized library) but you don't fetch
any files proposed by the other loots. opportunistic mode is sharing plus
doing the automatic download.
2010-01-06 Alexandre Dulaunoy
* lib/index.py: index (bug fix): if index not present and HEAD successful,
fetch and save it.
2010-01-05 Alexandre Dulaunoy
* bin/forban_discover.py, bin/forban_share.py: discover and share : binding
address cleaner (especially for host not supporting IPv6 like the iphone)
2010-01-04 Alexandre Dulaunoy
* lib/index.py: bug fix : ensure that index already exists
2010-01-03 Alexandre Dulaunoy
* bin/forban_opportunistic.py: opportunistic : don't fetch your own files and
avoid duplicate fetch. The duplicate fetch was due to the cache not being
updated.
* lib/index.py: index: renaming file at index creation to ensure atomicity
The purpose is to allow other processes to update the local index when this
is required.
* lib/fetch.py: cache option removed as this is now part of the index
handling
* lib/index.py: index cache: we HEAD before GETting the index of each
discovered Forban. This is useful to speed up cache gathering while the index
are pretty large and remains constant over time.
* lib/fetch.py: add caching option
2010-01-02 Alexandre Dulaunoy
* lib/fetch.py: fetch: add a HEAD function to get last-modified and
content-length
* bin/forban_opportunistic.py: opportunistic : filter support added to limit
fetching to the specified matching patterns (case-insensitive)
* bin/forban_share.py: web interface : add a link on the logo to ease
navigation
2009-12-31 Alexandre Dulaunoy
* lib/loot.py: keep the %interface in the source IPv6 address.
* bin/forban_share.py: add a view of loot indexes from the web interface.
(v/uuid) The :12555/v/uuid url is not required in the Forban protocols
but this is handy for the users to see what's inside the current indexes. The
user can also directly grab a file from the index too.
* lib/index.py: index.search : add the ability to search in non-local
indexes.
* bin/forbanctl: test
* bin/forbanctl: don't assume location of Python
* bin/forbanctl: forbanctl added to start and stop Forban services All the
logging is done on stdout with the current version this may change in the
future.
2009-12-29 Alexandre Dulaunoy
* lib/index.py: index: if we want to compare an index line-by-line. The line
must be sorted before hand.
* bin/forban_opportunistic.py: first opportunistic client added. The
opportunistic client is looking at the missing files between the local index
and the discovered loot runnning on other Forban. If files are missing from
the local index, they are automatically fetched and saved in the local share
directory.
* bin/forban_announce.py, bin/forban_share.py: forban index rebuild move from
share process to announce process. The rebuild of the local index needs to
be performed regularly and in link with the announce. That's why we moved the
index rebuild to the the announce process. This also ensures that a single
process is in charge of the local index rebuild.
* README, bin/forban_share.py: get file from the file index with filename
encoded in Base64 to allow any format of filename in the index.
* bin/forban_share.py: web interface : add a visual interface of file missed
in the cache and a link to download the file. Useful if you are using the
opportunistic mode and still want to download files from the discovered loot.
* bin/forban_share.py, var/share/forban/css/x.css,
var/share/forban/img/forban-small.png: web interface : forban logo added
2009-12-25 Alexandre Dulaunoy
* cfg/forban.cfg-sample: sample configuration : mode opportunistic and shared
added with an explanation for each mode. The mode opportunistic is the
default mode.
* README: Python 2.5 is required due to the uuid library
* lib/index.py: index: added a basic search function taking a regular
expression as input and returns a list of matched lines in the local index.
2009-12-23 Alexandre Dulaunoy
* bin/forban_share.py, lib/index.py: added a function to compare the files
missing between index caches in each loot discovered. This function is used
by the opportunistic file fetching to know which files need to be get.
* lib/fetch.py: be more liberal in exception handling when trying to fetch a
Forban HTTP URL. As the link-local connectivity can be unstable, we just go
on when fetching a file.
* bin/forban_share.py, lib/fetch.py, lib/index.py: caching mechanism
introducted for each loot The caching mechanism of Forban indexes is the
base for checking the differences of indexes among the Forban on a same
link-local. The caches are compared (and filtered if the user wants that) and
difference are collected on the each Forban.
* lib/loot.py: force IPv4 when building URL (especially that urllib2 has
still some major issues with IPv6 URLs, TBF)
* lib/loot.py: check for the existence of the UUID (in some rare case, the
UUID can be created while the lastseen has not been created)
* cfg/forban.cfg, lib/loot.py: exclude cache directory from loot uid
* lib/loot.py: getindexurl added to get Forban a list of index url for a
specific loot
* lib/loot.py: make exist function public
* bin/forban_share.py, lib/loot.py: list all the discovered loot is now
function
* bin/forban_share.py, lib/loot.py: lastseen function added to discard unseen
services for a specify time
2009-12-22 Alexandre Dulaunoy
* README: About the flooding of the announce in broadcast and link-local all
nodes address
* README: README: added some clarity in message format
* bin/forban_share.py, lib/loot.py: Added a view listing the discovered
services and minimal loot interface to get the requested parameters to build
URLs.
* README: README: add more information about the required Python and CherryPy
* lib/loot.py: self information added in the directory of discovered loots.
This is used for avoiding getting files from the same Forban doing the
announce and the discovery. Quite important for the future opportunistic
sharing.
* README, bin/forban_share.py, cfg/forban.cfg-sample,
var/share/forban/css/x.css: Forban minimal HTTP service added using CherryPy
The service is used to get the index : http://:12555/s/?g=forban/index and to get a specific file from the index using :
http://:12555/s/?g=
* lib/index.py: forban : simple index builder for the shared loot The format
of the index is the filename (with the subdirectory of loot) and the size of
the file. The index is located in shared fixed location on the HTTP Forban
service. The index is in text format (UTF encoded).
2009-12-20 Alexandre Dulaunoy
* bin/forban_discover.py: added a starter script for the Forban discovery
service
* cfg/forban.cfg-sample: forban.cfg -> forban.cfg-sample (to avoid overwrite
issue)
* bin/forban_announce.py, cfg/forban.cfg: added a starter script for the
Forban announce service
* lib/discover.py: a typo in debug message
* lib/discover.py, lib/loot.py: Forban : minimal discovery functionnalities
added and loot storage loot is used to save each uuid discovered along with
their source ip when they were seen the first and last time. loots are used
to build the table of reachable Forban service on a local network. The
storage is done on the file system with a subdirectory per uuid. uuid/first
-> epoch value for first time uuid/last -> epoch value for last time
uuid/name -> string value of the common name used uuid/sourcev6>string value
of the IPv6 address seen uuid/sourvev4>string value of the IPv4 address seen
minimal but it works.
* README: clarification regarding the port used in Forban. Port 12555 in UDP
protocol is used for announcing the Forban service. Port 12555 in TCP
protocol is used for the HTTP service of Forban.
2009-10-11 Alexandre Dulaunoy
* README, lib/announce.py: first implementation of forban announce message
broadcast flooding in IPv4 and multicast flooding in IPv6.
* lib/fid.py: Forban UUID init, creation and regen added
2009-10-05 Alexandre Dulaunoy
* README, lib/announce.py, lib/fid.py: first structure and message format (in
README)