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 2017/08/22 20:53:22 UTC

[2/8] mesos git commit: Removed diagnostic socket IPv4 assumptions.

Removed diagnostic socket IPv4 assumptions.

Don't assume the diagnostic socket only returns IPv4 addresses.

Review: https://reviews.apache.org/r/60493/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/5fb4281a
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/5fb4281a
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/5fb4281a

Branch: refs/heads/master
Commit: 5fb4281aae4b350ca20e9fe563c89d6a60763e2e
Parents: 9128060
Author: James Peach <jp...@apache.org>
Authored: Tue Aug 22 13:37:38 2017 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Tue Aug 22 13:37:38 2017 -0700

----------------------------------------------------------------------
 src/linux/routing/diagnosis/diagnosis.cpp | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/5fb4281a/src/linux/routing/diagnosis/diagnosis.cpp
----------------------------------------------------------------------
diff --git a/src/linux/routing/diagnosis/diagnosis.cpp b/src/linux/routing/diagnosis/diagnosis.cpp
index 36195ba..3e80a29 100644
--- a/src/linux/routing/diagnosis/diagnosis.cpp
+++ b/src/linux/routing/diagnosis/diagnosis.cpp
@@ -41,13 +41,19 @@ namespace socket {
 
 static Option<net::IP> IP(nl_addr* _ip)
 {
-  Option<net::IP> result;
   if (_ip != nullptr && nl_addr_get_len(_ip) != 0) {
-    struct in_addr* addr = (struct in_addr*) nl_addr_get_binary_addr(_ip);
-    result = net::IP(*addr);
+    if (nl_addr_get_family(_ip) == AF_INET) {
+      struct in_addr* addr = (struct in_addr*)nl_addr_get_binary_addr(_ip);
+      return net::IP(*addr);
+    }
+
+    if (nl_addr_get_family(_ip) == AF_INET6) {
+      struct in6_addr* addr = (struct in6_addr*)nl_addr_get_binary_addr(_ip);
+      return net::IP(*addr);
+    }
   }
 
-  return result;
+  return None();
 }