Example #1
0
 def actually_start(self, transport, max_ul_rate, config, rlcount):
     self.transport = transport
     self.rltransport = KRateLimiter(transport, max_ul_rate,
                                     self.call_later, rlcount,
                                     config['max_rate_period'])
     self.connections = Cache(touch_on_access=True)
     self.hammerlock = Hammerlock(100, self.call_later)
     self.expire_connections(loop=True)
     self.config = config
     if not self.config.has_key('pause'):
         self.config['pause'] = False
Example #2
0
 def __init__(self, server, addr, transport, call_later, max_ul_rate, config, rlcount):
     self.server = server
     self.addr = addr
     self.transport = transport
     self.rltransport = KRateLimiter(transport, max_ul_rate, call_later, rlcount, config['max_rate_period'])
     self.call_later = call_later
     self.connections = Cache(touch_on_access=True)
     self.hammerlock = Hammerlock(100, call_later)
     self.expire_connections(loop=True)
     self.config = config
     if not self.config.has_key('pause'):
         self.config['pause'] = False
Example #3
0
 def __init__(self, server, addr, transport, call_later, max_ul_rate,
              config, rlcount):
     self.server = server  #khashmirbase
     self.addr = addr  #local address
     self.transport = transport  #listening udp socket(addr)
     self.rltransport = KRateLimiter(transport, max_ul_rate, call_later,
                                     rlcount, config['max_rate_period'])
     self.call_later = call_later  #rawserver.add_task
     self.connections = Cache(touch_on_access=True)
     self.hammerlock = Hammerlock(100, call_later)
     self.expire_connections(loop=True)
     self.config = config
     if not self.config.has_key('pause'):
         self.config['pause'] = False
Example #4
0
 def actually_start(self, transport, max_ul_rate, config, rlcount):
     self.transport = transport
     self.rltransport = KRateLimiter(transport, max_ul_rate, self.call_later, rlcount, config['max_rate_period'])
     self.connections = Cache(touch_on_access=True)
     self.hammerlock = Hammerlock(100, self.call_later)
     self.expire_connections(loop=True)
     self.config = config
     if not self.config.has_key('pause'):
         self.config['pause'] = False
Example #5
0
 def __init__(self, server, addr, transport, call_later, max_ul_rate, config, rlcount):
     self.server = server
     self.addr = addr
     self.transport = transport
     self.rltransport = KRateLimiter(transport, max_ul_rate, call_later, rlcount, config['max_rate_period'])
     self.call_later = call_later
     self.connections = Cache(touch_on_access=True)
     self.hammerlock = Hammerlock(100, call_later)
     self.expire_connections(loop=True)
     self.config = config
     if not self.config.has_key('pause'):
         self.config['pause'] = False
Example #6
0
class hostbroker(Handler, DatagramProtocol):
    def __init__(self, server, addr, call_later):
        self.server = server
        self.addr = addr
        self.call_later = call_later

    def actually_start(self, transport, max_ul_rate, config, rlcount):
        self.transport = transport
        self.rltransport = KRateLimiter(transport, max_ul_rate,
                                        self.call_later, rlcount,
                                        config['max_rate_period'])
        self.connections = Cache(touch_on_access=True)
        self.hammerlock = Hammerlock(100, self.call_later)
        self.expire_connections(loop=True)
        self.config = config
        if not self.config.has_key('pause'):
            self.config['pause'] = False

    def expire_connections(self, loop=False):
        self.connections.expire(bttime() - KRPC_CONNECTION_CACHE_TIME)
        if loop:
            self.call_later(KRPC_CONNECTION_CACHE_TIME,
                            self.expire_connections, True)

    def datagramReceived(self, datagram, addr):
        self.data_came_in(addr, datagram)

    def data_came_in(self, addr, datagram):
        #if addr != self.addr:
        if not self.config['pause'] and self.hammerlock.check(addr):
            c = self.connectionForAddr(addr)
            c.datagramReceived(datagram, addr)

    def connection_lost(self, socket):
        ## this is like, bad
        print ">>> connection lost!", socket

    def connectionForAddr(self, addr):
        if addr == self.addr:
            raise KRPCSelfNodeError()
        if not self.connections.has_key(addr):
            conn = KRPC(addr, self.server, self.transport, self.rltransport,
                        self.call_later)
            self.connections[addr] = conn
        else:
            conn = self.connections[addr]
        return conn
Example #7
0
class hostbroker(Handler):
    def __init__(self, server, addr, transport, call_later, max_ul_rate,
                 config, rlcount):
        self.server = server  #khashmirbase
        self.addr = addr  #local address
        self.transport = transport  #listening udp socket(addr)
        self.rltransport = KRateLimiter(transport, max_ul_rate, call_later,
                                        rlcount, config['max_rate_period'])
        self.call_later = call_later  #rawserver.add_task
        self.connections = Cache(touch_on_access=True)
        self.hammerlock = Hammerlock(100, call_later)
        self.expire_connections(loop=True)
        self.config = config
        if not self.config.has_key('pause'):
            self.config['pause'] = False

    def expire_connections(self, loop=False):
        self.connections.expire(bttime() - KRPC_CONNECTION_CACHE_TIME)
        if loop:
            self.call_later(KRPC_CONNECTION_CACHE_TIME,
                            self.expire_connections, True)

    '''receive data'''

    def data_came_in(self, addr, datagram):
        #if addr != self.addr:
        # print "recvfrom ",addr
        if not self.config['pause'] and self.hammerlock.check(addr):
            '''c == RRPC instance'''
            c = self.connectionForAddr(addr)
            c.datagramReceived(datagram, addr)

    def connection_lost(self, socket):
        ## this is like, bad
        print ">>> connection lost!", socket

    def connectionForAddr(self, addr):
        if addr == self.addr:
            raise KRPCSelfNodeError()
        if not self.connections.has_key(addr):
            conn = KRPC(addr, self.server, self.transport, self.rltransport,
                        self.call_later)
            self.connections[addr] = conn
        else:
            conn = self.connections[addr]
        return conn
Example #8
0
class hostbroker(Handler, DatagramProtocol):       
    def __init__(self, server, addr, call_later):
        self.server = server
        self.addr = addr
        self.call_later = call_later
        
    def actually_start(self, transport, max_ul_rate, config, rlcount):
        self.transport = transport
        self.rltransport = KRateLimiter(transport, max_ul_rate, self.call_later, rlcount, config['max_rate_period'])
        self.connections = Cache(touch_on_access=True)
        self.hammerlock = Hammerlock(100, self.call_later)
        self.expire_connections(loop=True)
        self.config = config
        if not self.config.has_key('pause'):
            self.config['pause'] = False
        
    def expire_connections(self, loop=False):
        self.connections.expire(bttime() - KRPC_CONNECTION_CACHE_TIME)
        if loop:
            self.call_later(KRPC_CONNECTION_CACHE_TIME, self.expire_connections, True)

    def datagramReceived(self, datagram, addr):
      self.data_came_in(addr, datagram)
      
    def data_came_in(self, addr, datagram):
        #if addr != self.addr:
        if not self.config['pause'] and self.hammerlock.check(addr):
            c = self.connectionForAddr(addr)
            c.datagramReceived(datagram, addr)

    def connection_lost(self, socket):
        ## this is like, bad
        print ">>> connection lost!", socket

    def connectionForAddr(self, addr):
        if addr == self.addr:
            raise KRPCSelfNodeError()
        if not self.connections.has_key(addr):
            conn = KRPC(addr, self.server, self.transport, self.rltransport, self.call_later)
            self.connections[addr] = conn
        else:
            conn = self.connections[addr]
        return conn