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);
   }
 }