You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2014/10/03 00:41:21 UTC
git commit: Converted diagnosis socket Info to a struct.
Repository: mesos
Updated Branches:
refs/heads/master a44d61d8d -> e32163cee
Converted diagnosis socket Info to a struct.
Review: https://reviews.apache.org/r/26290
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/e32163ce
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/e32163ce
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/e32163ce
Branch: refs/heads/master
Commit: e32163ceeac4ebd99ed75733d7caaeaa2ebe0602
Parents: a44d61d
Author: Jie Yu <yu...@gmail.com>
Authored: Thu Oct 2 15:37:31 2014 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Thu Oct 2 15:37:41 2014 -0700
----------------------------------------------------------------------
src/linux/routing/diagnosis/diagnosis.hpp | 42 ++++++++------------
.../isolators/network/port_mapping.cpp | 12 +++---
src/tests/routing_tests.cpp | 4 +-
3 files changed, 23 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/e32163ce/src/linux/routing/diagnosis/diagnosis.hpp
----------------------------------------------------------------------
diff --git a/src/linux/routing/diagnosis/diagnosis.hpp b/src/linux/routing/diagnosis/diagnosis.hpp
index 2edde67..9161841 100644
--- a/src/linux/routing/diagnosis/diagnosis.hpp
+++ b/src/linux/routing/diagnosis/diagnosis.hpp
@@ -60,9 +60,8 @@ const int ALL = MAX - 1;
// The diagnosis information of a socket. We only included a few
// members of 'struct idiagnl_msg' from libnl3-idiag, but more could
// be added later on.
-class Info
+struct Info
{
-public:
Info(int _family,
int _state,
const Option<uint16_t>& _sourcePort,
@@ -70,39 +69,30 @@ public:
const Option<net::IP>& _sourceIP,
const Option<net::IP>& _destinationIP,
const Option<struct tcp_info>& _tcpInfo)
- : family_(_family),
- state_(_state),
- sourcePort_(_sourcePort),
- destinationPort_(_destinationPort),
- sourceIP_(_sourceIP),
- destinationIP_(_destinationIP),
- tcpInfo_(_tcpInfo) {}
-
- int family() const { return family_; }
- int state() const { return state_; }
- const Option<uint16_t>& sourcePort() const { return sourcePort_; }
- const Option<uint16_t>& destinationPort() const { return destinationPort_; }
- const Option<net::IP>& sourceIP() const { return sourceIP_; }
- const Option<net::IP>& destinationIP() const { return destinationIP_; }
- const Option<struct tcp_info>& tcpInfo() const { return tcpInfo_; }
-
-private:
- int family_;
- int state_;
+ : family(_family),
+ state(_state),
+ sourcePort(_sourcePort),
+ destinationPort(_destinationPort),
+ sourceIP(_sourceIP),
+ destinationIP(_destinationIP),
+ tcpInfo(_tcpInfo) {}
+
+ int family;
+ int state;
// sourcePort, destinationPort, sourceIP and destinationIP should
// all be present because this version of kernel API that libnl3
// uses can only return TCP sockets. We leave them as optional here
// because future support of other families could leave them as
// empty values.
- Option<uint16_t> sourcePort_;
- Option<uint16_t> destinationPort_;
- Option<net::IP> sourceIP_;
- Option<net::IP> destinationIP_;
+ Option<uint16_t> sourcePort;
+ Option<uint16_t> destinationPort;
+ Option<net::IP> sourceIP;
+ Option<net::IP> destinationIP;
// tcp_info is included in the kernel header files so we expose it
// directly.
- Option<struct tcp_info> tcpInfo_;
+ Option<struct tcp_info> tcpInfo;
};
http://git-wip-us.apache.org/repos/asf/mesos/blob/e32163ce/src/slave/containerizer/isolators/network/port_mapping.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/network/port_mapping.cpp b/src/slave/containerizer/isolators/network/port_mapping.cpp
index 96d68ad..88ae509 100644
--- a/src/slave/containerizer/isolators/network/port_mapping.cpp
+++ b/src/slave/containerizer/isolators/network/port_mapping.cpp
@@ -555,27 +555,25 @@ int PortMappingStatistics::execute()
foreach (const diagnosis::socket::Info& info, infos.get()) {
// We double check on family regardless.
- if (info.family() != AF_INET) {
+ if (info.family != AF_INET) {
continue;
}
// These connections have already been established, so they should
// have a valid destination IP.
- CHECK_SOME(info.destinationIP());
+ CHECK_SOME(info.destinationIP);
// We don't care about the RTT value of a local connection.
// TODO(chzhcn): Technically, we should check if the destination
// IP is any of the 127.0.0.1/8 IP addresses.
- if (info.destinationIP().get().address() == LOOPBACK_IP.address()) {
+ if (info.destinationIP.get().address() == LOOPBACK_IP.address()) {
continue;
}
- Option<struct tcp_info> tcpInfo = info.tcpInfo();
-
// The connection was already established. It should definitely
// have a tcp_info available.
- CHECK_SOME(tcpInfo);
- RTTs.push_back(tcpInfo.get().tcpi_rtt);
+ CHECK_SOME(info.tcpInfo);
+ RTTs.push_back(info.tcpInfo.get().tcpi_rtt);
}
// Only print to stdout when we have results.
http://git-wip-us.apache.org/repos/asf/mesos/blob/e32163ce/src/tests/routing_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/routing_tests.cpp b/src/tests/routing_tests.cpp
index 4ef9fac..bd4d071 100644
--- a/src/tests/routing_tests.cpp
+++ b/src/tests/routing_tests.cpp
@@ -240,8 +240,8 @@ TEST_F(RoutingTest, INETSockets)
foreach (const diagnosis::socket::Info& info, infos.get()) {
// Both source and destination IPs should be present since
// 'AF_INET' is asked for.
- EXPECT_SOME(info.sourceIP());
- EXPECT_SOME(info.destinationIP());
+ EXPECT_SOME(info.sourceIP);
+ EXPECT_SOME(info.destinationIP);
}
}