pydonkey-general
[Top][All Lists]
Advanced

[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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]