Commit 8f1a9bbb authored by Guillaume Bury's avatar Guillaume Bury

TODO updated

parent a565fe10
For Ulysse : useful is spelled with only ONE l and not two.....
Bugs :
Find a name for the project : the projet is ( or should be ) independant from vifib, openvpn, babel,
and so should the name; btw we aim to build a distributed, scalable, resilient VPN....
When no peer is avalaible without the --no-boot option, it crash => see below
Once in a while, when exiting vifibnet ( not very properly, via Ctrl+C ), processes ( openvpn and babel )
still remain and disturb further attemps ( must be killed for vifibnet to work again )
Babel seems to be very long to establish the routes : maybe we should tell him thant we are not on a wired network but on a mobile network ?
When no peer is avalaible, the setup crash without the --no-boot option => see below
To be done :
Use an algorithm to choose which connections to keep and/or establish instead or pure randomness
Find a name for the project : the projet is ( or should be ) independant from vifib, openvpn, babel,
and so should the name; btw we aim to build a distributed, scalable, resilient VPN....
Replace comments at the beginning of functions with docstrings & give all fn docstrings
Use the server events ( client connection/deconnection ) to do something usefull
In peers DB, remove some peers when they are too many of them
Contact the server using vifibnet and not the underlying network when possible
Use a timeout for the peersDB
The peer DB size should depend on the number of connection and the refresh time
Use the server events ( client connection/deconnection ) to do something useful
In peers DB, remove some peers when they are too many of them -> remove the dead peers
Use a timeout for the peersDB -> ?, removing the dead peers should be enough
Specify a lease duration in ForwardViaUPnP
To be discuss:
To be discussed:
U : Babel seems to be very long to establish the routes : maybe we should tell him thant we are not on a wired network but on a mobile network ?
G : babel establish routes quickly enough i'd say. There are two new options : hello and wireless, for hello_interval and
treating all interfaces as wireless. However, treating an interface as wireless doesn't lessen the hello_interval, it only
changes how babel estimates quality link, and cost.
U : Contact the server using vifibnet and not the underlying network when possible
G : done by giving the vifibnet address of the server. Anyways, if you give the 'internet' address of the server,
it CANNOT be reached via vifib, as there isn't yet a border vpn through which the internet traffic would be routed
U : The peer DB size should depend on the number of connection and the refresh time
G : ?! I don't agree, the db size should be proportional ( with a factor like 0.01 or less ) to the total number of peers in the entire network, with maybe a max size.
U : Remove the --no-boot option since we know when no node is avalaible
G : the no-boot option is only useful when the server knows no peer,
irl it should never happen, no-boot is a debug option
U : Ok, but the server knows when no peers is avalaible, doesn't he ?
G : Well when no peer is available the SQL request ( + next() method ) raise a StopIteration exception
G : don't reconnect to server each time we repopulate in peers_db ?
U : From what I've read on the internet, when you create a server object, you don't connect to the server,
You only connect to the server once you send a request for a methode and then you can automatically use the same connection for 15sec
G : ok, it justs need testing ( for when some requests for the server will require to be plugged in the network )
Use more than one boostrap node
\ No newline at end of file
U : Use more than one boostrap node
G : we'll use the server as a bootstrap node
......@@ -31,10 +31,10 @@ class PeerManager:
def _declare(self):
if self._external_ip != None:
utils.log('Declaring our connections info', 3)
utils.log('Sendin connection info to server', 3)
self._proxy.declare((self._internal_ip, self._external_ip, self._external_port, self._proto))
else:
utils.log('Warning : could not declare the external ip because it is unknown', 4)
utils.log('Warning : could not send the external ip because it is unknown', 4)
def _populate(self):
utils.log('Populating the peers DB', 2)
......
......@@ -17,9 +17,6 @@ def openvpn(hello_interval, *args, **kw):
utils.log(str(args), 5)
return subprocess.Popen(args, **kw)
# TODO : set iface up when creating a server/client
# ! check working directory before launching up script ?
def server(server_ip, network, max_clients, dh_path, pipe_fd, port, proto, hello_interval, *args, **kw):
utils.log('Starting server', 3)
return openvpn(hello_interval,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment