Skip to content

Commit

Permalink
Add use of timestamps in http example.
Browse files Browse the repository at this point in the history
  • Loading branch information
ln5 committed Feb 1, 2013
1 parent 2b0311a commit 1c33b3c
Showing 1 changed file with 31 additions and 16 deletions.
47 changes: 31 additions & 16 deletions src/examples/http.py
Original file line number Diff line number Diff line change
@@ -1,44 +1,59 @@
#! /usr/bin/env python

# Copyright (c) 2011-2012, Linus Nordberg
# Copyright (c) 2011-2013, Linus Nordberg
# See LICENSE for details.

import sys
from twisted.internet import reactor, endpoints
from socksclient import SOCKSv4ClientProtocol, SOCKSWrapper
from twisted.web import client

def wrappercb(proxy):
print "connected to proxy", proxy
pass
class mything:
def __init__(self):
self.npages = 0
self.timestamps = {}

def clientcb(content):
print "ok, got: %s" % content[:120]
reactor.stop()
def wrappercb(self, proxy):
print "connected to proxy", proxy

def main():
def sockswrapper(proxy, url):
def clientcb(self, content):
print "ok, got: %s" % content[:120]
print "timetamps " + repr(self.timestamps)
self.npages -= 1
if self.npages == 0:
reactor.stop()

def sockswrapper(self, proxy, url):
dest = client._parse(url) # scheme, host, port, path
endpoint = endpoints.TCP4ClientEndpoint(reactor, dest[1], dest[2])
return SOCKSWrapper(reactor, proxy[1], proxy[2], endpoint)
return SOCKSWrapper(reactor, proxy[1], proxy[2], endpoint, self.timestamps)

def main():
thing = mything()

# Mandatory first argument is a URL to fetch over Tor (or whatever
# SOCKS proxy that run on localhost:9050).
url = sys.argv[1]
proxy = (None, 'localhost', 9050, True, None, None)

f = client.HTTPClientFactory(url)
f.deferred.addCallback(clientcb)
sw = sockswrapper(proxy, url)
f.deferred.addCallback(thing.clientcb)
sw = thing.sockswrapper(proxy, url)
d = sw.connect(f)
d.addCallback(wrappercb)
d.addCallback(thing.wrappercb)
thing.npages += 1

# Optional second argument is a URL to fetch over whatever SOCKS
# proxy that runs on localhost:1080 (possibly `twistd -n socks').
if len(sys.argv) > 2:
url2 = sys.argv[2]
proxy2 = (None, 'localhost', 1080, True, None, None)
f2 = client.HTTPClientFactory(url)
f2.deferred.addCallback(clientcb)
sw2 = sockswrapper(proxy2, url2)
f2.deferred.addCallback(thing.clientcb)
sw2 = thing.sockswrapper(proxy2, url2)
d2 = sw2.connect(f2)
d2.addCallback(wrappercb)
d2.addCallback(thing.wrappercb)
thing.npages += 1

reactor.run()

Expand Down

0 comments on commit 1c33b3c

Please sign in to comment.