OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/quic/quic_server.h" | 5 #include "net/quic/quic_server.h" |
6 | 6 |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include "net/base/ip_endpoint.h" | 9 #include "net/base/ip_endpoint.h" |
10 #include "net/base/net_errors.h" | 10 #include "net/base/net_errors.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 namespace net { | 22 namespace net { |
23 | 23 |
24 namespace { | 24 namespace { |
25 | 25 |
26 const char kSourceAddressTokenSecret[] = "secret"; | 26 const char kSourceAddressTokenSecret[] = "secret"; |
27 | 27 |
28 // Allocate some extra space so we can send an error if the client goes over | 28 // Allocate some extra space so we can send an error if the client goes over |
29 // the limit. | 29 // the limit. |
30 const int kReadBufferSize = 2 * kMaxPacketSize; | 30 const int kReadBufferSize = 2 * kMaxPacketSize; |
31 | 31 |
32 const uint32 kServerInitialFlowControlWindow = 100 * kMaxPacketSize; | |
33 | |
34 } // namespace | 32 } // namespace |
35 | 33 |
36 QuicServer::QuicServer(const QuicConfig& config, | 34 QuicServer::QuicServer(const QuicConfig& config, |
37 const QuicVersionVector& supported_versions) | 35 const QuicVersionVector& supported_versions) |
38 : helper_(base::MessageLoop::current()->message_loop_proxy().get(), | 36 : helper_(base::MessageLoop::current()->message_loop_proxy().get(), |
39 &clock_, | 37 &clock_, |
40 QuicRandom::GetInstance()), | 38 QuicRandom::GetInstance()), |
41 config_(config), | 39 config_(config), |
42 crypto_config_(kSourceAddressTokenSecret, QuicRandom::GetInstance()), | 40 crypto_config_(kSourceAddressTokenSecret, QuicRandom::GetInstance()), |
43 supported_versions_(supported_versions), | 41 supported_versions_(supported_versions), |
44 read_pending_(false), | 42 read_pending_(false), |
45 synchronous_read_count_(0), | 43 synchronous_read_count_(0), |
46 read_buffer_(new IOBufferWithSize(kReadBufferSize)), | 44 read_buffer_(new IOBufferWithSize(kReadBufferSize)), |
47 weak_factory_(this) { | 45 weak_factory_(this) { |
48 Initialize(); | 46 Initialize(); |
49 } | 47 } |
50 | 48 |
51 void QuicServer::Initialize() { | 49 void QuicServer::Initialize() { |
52 // Initialize the in memory cache now. | 50 // Initialize the in memory cache now. |
53 QuicInMemoryCache::GetInstance(); | 51 QuicInMemoryCache::GetInstance(); |
54 | 52 |
55 scoped_ptr<CryptoHandshakeMessage> scfg( | 53 scoped_ptr<CryptoHandshakeMessage> scfg( |
56 crypto_config_.AddDefaultConfig(helper_.GetRandomGenerator(), | 54 crypto_config_.AddDefaultConfig( |
57 helper_.GetClock(), | 55 helper_.GetRandomGenerator(), helper_.GetClock(), |
58 QuicCryptoServerConfig::ConfigOptions())); | 56 QuicCryptoServerConfig::ConfigOptions())); |
59 | |
60 config_.SetInitialCongestionWindowToSend(kServerInitialFlowControlWindow); | |
61 } | 57 } |
62 | 58 |
63 QuicServer::~QuicServer() { | 59 QuicServer::~QuicServer() { |
64 } | 60 } |
65 | 61 |
66 int QuicServer::Listen(const IPEndPoint& address) { | 62 int QuicServer::Listen(const IPEndPoint& address) { |
67 scoped_ptr<UDPServerSocket> socket( | 63 scoped_ptr<UDPServerSocket> socket( |
68 new UDPServerSocket(&net_log_, NetLog::Source())); | 64 new UDPServerSocket(&net_log_, NetLog::Source())); |
69 | 65 |
70 socket->AllowAddressReuse(); | 66 socket->AllowAddressReuse(); |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 return; | 163 return; |
168 } | 164 } |
169 | 165 |
170 QuicEncryptedPacket packet(read_buffer_->data(), result, false); | 166 QuicEncryptedPacket packet(read_buffer_->data(), result, false); |
171 dispatcher_->ProcessPacket(server_address_, client_address_, packet); | 167 dispatcher_->ProcessPacket(server_address_, client_address_, packet); |
172 | 168 |
173 StartReading(); | 169 StartReading(); |
174 } | 170 } |
175 | 171 |
176 } // namespace net | 172 } // namespace net |
OLD | NEW |