host, port = parse_args() out_dir = os.path.join(os.getcwd(), host) if not os.path.exists(out_dir): try: os.mkdir(out_dir) except OSError: out_dir = mkdtemp() print('Using %s as output directory' % (out_dir)) print('Trying to connect to %s:%i' % (host, port)) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, port)) connection = TLSConnection(sock) connection.handshakeClientCert(nextProtos=["spdy/%i" % SPDY_VERSION]) print ('TLS NPN Selected: %s' % connection.next_proto) spdy_ctx = Context(CLIENT, version=SPDY_VERSION) connection.write(get_site_resource(spdy_ctx, host)) headers = {spdy_ctx._last_stream_id: {'path': 'index'}} res_files = {spdy_ctx._last_stream_id: (os.path.join(out_dir, 'index'), None)} resources = None goaway = False while not goaway: answer = connection.read() # Blocking spdy_ctx.incoming(answer) frame = get_frame(spdy_ctx) while frame: sid = getattr(frame, 'stream_id', None) if hasattr(frame, 'headers'): print ('<<', frame, 'Headers:', frame.headers) # DEBUG if sid not in headers: headers[sid] = {} headers[sid].update(parse_headers(frame.headers))
if __name__ == '__main__': host, port = parse_args() print('Trying to connect to %s:%i' % (host, port)) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, port)) connection = TLSConnection(sock) connection.handshakeClientCert(nextProtos=["spdy/%i" % SPDY_VERSION]) print ('TLS NPN Selected: %r' % connection.next_proto) spdy_ctx = Context(CLIENT, version=SPDY_VERSION) ping_test(spdy_ctx) get_page(spdy_ctx, host) out = spdy_ctx.outgoing() #print str2hexa(str(out)) connection.write(out) file_out = open('/tmp/spdyout.txt', 'wb') goaway = False content_type_id = {} while not goaway: answer = connection.read() # Blocking #print '<<\n', str2hexa(answer) spdy_ctx.incoming(answer) frame = get_frame(spdy_ctx) while frame: if hasattr(frame, 'headers'): print ('<<', frame, 'Headers:', frame.headers) content_type_id[frame.stream_id] = frame.headers.get('content-encoding') elif hasattr(frame, 'data'): data = frame.data # Handle gzipped data
host, port = parse_args() out_dir = os.path.join(os.getcwd(), host) if not os.path.exists(out_dir): try: os.mkdir(out_dir) except OSError: out_dir = mkdtemp() print('Using %s as output directory' % (out_dir)) print('Trying to connect to %s:%i' % (host, port)) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, port)) connection = TLSConnection(sock) connection.handshakeClientCert(nextProtos=["spdy/%i" % SPDY_VERSION]) print('TLS NPN Selected: %s' % connection.next_proto) spdy_ctx = Context(CLIENT, version=SPDY_VERSION) connection.write(get_site_resource(spdy_ctx, host)) headers = {spdy_ctx._last_stream_id: {'path': 'index'}} res_files = { spdy_ctx._last_stream_id: (os.path.join(out_dir, 'index'), None) } resources = None goaway = False while not goaway: answer = connection.read() # Blocking spdy_ctx.incoming(answer) frame = get_frame(spdy_ctx) while frame: sid = getattr(frame, 'stream_id', None) if hasattr(frame, 'headers'): print('<<', frame, 'Headers:', frame.headers) # DEBUG if sid not in headers:
if __name__ == '__main__': host, port = parse_args() print('Trying to connect to %s:%i' % (host, port)) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, port)) connection = TLSConnection(sock) connection.handshakeClientCert(nextProtos=["spdy/%i" % SPDY_VERSION]) print('TLS NPN Selected: %r' % connection.next_proto) spdy_ctx = Context(CLIENT, version=SPDY_VERSION) ping_test(spdy_ctx) get_page(spdy_ctx, host) out = spdy_ctx.outgoing() #print str2hexa(str(out)) connection.write(out) file_out = open('/tmp/spdyout.txt', 'wb') goaway = False content_type_id = {} while not goaway: answer = connection.read() # Blocking #print '<<\n', str2hexa(answer) spdy_ctx.incoming(answer) frame = get_frame(spdy_ctx) while frame: if hasattr(frame, 'headers'): print('<<', frame, 'Headers:', frame.headers) content_type_id[frame.stream_id] = frame.headers.get( 'content-encoding') elif hasattr(frame, 'data'): data = frame.data