MCPcopy Create free account
hub / github.com/apache/mesos / connect

Function connect

3rdparty/libprocess/src/http.cpp:1514–1566  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1512
1513
1514Future<Connection> connect(
1515 const network::Address& address,
1516 Scheme scheme,
1517 const Option<string>& peer_hostname)
1518{
1519 SocketImpl::Kind kind;
1520
1521 switch (scheme) {
1522 case Scheme::HTTP:
1523 case Scheme::HTTP_UNIX:
1524 kind = SocketImpl::Kind::POLL;
1525 break;
1526#ifdef USE_SSL_SOCKET
1527 case Scheme::HTTPS:
1528 kind = SocketImpl::Kind::SSL;
1529 break;
1530#endif
1531 }
1532
1533 Try<network::Socket> socket = network::Socket::create(
1534 address.family(),
1535 kind);
1536
1537 if (socket.isError()) {
1538 return Failure("Failed to create socket: " + socket.error());
1539 }
1540
1541 Future<Nothing> connected = [&]() {
1542 switch (scheme) {
1543 case Scheme::HTTP:
1544 case Scheme::HTTP_UNIX:
1545 return socket->connect(address);
1546#ifdef USE_SSL_SOCKET
1547 case Scheme::HTTPS:
1548 return socket->connect(
1549 address,
1550 network::openssl::create_tls_client_config(peer_hostname));
1551#endif
1552 }
1553 UNREACHABLE();
1554 }();
1555
1556 return connected
1557 .then([socket, address]() -> Future<Connection> {
1558 Try<network::Address> localAddress = socket->address();
1559 if (localAddress.isError()) {
1560 return Failure("Failed to get socket's local address: " +
1561 localAddress.error());
1562 }
1563
1564 return Connection(socket.get(), localAddress.get(), address);
1565 });
1566}
1567
1568
1569Future<Connection> connect(

Callers 1

requestFunction · 0.70

Calls 15

FailureClass · 0.85
create_tls_client_configFunction · 0.85
NoneClass · 0.85
formatFunction · 0.85
getOrElseMethod · 0.80
errorMethod · 0.65
createFunction · 0.50
ConnectionClass · 0.50
getIPFunction · 0.50
familyMethod · 0.45
isErrorMethod · 0.45
connectMethod · 0.45

Tested by

no test coverage detected