1731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Use of this source code is governed by a BSD-style license that can be
3731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// found in the LICENSE file.
4731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
5731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#ifndef NET_HTTP_HTTP_PROXY_UTILS_H_
6731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#define NET_HTTP_HTTP_PROXY_UTILS_H_
7731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#pragma once
8731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
9731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include <string>
10731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
11731df977c0511bca2206b5f333555b1205ff1f43Iain Merricknamespace net {
12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
13731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickstruct HttpRequestInfo;
14731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass HttpRequestHeaders;
15731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass HostPortPair;
16731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
17731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// The HTTP CONNECT method for establishing a tunnel connection is documented
18731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// in draft-luotonen-web-proxy-tunneling-01.txt and RFC 2817, Sections 5.2 and
19731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// 5.3.
20731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvoid BuildTunnelRequest(const HttpRequestInfo& request_info,
21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                        const HttpRequestHeaders& auth_headers,
22731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                        const HostPortPair& endpoint,
23731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                        std::string* request_line,
24731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                        HttpRequestHeaders* request_headers);
25731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
26731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}  // namespace net
27731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
28731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#endif  // NET_HTTP_HTTP_PROXY_UTILS_H_
29