def test_syn(): """When we connect, we should send a SYN.""" listener = MockListener() conn = TCPSocket(listener) conn.connect("localhost", 80) assert conn.state == "SYN-SENT" pkts = listener.received_packets assert len(pkts) == 1 assert pkts[0].sprintf("%TCP.flags%") == "S"
def get_page(url, fake_ip): hostname, path = parse(url) request = "GET %s HTTP/1.0\r\nHost: %s\r\n\r\n" % (path, hostname) listener = TCPListener(fake_ip) conn = TCPSocket(listener) conn.connect(hostname, 80) conn.send(request) data = conn.recv(10000, timeout=1) conn.close() return data
def create_session(packet_log): """ Helper function to create a client session from a PCAP log. Sets up the sequence numbers to match with the sequence numbers in the PCAP. """ listener = MockListener() syn = packet_log[0] listener.source_port = syn.sport - 1 conn = TCPSocket(listener) conn.connect(syn.payload.dst, syn.dport) # Change the sequence number so that we can test it conn.seq = syn.seq return listener, conn