def __init__(self, src, dst, payload=""): kwargs = {} kwargs["my_mac"] = src[0] kwargs["my_ip"] = src[1] if len(src) == 3: srcport = src[2] kwargs["my_port"] = srcport kwargs["other_mac"] = dst[0] kwargs["other_ip"] = dst[1] kwargs["other_port"] = dst[2] kwargs["connection_over_cb"] = self.connectionClosed kwargs["has_data_to_send_cb"] = self.connHasDataToSend kwargs["payload"] = payload self.d = None # deferred TcpConnection.__init__(self, **kwargs) Client.__init__(self)
def createConnection(self, packet, socPair, *args, **kwargs): if len(self.connections) >= self.max_active_conns: s = "Ignoring new connection request:" s += "already have %d active connections" log.warn(s % self.max_active_conns) return None if not self.agent.isSyn(packet): return None _kwargs = {} _kwargs.update(kwargs) _kwargs["connection_over_cb"] = self.connectionClosed _kwargs["has_data_to_send_cb"] = self.connHasDataToSend conn = TcpConnection.createFromPacket(packet, **_kwargs) return conn