• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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 #ifndef NET_TOOLS_FLIP_PROXY_CONFIG_H
6 #define NET_TOOLS_FLIP_PROXY_CONFIG_H
7 #pragma once
8 
9 #include <arpa/inet.h>  // in_addr_t
10 
11 #include <string>
12 #include <vector>
13 
14 #include "base/logging.h"
15 #include "net/tools/flip_server/create_listener.h"
16 
17 namespace net {
18 
19 enum FlipHandlerType {
20     FLIP_HANDLER_PROXY,
21     FLIP_HANDLER_SPDY_SERVER,
22     FLIP_HANDLER_HTTP_SERVER
23 };
24 
25 class FlipAcceptor {
26  public:
27   FlipAcceptor(enum FlipHandlerType flip_handler_type,
28                std::string listen_ip,
29                std::string listen_port,
30                std::string ssl_cert_filename,
31                std::string ssl_key_filename,
32                std::string http_server_ip,
33                std::string http_server_port,
34                std::string https_server_ip,
35                std::string https_server_port,
36                int spdy_only,
37                int accept_backlog_size,
38                bool disable_nagle,
39                int accepts_per_wake,
40                bool reuseport,
41                bool wait_for_iface,
42                void *memory_cache);
43   ~FlipAcceptor();
44 
45   enum FlipHandlerType flip_handler_type_;
46   std::string listen_ip_;
47   std::string listen_port_;
48   std::string ssl_cert_filename_;
49   std::string ssl_key_filename_;
50   std::string http_server_ip_;
51   std::string http_server_port_;
52   std::string https_server_ip_;
53   std::string https_server_port_;
54   int spdy_only_;
55   int accept_backlog_size_;
56   bool disable_nagle_;
57   int accepts_per_wake_;
58   int listen_fd_;
59   void* memory_cache_;
60   int ssl_session_expiry_;
61   bool ssl_disable_compression_;
62   int idle_socket_timeout_s_;
63 };
64 
65 class FlipConfig {
66  public:
67   FlipConfig();
68   ~FlipConfig();
69 
70   void AddAcceptor(enum FlipHandlerType flip_handler_type,
71                    std::string listen_ip,
72                    std::string listen_port,
73                    std::string ssl_cert_filename,
74                    std::string ssl_key_filename,
75                    std::string http_server_ip,
76                    std::string http_server_port,
77                    std::string https_server_ip,
78                    std::string https_server_port,
79                    int spdy_only,
80                    int accept_backlog_size,
81                    bool disable_nagle,
82                    int accepts_per_wake,
83                    bool reuseport,
84                    bool wait_for_iface,
85                    void *memory_cache);
86 
87   std::vector<FlipAcceptor*> acceptors_;
88   double server_think_time_in_s_;
89   enum logging::LoggingDestination log_destination_;
90   std::string log_filename_;
91   bool wait_for_iface_;
92   int ssl_session_expiry_;
93   bool ssl_disable_compression_;
94   int idle_socket_timeout_s_;
95 };
96 
97 }  // namespace
98 
99 #endif  // NET_TOOLS_FLIP_PROXY_CONFIG_H
100 
101