Пример #1
0
def spdy_siteget(spdy1, spdy2, site):
    resp = {'text': '', 'assetlist': []}

    def site_start(status, phrase, headers):
        if status != '200':
            print 'Connection Failed: ' + site

    def site_body(chunk):
        resp['text'] += chunk

    def site_stop(trailers):
        assetlist = json.loads(resp['text'])['list']
        print 'SPDY:',
        for asset in assetlist:
            spdy_assetget(spdy1, spdy2, asset, spdyclient)
        print
        stop()

    t0 = time.time()
    spdyclient = SpdyClient()
    get = spdyclient.exchange()
    uri = spdy1 + '/site/' + str(site)
    stream = get.request_start('GET', uri, [])
    get._streams[stream].on('response_start', site_start)
    get._streams[stream].on('response_body', site_body)
    get._streams[stream].on('response_done', site_stop)
    get._streams[stream].request_done(stream, [])
    run()
    return time.time() - t0
Пример #2
0
def http_siteget(http1, http2, site):
    resp = {'text': '', 'assetlist': []}

    def site_start(status, phrase, headers):
        if status != '200':
            print 'Connection Failed: ' + site

    def site_body(chunk):
        resp['text'] += chunk

    def site_stop(trailers):
        print 'HTTP:',
        assetlist = json.loads(resp['text'])['list']
        for asset in assetlist:
            http_assetget(http1, http2, asset, httpclient)
        print
        stop()

    t0 = time.time()
    httpclient = HttpClient()
    get = httpclient.exchange()
    get.on('response_start', site_start)
    get.on('response_body', site_body)
    get.on('response_done', site_stop)
    uri = http1 + '/site/' + str(site)
    get.request_start('GET', uri, [])
    get.request_done([])
    run()
    return time.time() - t0
Пример #3
0
def hello(host):
    resp = {'text': '', 'sitelist': []}

    def hello_start(status, phrase, headers):
        if status == '200':
            print 'Connection Successful!\nDownloading sitelist.'

    def hello_body(chunk):
        resp['text'] += chunk

    def hello_stop(trailers):
        resp['sitelist'] = json.loads(resp['text'])
        stop()

    def hello_err(err):
        print 'Connection could not be completed...'
        stop()
        exit()

    httpclient = HttpClient()
    httpclient.connect_timeout = 5
    hello = httpclient.exchange()
    hello.on('response_start', hello_start)
    hello.on('response_body', hello_body)
    hello.on('response_done', hello_stop)
    hello.on('error', hello_err)
    uri = host + '/hello'
    hello.request_start('GET', uri, [])
    hello.request_done([])
    run()
    return resp['sitelist']
Пример #4
0
def http_siteget(http1, http2, site):
    resp = {'text': '', 'assetlist': []}

    def site_start(status, phrase, headers):
        if status != '200':
            print 'Connection Failed: ' + site

    def site_body(chunk):
        resp['text'] += chunk

    def site_stop(trailers):
        print 'HTTP:',
        assetlist = json.loads(resp['text'])['list']
        for asset in assetlist:
            http_assetget(http1, http2, asset, httpclient)
        print
        stop()

    t0 = time.time()
    httpclient = HttpClient()
    get = httpclient.exchange()
    get.on('response_start', site_start)
    get.on('response_body', site_body)
    get.on('response_done', site_stop)
    uri = http1 + '/site/' + str(site)
    get.request_start('GET', uri, [])
    get.request_done([])
    run()
    return time.time() - t0
Пример #5
0
def test_client(request_uri, out, err):
    "A simple demonstration of a client."
    from thor.loop import stop, run

    c = HttpClient()
    c.connect_timeout = 5
    x = c.exchange()

    @on(x)
    def response_start(status, phrase, headers):
        "Print the response headers."
        print "HTTP/%s %s %s" % (x.res_version, status, phrase)
        print "\n".join(["%s:%s" % header for header in headers])
        print

    @on(x)
    def error(err_msg):
        if err_msg:
            err("*** ERROR: %s (%s)\n" %
                (err_msg.desc, err_msg.detail)
            )
        stop()

    x.on('response_body', out)

    @on(x)
    def response_done(trailers):
        stop()

    x.request_start("GET", request_uri, [])
    x.request_done([])
    run()
Пример #6
0
def hello(host):
    resp = {'text': '', 'sitelist': []}

    def hello_start(status, phrase, headers):
        if status == '200':
            print 'Connection Successful!\nDownloading sitelist.'

    def hello_body(chunk):
        resp['text'] += chunk

    def hello_stop(trailers):
        resp['sitelist'] = json.loads(resp['text'])
        stop()

    def hello_err(err):
        print 'Connection could not be completed...'
        stop()
        exit()

    httpclient = HttpClient()
    httpclient.connect_timeout = 5
    hello = httpclient.exchange()
    hello.on('response_start', hello_start)
    hello.on('response_body', hello_body)
    hello.on('response_done', hello_stop)
    hello.on('error', hello_err)
    uri = host + '/hello'
    hello.request_start('GET', uri, [])
    hello.request_done([])
    run()
    return resp['sitelist']
Пример #7
0
def spdy_siteget(spdy1, spdy2, site):
    resp = {'text': '', 'assetlist': []}

    def site_start(status, phrase, headers):
        if status != '200':
            print 'Connection Failed: ' + site

    def site_body(chunk):
        resp['text'] += chunk

    def site_stop(trailers):
        assetlist = json.loads(resp['text'])['list']
        print 'SPDY:',
        for asset in assetlist:
            spdy_assetget(spdy1, spdy2, asset, spdyclient)
        print
        stop()

    t0 = time.time()
    spdyclient = SpdyClient()
    get = spdyclient.exchange()
    uri = spdy1 + '/site/' + str(site)
    stream = get.request_start('GET', uri, [])
    get._streams[stream].on('response_start', site_start)
    get._streams[stream].on('response_body', site_body)
    get._streams[stream].on('response_done', site_stop)
    get._streams[stream].request_done(stream, [])
    run()
    return time.time() - t0
Пример #8
0
def test_client(request_uri, out, err):  # pragma: no coverage
    "A simple demonstration of a client."
    from thor.loop import stop, run

    c = HttpClient()
    c.connect_timeout = 5
    c.careful = False
    x = c.exchange()

    @on(x)
    def response_start(status, phrase, headers):
        "Print the response headers."
        out(b"HTTP/%s %s %s\n" % (x.res_version, status, phrase))
        out(b"\n".join([b"%s:%s" % header for header in headers]))
        print()
        print()

    @on(x)
    def error(err_msg):
        if err_msg:
            err("\033[1;31m*** ERROR:\033[0;39m %s (%s)\n" % (err_msg.desc, err_msg.detail))
        if not err_msg.client_recoverable:
            stop()

    x.on('response_body', out)

    @on(x)
    def response_done(trailers):
        thor.schedule(1, stop)

    x.request_start(b"GET", request_uri, [])
    x.request_done([])
    run()
Пример #9
0
def collect(host, data):
    def collect_start(status, phrase, headers):
        if status != '200':
            print 'Uploading data...'

    def collect_body(chunk):
        pass

    def collect_stop(trailers):
        stop()

    httpclient = HttpClient()
    collect = httpclient.exchange()
    collect.on('response_start', collect_start)
    collect.on('response_body', collect_body)
    collect.on('response_done', collect_stop)
    collect.request_start('POST', host, [])
    collect.request_body(data)
    collect.request_done([])
    run()
    return "Upload Complete"
Пример #10
0
def collect(host, data):

    def collect_start(status, phrase, headers):
        if status != '200':
            print 'Uploading data...'

    def collect_body(chunk):
        pass

    def collect_stop(trailers):
        stop()

    httpclient = HttpClient()
    collect = httpclient.exchange()
    collect.on('response_start', collect_start)
    collect.on('response_body', collect_body)
    collect.on('response_done', collect_stop)
    collect.request_start('POST', host, [])
    collect.request_body(data)
    collect.request_done([])
    run()
    return "Upload Complete"
Пример #11
0
Файл: tcp.py Проект: mnot/thor
            else:
                args = why
            err_id = args[0]
            err_str = args[1]
        self._error_sent = True
        self.unregister_fd()
        self.emit("connect_error", err_type, err_id, err_str)
        if close:
            self.sock.close()


if __name__ == "__main__":
    # quick demo server
    from thor.loop import run, stop

    server = TcpServer(b"localhost", int(sys.argv[-1]))

    def handle_conn(conn):
        conn.pause(False)

        def echo(chunk):
            if chunk.strip().lower() in ["quit", "stop"]:
                stop()
            else:
                conn.write("-> %s" % chunk)

        conn.on("data", echo)

    server.on("connect", handle_conn)
    run()
Пример #12
0
        @on(x, 'request_body')
        def body(chunk):
            up['inp'] += chunk

        @on(x, 'request_done')
        def done(trailers):
            with open(os.path.join(conf.outdir, conf.outfile), 'a') as f:
                f.write(up['inp'])
                f.write('\n')
                f.close()
            print 'finished capture'
            x.response_start(200, 'OK', [])
            x.response_done([])

    capture_serve = HttpServer(host='', port=conf.capture_port)
    capture_serve.on('exchange', capture_handler)


if __name__ == '__main__':
    args = get_args()

    try:
        os.mkdir(conf.outdir)
    except OSError:
        pass

    capture_main(conf)
    spdy_main(conf)
    http_main(conf)
    run()