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 14:27:26 +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]