Using SRP on TCPServer module

dcrespo dcrespo at gmail.com
Fri Oct 14 12:01:32 EDT 2005


Hi all,

Below, you can see a class that when it receives a host connection, it
gets validated. Then, if the validation returns True, then process the
request. Also, if I want to stop the server, I simply access the
self.QuitFlag in lock mode, and set it to 1.

Now that you know what I have, I would like to add SRP functionality to
the validation of each new connection.
What I need to add to my code to get SRP to work? I don't know where to
start. The docs are poor.

Thanks

Daniel

------------------------------------------------------

class TCPServer(SocketServer.ThreadingTCPServer):

    def __init__(self,socket,lock):
        self.socket = socket
        SocketServer.ThreadingTCPServer.__init__(self,
socket,SocketServer.StreamRequestHandler)
        SocketServer.ThreadingTCPServer.allow_reuse_address = True
        self.timeout = 0.1
        self.lock = lock
        self.lock.acquire()
        self.QuitFlag = 0
        self.lock.release()

    def get_request(self):
        socklist = [self.socket]
        while 1:
            # Select with a timeout, then poll a quit flag. An
alternate
            # approach would be to let the master thread "wake us up"
            # with a socket connection.
            ready = select.select(socklist, [], [], self.timeout)
            self.lock.acquire()
            time_to_quit = self.QuitFlag
            self.lock.release()
            if time_to_quit:
                raise TimeToQuit        # Get out now
            if ready[0]:        # A socket was ready to read
                return
SocketServer.ThreadingTCPServer.get_request(self)
            else:               # We timed out, no connection yet
                pass            # Just go back to the select()

    #Process the request
    def process_request_thread(self,request,client_address):
        """
        This function gets triggered when the connection is accepted
        """
        pass

    #Verify the request
    def verify_request(self,request,client_address):
        """
        This function triggers when some host wants to connect
        """
        if DoValidationOf(client_address):
            return True
        else:
            return False




More information about the Python-list mailing list