Beispiel #1
0
        print ('error parsing frame: %s' % str(e))

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'):
    print('Trying to connect to %s:%i' % (host, port))
    ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
    ctx.set_ciphers('DES-CBC3-SHA')
    ctx.load_cert_chain('server.crt', 'server.key')
    ctx.set_npn_protocols(['spdy/%i' % SPDY_VERSION])
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((host, port))
    connection = ctx.wrap_socket(sock)
    print('TLS NPN Selected: %r' % connection.selected_npn_protocol())
    spdy_ctx = Context(CLIENT, version=SPDY_VERSION)

    ping_test(spdy_ctx)
    get_page(spdy_ctx, host)

    out = spdy_ctx.outgoing()
    #print (str2hexa(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')
Beispiel #3
0
#!/usr/bin/env python
# coding: utf-8

from spdy.context import Context, CLIENT, SERVER
from spdy.frames import SynStream, SynReply

server = Context(SERVER)
client = Context(CLIENT)

frame = SynStream(stream_id=client.next_stream_id, headers={'dood': 'balls', 'stuff': 'otherstuff'})
client.put_frame(frame)
chunk = client.outgoing()

server.incoming(chunk)
frame2 = server.get_frame()
print(frame2)
print(frame2.headers)

frame3 = SynReply(stream_id=server.next_stream_id, headers={'got it': 'yup', 'roger': 'roger'})
server.put_frame(frame3)
chunk2 = server.outgoing()

client.incoming(chunk2)
frame4 = client.get_frame()
print(frame4.headers)
Beispiel #4
0
        data = DataFrame(f.stream_id, b"hello, world!", flags=1)
        conn.put_frame(data)
        print(str(data) + ", SAYS SERVER")
        goaway = Goaway(f.stream_id)
        conn.put_frame(goaway)
        print(str(goaway) + ", SAYS SERVER")
    elif isinstance(f, Goaway):
        return True

try:
    print ('Running one-time one-client SPDY Server...')
    client_socket, address = server.accept()
    ss = ctx.wrap_socket(client_socket, server_side=True)
    conn = Context(SERVER)
    finish = False
    while not finish:
        d = ss.recv(1024)
        conn.incoming(d)
        frame = conn.get_frame()
        if frame:
            finish = handle_frame(conn, frame)
            outgoing = conn.outgoing()
            if outgoing:
                ss.sendall(outgoing)
        

except Exception as exc:
    print(exc)
finally:
    server.close()
        data = DataFrame(f.stream_id, b"hello, world!", flags=1)
        conn.put_frame(data)
        print(str(data) + ", SAYS SERVER")
        goaway = Goaway(f.stream_id)
        conn.put_frame(goaway)
        print(str(goaway) + ", SAYS SERVER")
    elif isinstance(f, Goaway):
        return True


try:
    print('Running one-time one-client SPDY Server...')
    client_socket, address = server.accept()
    ss = ctx.wrap_socket(client_socket, server_side=True)
    conn = Context(SERVER)
    finish = False
    while not finish:
        d = ss.recv(1024)
        conn.incoming(d)
        frame = conn.get_frame()
        if frame:
            finish = handle_frame(conn, frame)
            outgoing = conn.outgoing()
            if outgoing:
                ss.sendall(outgoing)

except Exception as exc:
    print(exc)
finally:
    server.close()