chromium/components/winhttp/proxy_info.h

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_WINHTTP_PROXY_INFO_H_
#define COMPONENTS_WINHTTP_PROXY_INFO_H_

#include <string>

namespace winhttp {

struct ProxyInfo {
  ProxyInfo();
  ProxyInfo(bool auto_detect,
            const std::wstring& auto_config_url,
            const std::wstring& proxy,
            const std::wstring& proxy_bypass);
  ~ProxyInfo();

  ProxyInfo(const ProxyInfo& proxy_info);
  ProxyInfo& operator=(const ProxyInfo& proxy_info);

  ProxyInfo(ProxyInfo&& proxy_info);
  ProxyInfo& operator=(ProxyInfo&& proxy_info);

  // Specifies the configuration is Web Proxy Auto Discovery (WPAD).
  bool auto_detect = false;

  // The url of the proxy auto configuration (PAC) script, if known.
  std::wstring auto_config_url;

  // Named proxy information.
  // The proxy string is usually something as "http=foo:80;https=bar:8080".
  // According to the documentation for WINHTTP_PROXY_INFO, multiple proxies
  // are separated by semicolons or whitespace.
  std::wstring proxy;
  std::wstring proxy_bypass;
};

}  // namespace winhttp

#endif  // COMPONENTS_WINHTTP_PROXY_INFO_H_