Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1225)

Side by Side Diff: net/tools/quic/quic_reliable_server_stream.cc

Issue 103973007: Land Recent QUIC Changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix for android compile error Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(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/tools/quic/quic_reliable_server_stream.h"
6
7 #include "base/logging.h"
8 #include "base/memory/singleton.h"
9 #include "net/tools/quic/quic_in_memory_cache.h"
10
11 using base::StringPiece;
12
13 namespace net {
14 namespace tools {
15
16 QuicReliableServerStream::QuicReliableServerStream(QuicStreamId id,
17 QuicSession* session)
18 : ReliableQuicStream(id, session) {
19 }
20
21
22 void QuicReliableServerStream::SendResponse() {
23 // Find response in cache. If not found, send error response.
24 const QuicInMemoryCache::Response* response =
25 QuicInMemoryCache::GetInstance()->GetResponse(headers_);
26 if (response == NULL) {
27 SendErrorResponse();
28 return;
29 }
30
31 DLOG(INFO) << "Sending response for stream " << id();
32 SendHeaders(response->headers());
33 WriteData(response->body(), true);
34 }
35
36 void QuicReliableServerStream::SendErrorResponse() {
37 DLOG(INFO) << "Sending error response for stream " << id();
38 BalsaHeaders headers;
39 headers.SetResponseFirstlineFromStringPieces(
40 "HTTP/1.1", "500", "Server Error");
41 headers.ReplaceOrAppendHeader("content-length", "3");
42 SendHeaders(headers);
43 WriteData("bad", true);
44 }
45
46 QuicConsumedData QuicReliableServerStream::WriteData(StringPiece data,
47 bool fin) {
48 // We only support SPDY and HTTP, and neither handles bidirectional streaming.
49 if (!read_side_closed()) {
50 CloseReadSide();
51 }
52 return ReliableQuicStream::WriteData(data, fin);
53 }
54
55 } // namespace tools
56 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/quic_reliable_server_stream.h ('k') | net/tools/quic/quic_reliable_server_stream_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698