Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- print(webserver,port,conn,client_addr,data,method)
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- for key, value in blocked:
- if key == webserver and value is 1:
- print("That url is blocked!")
- conn.close()
- return
- # If the method is CONNECT, we know this is HTTPS.
- if method == "b'CONNECT":
- try:
- # Connect to the webserver..
- s.connect((webserver, port))
- reply = "HTTP/1.0 200 Connection established\r\n"
- reply += "Proxy-agent: Pyx\r\n"
- reply += "\r\n"
- print("[*] Sending connection established to server..")
- conn.sendall(reply.encode())
- except socket.error as err:
- print(err)
- return
- conn.setblocking(0)
- s.setblocking(0)
- print("[*] Websocket connection set up..")
- while True:
- try:
- request = conn.recv(MAX_DATA_RECV)
- s.sendall(request)
- except socket.error as err:
- pass
- try:
- reply = s.recv(MAX_DATA_RECV)
- conn.sendall(reply)
- except socket.error as err:
- pass
- print("[*] Sending response to client..")
- else:
- t0 = time.time()
- string_builder = bytearray("", 'utf-8')
- s.connect((webserver, port))
- print("[*] Sending request to server..")
- s.send(data)
- try:
- while True:
- reply = s.recv(MAX_DATA_RECV)
- if (len(reply) > 0):
- conn.send(reply)
- string_builder.extend(reply)
- else:
- break
- s.close()
- conn.close
- except socket.error:
- s.close()
- conn.close()
- sys.exit(1)
- print("[*] Sending response to client..")
- t1 = time.time()
- print("[*] Request took: " + str(t1-t0) + "s")
- timings[webserver] = t1-t0
- cache[webserver] = string_builder
- print("[*] Added to cache: " + webserver)
- s.close()
- conn.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement