1*1a96fba6SXin Li // Copyright 2014 The Chromium OS Authors. All rights reserved. 2*1a96fba6SXin Li // Use of this source code is governed by a BSD-style license that can be 3*1a96fba6SXin Li // found in the LICENSE file. 4*1a96fba6SXin Li 5*1a96fba6SXin Li #include <brillo/http/http_transport.h> 6*1a96fba6SXin Li 7*1a96fba6SXin Li #include <brillo/http/http_transport_curl.h> 8*1a96fba6SXin Li 9*1a96fba6SXin Li namespace brillo { 10*1a96fba6SXin Li namespace http { 11*1a96fba6SXin Li 12*1a96fba6SXin Li const char kErrorDomain[] = "http_transport"; 13*1a96fba6SXin Li const char kDirectProxy[] = "direct://"; 14*1a96fba6SXin Li CreateDefault()15*1a96fba6SXin Listd::shared_ptr<Transport> Transport::CreateDefault() { 16*1a96fba6SXin Li return std::make_shared<http::curl::Transport>(std::make_shared<CurlApi>()); 17*1a96fba6SXin Li } 18*1a96fba6SXin Li CreateDefaultWithProxy(const std::string & proxy)19*1a96fba6SXin Listd::shared_ptr<Transport> Transport::CreateDefaultWithProxy( 20*1a96fba6SXin Li const std::string& proxy) { 21*1a96fba6SXin Li if (proxy.empty() || proxy == kDirectProxy) { 22*1a96fba6SXin Li return CreateDefault(); 23*1a96fba6SXin Li } else { 24*1a96fba6SXin Li return std::make_shared<http::curl::Transport>(std::make_shared<CurlApi>(), 25*1a96fba6SXin Li proxy); 26*1a96fba6SXin Li } 27*1a96fba6SXin Li } 28*1a96fba6SXin Li CertificateToPath(Transport::Certificate cert)29*1a96fba6SXin Libase::FilePath Transport::CertificateToPath(Transport::Certificate cert) { 30*1a96fba6SXin Li const char* str; 31*1a96fba6SXin Li switch (cert) { 32*1a96fba6SXin Li case Certificate::kDefault: 33*1a96fba6SXin Li str = 34*1a96fba6SXin Li #ifdef __ANDROID__ 35*1a96fba6SXin Li "/system/etc/security/cacerts_google"; 36*1a96fba6SXin Li #else 37*1a96fba6SXin Li "/usr/share/chromeos-ca-certificates"; 38*1a96fba6SXin Li #endif 39*1a96fba6SXin Li break; 40*1a96fba6SXin Li case Certificate::kHermesProd: 41*1a96fba6SXin Li str = "/usr/share/hermes-ca-certificates/prod"; 42*1a96fba6SXin Li break; 43*1a96fba6SXin Li case Certificate::kHermesTest: 44*1a96fba6SXin Li str = "/usr/share/hermes-ca-certificates/test"; 45*1a96fba6SXin Li break; 46*1a96fba6SXin Li case Certificate::kNss: 47*1a96fba6SXin Li str = "/etc/ssl/certs"; 48*1a96fba6SXin Li break; 49*1a96fba6SXin Li default: 50*1a96fba6SXin Li CHECK(false) << "Invalid certificate"; 51*1a96fba6SXin Li break; 52*1a96fba6SXin Li } 53*1a96fba6SXin Li return base::FilePath(str); 54*1a96fba6SXin Li } 55*1a96fba6SXin Li 56*1a96fba6SXin Li } // namespace http 57*1a96fba6SXin Li } // namespace brillo 58