Skip to content

Commit

Permalink
Obey RFC2616
Browse files Browse the repository at this point in the history
https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
An HTTP/1.1 proxy MUST ensure that any request message it forwards does contain an appropriate Host header field that identifies the service being requested by the proxy. All Internet-based HTTP/1.1 servers MUST respond with a 400 (Bad Request) status code to any HTTP/1.1 request message which lacks a Host header field.
  • Loading branch information
Mervent committed Mar 16, 2022
1 parent 7c96730 commit fe495ce
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions pproxy/proto.py
Original file line number Diff line number Diff line change
Expand Up @@ -328,8 +328,8 @@ async def connected(writer):
writer.write(f'{method} {newpath} {ver}\r\n{lines}\r\n\r\n'.encode())
return True
return user, host_name, port, connected
async def connect(self, reader_remote, writer_remote, rauth, host_name, port, myhost, **kw):
writer_remote.write(f'CONNECT {host_name}:{port} HTTP/1.1\r\nHost: {myhost}'.encode() + (b'\r\nProxy-Authorization: Basic '+base64.b64encode(rauth) if rauth else b'') + b'\r\n\r\n')
async def connect(self, reader_remote, writer_remote, rauth, host_name, port, **kw):
writer_remote.write(f'CONNECT {host_name}:{port} HTTP/1.1\r\nHost: {host_name}:{port}'.encode() + (b'\r\nProxy-Authorization: Basic '+base64.b64encode(rauth) if rauth else b'') + b'\r\n\r\n')
await reader_remote.read_until(b'\r\n\r\n')
async def http_channel(self, reader, writer, stat_bytes, stat_conn):
try:
Expand Down

0 comments on commit fe495ce

Please sign in to comment.