[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pydonkey-general] Todo for pysocket
From: |
BuziFuzee |
Subject: |
[Pydonkey-general] Todo for pysocket |
Date: |
Sat, 30 Aug 2003 15:24:56 +0200 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) |
As demanded, ToDo-List for pysocket:
1.) UDP support
Problem:
- does not fit the structure of pysocket by now, because you have
always to make sendto(data, address) and recvfrom(data, address)
Solution:
- Establishing Pseudo-Static-Connection
Problem:
- You never know when a session ends, because often packets
are only sent once
2.) SSL-Support
3.) Protection System:
- proove against DDOS attacks and garbled packages etc.
Solutions:
- Credit Point system like lugdunum (vulnerable as it seems)
See:
http://www.emule-project.net/board/index.php?showtopic=24033
- Problems: How deep can we interact with the socket API in Python?
4.) Connections ensurance:
At the moment we connect to a client like this:
def connecty(self,address):
self.connected = 0
err = self.socket.connect_ex(address)
if err in (EINPROGRESS, EALREADY, EWOULDBLOCK):
return
if err in (0, EISCONN):
self.addr = address
self.connected = 1
self.handle_connect()
else:
raise socket.error, err
So we take a connection for established even when it not is already.
The source is taken from the asynchat.
I don't if it's going to be a problem, because the connection will
be lost immediately when it fails, but could result in strange results,
and even in DDOS-Attacks
from our side.
5.) Better bandwidth control
- the bandwidth control seems to be a little bit inconsistent
- Solution: integrating it directly into the poll-functions
- adding second bandwidth control with for example n GB / month
- Bug: It is not possible to set up a connection without bandwidth
control
6.) Priorising Connections
- there should be a possibility for laying priority on some connections
Solution: in the poll function priorised connections are always
checked first or n-th with prio n, so we sort them before ask them
Problem: in a worse case low-prio connection will never be able
to send anything
7.) Integrating user-defined data must be made easier, when it is needed
in the protocol
Solution: Option to add a data-container to the protocol
That's it for the moment, tell your ideas,
Spikeee