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 17namespace net { 18 19enum FlipHandlerType { 20 FLIP_HANDLER_PROXY, 21 FLIP_HANDLER_SPDY_SERVER, 22 FLIP_HANDLER_HTTP_SERVER 23}; 24 25class 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 65class 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