OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 // A toy server, which listens on a specified address for QUIC traffic and | 5 // A toy server, which listens on a specified address for QUIC traffic and |
6 // handles incoming responses. | 6 // handles incoming responses. |
7 | 7 |
8 #ifndef NET_TOOLS_QUIC_QUIC_SERVER_H_ | 8 #ifndef NET_TOOLS_QUIC_QUIC_SERVER_H_ |
9 #define NET_TOOLS_QUIC_QUIC_SERVER_H_ | 9 #define NET_TOOLS_QUIC_QUIC_SERVER_H_ |
10 | 10 |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 #include "net/base/ip_endpoint.h" | 12 #include "net/base/ip_endpoint.h" |
| 13 #include "net/quic/quic_config.h" |
13 #include "net/quic/quic_framer.h" | 14 #include "net/quic/quic_framer.h" |
14 #include "net/tools/flip_server/epoll_server.h" | 15 #include "net/tools/flip_server/epoll_server.h" |
15 #include "net/tools/quic/quic_dispatcher.h" | 16 #include "net/tools/quic/quic_dispatcher.h" |
16 | 17 |
17 namespace net { | 18 namespace net { |
| 19 |
| 20 class QuicCryptoServerConfig; |
| 21 |
18 namespace tools { | 22 namespace tools { |
19 | 23 |
20 class QuicDispatcher; | 24 class QuicDispatcher; |
21 | 25 |
22 class QuicServer : public EpollCallbackInterface { | 26 class QuicServer : public EpollCallbackInterface { |
23 public: | 27 public: |
24 QuicServer(); | 28 QuicServer(); |
25 virtual ~QuicServer(); | 29 virtual ~QuicServer(); |
26 | 30 |
27 // Start listening on the specified address. | 31 // Start listening on the specified address. |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 // are dropped. | 79 // are dropped. |
76 int packets_dropped_; | 80 int packets_dropped_; |
77 | 81 |
78 // True if the kernel supports SO_RXQ_OVFL, the number of packets dropped | 82 // True if the kernel supports SO_RXQ_OVFL, the number of packets dropped |
79 // because the socket would otherwise overflow. | 83 // because the socket would otherwise overflow. |
80 bool overflow_supported_; | 84 bool overflow_supported_; |
81 | 85 |
82 // If true, use recvmmsg for reading. | 86 // If true, use recvmmsg for reading. |
83 bool use_recvmmsg_; | 87 bool use_recvmmsg_; |
84 | 88 |
| 89 // config_ contains non-crypto parameters that are negotiated in the crypto |
| 90 // handshake. |
| 91 QuicConfig config_; |
| 92 // crypto_config_ contains crypto parameters for the handshake. |
| 93 QuicCryptoServerConfig crypto_config_; |
| 94 |
85 DISALLOW_COPY_AND_ASSIGN(QuicServer); | 95 DISALLOW_COPY_AND_ASSIGN(QuicServer); |
86 }; | 96 }; |
87 | 97 |
88 } // namespace tools | 98 } // namespace tools |
89 } // namespace net | 99 } // namespace net |
90 | 100 |
91 #endif // NET_TOOLS_QUIC_QUIC_SERVER_H_ | 101 #endif // NET_TOOLS_QUIC_QUIC_SERVER_H_ |
OLD | NEW |