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)