OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "net/quic/http_request_line.h" | |
6 #include "net/quic/string_piece_utils.h" | |
7 | |
8 using std::string; | |
9 using base::StringPiece; | |
10 using net::StringPieceUtils; | |
11 using net::SpdyHeaderBlock; | |
12 | |
13 HttpRequestLine::HttpRequestLine(StringPiece method, | |
Ryan Hamilton
2014/06/19 00:15:44
I agree that HttpRequestInfo does not add a ton of
dmz
2014/06/19 21:17:02
You're right, I think I had seen only HttpRequestH
| |
14 StringPiece path, | |
15 StringPiece version, | |
16 StringPiece host) | |
17 : method_(method.as_string()), | |
18 path_(path.as_string()), | |
19 version_(version.as_string()), | |
20 host_(host.as_string()) { | |
21 } | |
22 | |
23 HttpRequestLine::~HttpRequestLine() { | |
24 } | |
25 | |
26 // static | |
27 HttpRequestLine* HttpRequestLine::FromSpdyHeaders( | |
28 const SpdyHeaderBlock& headers) { | |
29 typedef SpdyHeaderBlock::const_iterator BlockIt; | |
30 | |
31 BlockIt host_it = headers.find(":host"); | |
32 BlockIt path_it = headers.find(":path"); | |
33 BlockIt method_it = headers.find(":method"); | |
34 BlockIt end_it = headers.end(); | |
35 if (host_it == end_it || path_it == end_it || method_it == end_it) { | |
36 return NULL; | |
37 } | |
38 return new HttpRequestLine(method_it->second, | |
39 path_it->second, | |
40 "HTTP/1.1", | |
41 host_it->second); | |
42 } | |
43 | |
44 string HttpRequestLine::FullPath() const { | |
45 StringPiece uri = path_; | |
46 if (uri.size() == 0) { | |
47 return ""; | |
48 } | |
49 StringPiece host; | |
50 if (uri[0] == '/') { | |
51 host = host_; | |
52 } else if (StringPieceUtils::StartsWithIgnoreCase(uri, "https://")) { | |
53 uri.remove_prefix(8); | |
54 } else if (StringPieceUtils::StartsWithIgnoreCase(uri, "http://")) { | |
55 uri.remove_prefix(7); | |
56 } | |
57 return host.as_string() + uri.as_string(); | |
58 } | |
OLD | NEW |