Landed. Sorry for the noise.

On Wed, Nov 12, 2014 at 2:17 PM, Dominic Hamon <[email protected]>
wrote:

> https://reviews.apache.org/r/27932/
>
> On Wed, Nov 12, 2014 at 2:15 PM, Dominic Hamon <[email protected]>
> wrote:
>
>> thanks for the head's up - it didn't show up in my linux clang build.
>>
>> testing a fix now.
>>
>> On Wed, Nov 12, 2014 at 2:12 PM, Cody Maloney <[email protected]> wrote:
>>
>>> I'm getting a new warning with this on OS X w/ clang 3.5 which looks like
>>> it probably should be addressed (Add parens to call the node function):
>>>
>>> ../../../mesos_public/3rdparty/libprocess/src/process.cpp:1662:49:
>>> warning:
>>> address of function 'process::node' will always evaluate to 'true'
>>> [-Wbool-conversion]
>>>   VLOG(1) << "libprocess is initialized on " << node << " for " << cpus
>>>   ~~~~~~~                                       ^~~~
>>> ../../../mesos_public/3rdparty/libprocess/src/process.cpp:1662:49: note:
>>> prefix with the address-of operator to silence this warning
>>>   VLOG(1) << "libprocess is initialized on " << node << " for " << cpus
>>>                                                 ^
>>>                                                 &
>>>
>>> On Wed, Nov 12, 2014 at 1:05 PM, <[email protected]> wrote:
>>>
>>> > Repository: mesos
>>> > Updated Branches:
>>> >   refs/heads/master 3f693f23a -> 76bfb4930
>>> >
>>> >
>>> > libprocess:  Replaced the ip and port pairs from UPID class and process
>>> > namespace with Node class.
>>> >
>>> > At the moment, the Node class is used to keep a mapping from a socket
>>> to
>>> > the ip & port pair in the process namespace.
>>> > I want to propose to extend its use by replacing the ip & port fields
>>> from
>>> > the UPID class and process namespace with this type.
>>> >
>>> > Review: https://reviews.apache.org/r/27446
>>> >
>>> >
>>> > Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
>>> > Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/f64562fa
>>> > Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/f64562fa
>>> > Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/f64562fa
>>> >
>>> > Branch: refs/heads/master
>>> > Commit: f64562fa66a272b695560971d0e548d131f42682
>>> > Parents: 3f693f2
>>> > Author: Evelina Dumitrescu <[email protected]>
>>> > Authored: Wed Nov 12 12:56:23 2014 -0800
>>> > Committer: Dominic Hamon <[email protected]>
>>> > Committed: Wed Nov 12 12:56:47 2014 -0800
>>> >
>>> > ----------------------------------------------------------------------
>>> >  3rdparty/libprocess/include/process/node.hpp    | 28 ++++++-
>>> >  3rdparty/libprocess/include/process/pid.hpp     | 49 +++++------
>>> >  3rdparty/libprocess/include/process/process.hpp | 11 +--
>>> >  3rdparty/libprocess/src/http.cpp                | 13 +--
>>> >  3rdparty/libprocess/src/pid.cpp                 | 28 +++----
>>> >  3rdparty/libprocess/src/process.cpp             | 88
>>> ++++++++------------
>>> >  3rdparty/libprocess/src/tests/benchmarks.cpp    |  4 +-
>>> >  3rdparty/libprocess/src/tests/http_tests.cpp    |  4 +-
>>> >  3rdparty/libprocess/src/tests/metrics_tests.cpp |  6 +-
>>> >  3rdparty/libprocess/src/tests/process_tests.cpp |  6 +-
>>> >  10 files changed, 103 insertions(+), 134 deletions(-)
>>> > ----------------------------------------------------------------------
>>> >
>>> >
>>> >
>>> >
>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/f64562fa/3rdparty/libprocess/include/process/node.hpp
>>> > ----------------------------------------------------------------------
>>> > diff --git a/3rdparty/libprocess/include/process/node.hpp
>>> > b/3rdparty/libprocess/include/process/node.hpp
>>> > index 7a96894..24132a5 100644
>>> > --- a/3rdparty/libprocess/include/process/node.hpp
>>> > +++ b/3rdparty/libprocess/include/process/node.hpp
>>> > @@ -1,17 +1,22 @@
>>> >  #ifndef __PROCESS_NODE_HPP__
>>> >  #define __PROCESS_NODE_HPP__
>>> >
>>> > +#include <arpa/inet.h>
>>> >  #include <unistd.h>
>>> >
>>> >  #include <sstream>
>>> >
>>> > +#include <glog/logging.h>
>>> > +
>>> >  namespace process {
>>> >
>>> >  // Represents a remote "node" (encapsulates IP address and port).
>>> >  class Node
>>> >  {
>>> >  public:
>>> > -  Node(uint32_t _ip = 0, uint16_t _port = 0) : ip(_ip), port(_port) {}
>>> > +  Node() : ip(0), port(0) {}
>>> > +
>>> > +  Node(uint32_t _ip, uint16_t _port) : ip(_ip), port(_port) {}
>>> >
>>> >    bool operator < (const Node& that) const
>>> >    {
>>> > @@ -22,16 +27,31 @@ public:
>>> >      }
>>> >    }
>>> >
>>> > -  std::ostream& operator << (std::ostream& stream) const
>>> > +  bool operator == (const Node& that) const
>>> > +  {
>>> > +    return (ip == that.ip && port == that.port);
>>> > +  }
>>> > +
>>> > +  bool operator != (const Node& that) const
>>> >    {
>>> > -    stream << ip << ":" << port;
>>> > -    return stream;
>>> > +    return !(*this == that);
>>> >    }
>>> >
>>> >    uint32_t ip;
>>> >    uint16_t port;
>>> >  };
>>> >
>>> > +inline std::ostream& operator << (std::ostream & stream, const Node &
>>> > node)
>>> > +{
>>> > +  char ip[INET_ADDRSTRLEN];
>>> > +  if (inet_ntop(AF_INET, (in_addr*) &node.ip, ip, INET_ADDRSTRLEN) ==
>>> > NULL) {
>>> > +    PLOG(FATAL) << "Failed to get human-readable IP address for '"
>>> > +                << node.ip << "'";
>>> > +  }
>>> > +  stream << ip << ":" << node.port;
>>> > +  return stream;
>>> > +}
>>> > +
>>> >  } // namespace process {
>>> >
>>> >  #endif // __PROCESS_NODE_HPP__
>>> >
>>> >
>>> >
>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/f64562fa/3rdparty/libprocess/include/process/pid.hpp
>>> > ----------------------------------------------------------------------
>>> > diff --git a/3rdparty/libprocess/include/process/pid.hpp
>>> > b/3rdparty/libprocess/include/process/pid.hpp
>>> > index 2345322..7dccf29 100644
>>> > --- a/3rdparty/libprocess/include/process/pid.hpp
>>> > +++ b/3rdparty/libprocess/include/process/pid.hpp
>>> > @@ -7,6 +7,7 @@
>>> >  #include <sstream>
>>> >  #include <string>
>>> >
>>> > +#include <process/node.hpp>
>>> >
>>> >  namespace process {
>>> >
>>> > @@ -16,17 +17,22 @@ class ProcessBase;
>>> >
>>> >  struct UPID
>>> >  {
>>> > -  UPID()
>>> > -    : ip(0), port(0) {}
>>> > +  UPID() = default;
>>> >
>>> >    UPID(const UPID& that)
>>> > -    : id(that.id), ip(that.ip), port(that.port) {}
>>> > +    : id(that.id), node(that.node) {}
>>> >
>>> >    UPID(const char* id_, uint32_t ip_, uint16_t port_)
>>> > -    : id(id_), ip(ip_), port(port_) {}
>>> > +    : id(id_), node(ip_, port_) {}
>>> > +
>>> > +  UPID(const char* id_, const Node& node_)
>>> > +    : id(id_), node(node_) {}
>>> >
>>> >    UPID(const std::string& id_, uint32_t ip_, uint16_t port_)
>>> > -    : id(id_), ip(ip_), port(port_) {}
>>> > +    : id(id_), node(ip_, port_) {}
>>> > +
>>> > +  UPID(const std::string& id_, const Node& node_)
>>> > +    : id(id_), node(node_) {}
>>> >
>>> >    /*implicit*/ UPID(const char* s);
>>> >
>>> > @@ -38,47 +44,33 @@ struct UPID
>>> >
>>> >    operator bool () const
>>> >    {
>>> > -    return id != "" && ip != 0 && port != 0;
>>> > +    return id != "" && node.ip != 0 && node.port != 0;
>>> >    }
>>> >
>>> >    bool operator ! () const // NOLINT(whitespace/operators)
>>> >    {
>>> > -    return id == "" && ip == 0 && port == 0;
>>> > +    return id == "" && node.ip == 0 && node.port == 0;
>>> >    }
>>> >
>>> >    bool operator < (const UPID& that) const
>>> >    {
>>> > -    if (this != &that) {
>>> > -      if (ip == that.ip && port == that.port)
>>> > -        return id < that.id;
>>> > -      else if (ip == that.ip && port != that.port)
>>> > -        return port < that.port;
>>> > -      else
>>> > -        return ip < that.ip;
>>> > -    }
>>> > -
>>> > -    return false;
>>> > +     if (node == that.node)
>>> > +       return id < that.id;
>>> > +     else return node < that.node;
>>> >    }
>>> >
>>> >    bool operator == (const UPID& that) const
>>> >    {
>>> > -    if (this != &that) {
>>> > -      return (id == that.id &&
>>> > -              ip == that.ip &&
>>> > -              port == that.port);
>>> > -    }
>>> > -
>>> > -    return true;
>>> > +    return (id == that.id && node == that.node);
>>> >    }
>>> >
>>> >    bool operator != (const UPID& that) const
>>> >    {
>>> > -    return !(this->operator == (that));
>>> > +    return !(*this == that);
>>> >    }
>>> >
>>> >    std::string id;
>>> > -  uint32_t ip;
>>> > -  uint16_t port;
>>> > +  Node node;
>>> >  };
>>> >
>>> >
>>> > @@ -99,8 +91,7 @@ struct PID : UPID
>>> >      (void)base;  // Eliminate unused base warning.
>>> >      PID<Base> pid;
>>> >      pid.id = id;
>>> > -    pid.ip = ip;
>>> > -    pid.port = port;
>>> > +    pid.node = node;
>>> >      return pid;
>>> >    }
>>> >  };
>>> >
>>> >
>>> >
>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/f64562fa/3rdparty/libprocess/include/process/process.hpp
>>> > ----------------------------------------------------------------------
>>> > diff --git a/3rdparty/libprocess/include/process/process.hpp
>>> > b/3rdparty/libprocess/include/process/process.hpp
>>> > index 81a1f7a..cb3e0a6 100644
>>> > --- a/3rdparty/libprocess/include/process/process.hpp
>>> > +++ b/3rdparty/libprocess/include/process/process.hpp
>>> > @@ -276,16 +276,9 @@ void finalize();
>>> >
>>> >
>>> >  /**
>>> > - * Returns the IP address associated with this instance of the
>>> > - * library.
>>> > + * Returns the node associated with this instance of the library.
>>> >   */
>>> > -uint32_t ip();
>>> > -
>>> > -
>>> > -/**
>>> > - * Returns the port associated with this instance of the library.
>>> > - */
>>> > -uint16_t port();
>>> > +Node node();
>>> >
>>> >
>>> >  /**
>>> >
>>> >
>>> >
>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/f64562fa/3rdparty/libprocess/src/http.cpp
>>> > ----------------------------------------------------------------------
>>> > diff --git a/3rdparty/libprocess/src/http.cpp
>>> > b/3rdparty/libprocess/src/http.cpp
>>> > index 4ef00d1..b00f333 100644
>>> > --- a/3rdparty/libprocess/src/http.cpp
>>> > +++ b/3rdparty/libprocess/src/http.cpp
>>> > @@ -79,20 +79,13 @@ Future<Response> request(
>>> >      return Failure("Failed to cloexec: " + cloexec.error());
>>> >    }
>>> >
>>> > -  // We use inet_ntop since inet_ntoa is not thread-safe!
>>> > -  char ip[INET_ADDRSTRLEN];
>>> > -  if (inet_ntop(AF_INET, (in_addr*) &upid.ip, ip, INET_ADDRSTRLEN) ==
>>> > NULL) {
>>> > -    return Failure(ErrnoError("Failed to get human-readable IP address
>>> > for '" +
>>> > -                              stringify(upid.ip) + "'"));
>>> > -  }
>>> > -
>>> > -  const string host = string(ip) + ":" + stringify(upid.port);
>>> > +  const string host = stringify(upid.node);
>>> >
>>> >    sockaddr_in addr;
>>> >    memset(&addr, 0, sizeof(addr));
>>> >    addr.sin_family = AF_INET;
>>> > -  addr.sin_port = htons(upid.port);
>>> > -  addr.sin_addr.s_addr = upid.ip;
>>> > +  addr.sin_port = htons(upid.node.port);
>>> > +  addr.sin_addr.s_addr = upid.node.ip;
>>> >
>>> >    if (connect(s, (sockaddr*) &addr, sizeof(addr)) < 0) {
>>> >      os::close(s);
>>> >
>>> >
>>> >
>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/f64562fa/3rdparty/libprocess/src/pid.cpp
>>> > ----------------------------------------------------------------------
>>> > diff --git a/3rdparty/libprocess/src/pid.cpp
>>> > b/3rdparty/libprocess/src/pid.cpp
>>> > index 20ff25c..a2c620e 100644
>>> > --- a/3rdparty/libprocess/src/pid.cpp
>>> > +++ b/3rdparty/libprocess/src/pid.cpp
>>> > @@ -47,8 +47,7 @@ UPID::UPID(const std::string& s)
>>> >  UPID::UPID(const ProcessBase& process)
>>> >  {
>>> >    id = process.self().id;
>>> > -  ip = process.self().ip;
>>> > -  port = process.self().port;
>>> > +  node = process.self().node;
>>> >  }
>>> >
>>> >
>>> > @@ -62,12 +61,7 @@ UPID::operator std::string() const
>>> >
>>> >  ostream& operator << (ostream& stream, const UPID& pid)
>>> >  {
>>> > -  // Call inet_ntop since inet_ntoa is not thread-safe!
>>> > -  char ip[INET_ADDRSTRLEN];
>>> > -  if (inet_ntop(AF_INET, (in_addr *) &pid.ip, ip, INET_ADDRSTRLEN) ==
>>> > NULL)
>>> > -    memset(ip, 0, INET_ADDRSTRLEN);
>>> > -
>>> > -  stream << pid.id << "@" << ip << ":" << pid.port;
>>> > +  stream << pid.id << "@" << pid.node;
>>> >    return stream;
>>> >  }
>>> >
>>> > @@ -75,8 +69,8 @@ ostream& operator << (ostream& stream, const UPID&
>>> pid)
>>> >  istream& operator >> (istream& stream, UPID& pid)
>>> >  {
>>> >    pid.id = "";
>>> > -  pid.ip = 0;
>>> > -  pid.port = 0;
>>> > +  pid.node.ip = 0;
>>> > +  pid.node.port = 0;
>>> >
>>> >    string str;
>>> >    if (!(stream >> str)) {
>>> > @@ -93,8 +87,7 @@ istream& operator >> (istream& stream, UPID& pid)
>>> >
>>> >    string id;
>>> >    string host;
>>> > -  uint32_t ip;
>>> > -  uint16_t port;
>>> > +  Node node;
>>> >
>>> >    size_t index = str.find('@');
>>> >
>>> > @@ -149,20 +142,19 @@ istream& operator >> (istream& stream, UPID& pid)
>>> >      return stream;
>>> >    }
>>> >
>>> > -  ip = *((uint32_t*) hep->h_addr_list[0]);
>>> > +  node.ip = *((uint32_t*) hep->h_addr_list[0]);
>>> >
>>> >    delete[] temp;
>>> >
>>> >    str = str.substr(index + 1);
>>> >
>>> > -  if (sscanf(str.c_str(), "%hu", &port) != 1) {
>>> > +  if (sscanf(str.c_str(), "%hu", &node.port) != 1) {
>>> >      stream.setstate(std::ios_base::badbit);
>>> >      return stream;
>>> >    }
>>> >
>>> >    pid.id = id;
>>> > -  pid.ip = ip;
>>> > -  pid.port = port;
>>> > +  pid.node = node;
>>> >
>>> >    return stream;
>>> >  }
>>> > @@ -172,8 +164,8 @@ size_t hash_value(const UPID& pid)
>>> >  {
>>> >    size_t seed = 0;
>>> >    boost::hash_combine(seed, pid.id);
>>> > -  boost::hash_combine(seed, pid.ip);
>>> > -  boost::hash_combine(seed, pid.port);
>>> > +  boost::hash_combine(seed, pid.node.ip);
>>> > +  boost::hash_combine(seed, pid.node.port);
>>> >    return seed;
>>> >  }
>>> >
>>> >
>>> >
>>> >
>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/f64562fa/3rdparty/libprocess/src/process.cpp
>>> > ----------------------------------------------------------------------
>>> > diff --git a/3rdparty/libprocess/src/process.cpp
>>> > b/3rdparty/libprocess/src/process.cpp
>>> > index 85fb995..a34b870 100644
>>> > --- a/3rdparty/libprocess/src/process.cpp
>>> > +++ b/3rdparty/libprocess/src/process.cpp
>>> > @@ -436,11 +436,8 @@ static uint32_t __id__ = 0;
>>> >  // Local server socket.
>>> >  static int __s__ = -1;
>>> >
>>> > -// Local IP address.
>>> > -static uint32_t __ip__ = 0;
>>> > -
>>> > -// Local port.
>>> > -static uint16_t __port__ = 0;
>>> > +// Local node.
>>> > +static Node __node__;
>>> >
>>> >  // Active SocketManager (eventually will probably be thread-local).
>>> >  static SocketManager* socket_manager = NULL;
>>> > @@ -709,7 +706,7 @@ static Message* encode(const UPID& from,
>>> >
>>> >  static void transport(Message* message, ProcessBase* sender = NULL)
>>> >  {
>>> > -  if (message->to.ip == __ip__ && message->to.port == __port__) {
>>> > +  if (message->to.node == __node__) {
>>> >      // Local message.
>>> >      process_manager->deliver(message->to, new MessageEvent(message),
>>> > sender);
>>> >    } else {
>>> > @@ -766,7 +763,7 @@ static Message* parse(Request* request)
>>> >      return NULL;
>>> >    }
>>> >
>>> > -  const UPID to(decode.get(), __ip__, __port__);
>>> > +  const UPID to(decode.get(), __node__);
>>> >
>>> >    // And now determine 'name'.
>>> >    index = index != string::npos ? index + 2: request->path.size();
>>> > @@ -1472,15 +1469,15 @@ void initialize(const string& delegate)
>>> >      }
>>> >    }
>>> >
>>> > -  __ip__ = 0;
>>> > -  __port__ = 0;
>>> > +  __node__.ip = 0;
>>> > +  __node__.port = 0;
>>> >
>>> >    char* value;
>>> >
>>> >    // Check environment for ip.
>>> >    value = getenv("LIBPROCESS_IP");
>>> >    if (value != NULL) {
>>> > -    int result = inet_pton(AF_INET, value, &__ip__);
>>> > +    int result = inet_pton(AF_INET, value, &__node__.ip);
>>> >      if (result == 0) {
>>> >        LOG(FATAL) << "LIBPROCESS_IP=" << value << " was unparseable";
>>> >      } else if (result < 0) {
>>> > @@ -1495,7 +1492,7 @@ void initialize(const string& delegate)
>>> >      if (result < 0 || result > USHRT_MAX) {
>>> >        LOG(FATAL) << "LIBPROCESS_PORT=" << value << " is not a valid
>>> port";
>>> >      }
>>> > -    __port__ = result;
>>> > +    __node__.port = result;
>>> >    }
>>> >
>>> >    // Create a "server" socket for communicating with other nodes.
>>> > @@ -1525,12 +1522,11 @@ void initialize(const string& delegate)
>>> >    sockaddr_in addr;
>>> >    memset(&addr, 0, sizeof(addr));
>>> >    addr.sin_family = PF_INET;
>>> > -  addr.sin_addr.s_addr = __ip__;
>>> > -  addr.sin_port = htons(__port__);
>>> > +  addr.sin_addr.s_addr = __node__.ip;
>>> > +  addr.sin_port = htons(__node__.port);
>>> >
>>> >    if (bind(__s__, (sockaddr*) &addr, sizeof(addr)) < 0) {
>>> > -    PLOG(FATAL) << "Failed to initialize, bind "
>>> > -                << inet_ntoa(addr.sin_addr) << ":" << __port__;
>>> > +    PLOG(FATAL) << "Failed to initialize, bind " << __node__;
>>> >    }
>>> >
>>> >    // Lookup and store assigned ip and assigned port.
>>> > @@ -1539,14 +1535,14 @@ void initialize(const string& delegate)
>>> >      PLOG(FATAL) << "Failed to initialize, getsockname";
>>> >    }
>>> >
>>> > -  __ip__ = addr.sin_addr.s_addr;
>>> > -  __port__ = ntohs(addr.sin_port);
>>> > +  __node__.ip = addr.sin_addr.s_addr;
>>> > +  __node__.port = ntohs(addr.sin_port);
>>> >
>>> >    // Lookup hostname if missing ip or if ip is 127.0.0.1 in case we
>>> >    // actually have a valid external ip address. Note that we need only
>>> >    // one ip address, so that other processes can send and receive and
>>> >    // don't get confused as to whom they are sending to.
>>> > -  if (__ip__ == 0 || __ip__ == 2130706433) {
>>> > +  if (__node__.ip == 0 || __node__.ip == 2130706433) {
>>> >      char hostname[512];
>>> >
>>> >      if (gethostname(hostname, sizeof(hostname)) < 0) {
>>> > @@ -1562,7 +1558,7 @@ void initialize(const string& delegate)
>>> >                   << hstrerror(h_errno);
>>> >      }
>>> >
>>> > -    __ip__ = *((uint32_t *) he->h_addr_list[0]);
>>> > +    __node__.ip = *((uint32_t *) he->h_addr_list[0]);
>>> >    }
>>> >
>>> >    if (listen(__s__, 500000) < 0) {
>>> > @@ -1663,13 +1659,8 @@ void initialize(const string& delegate)
>>> >
>>> >    new Route("/__processes__", None(), __processes__);
>>> >
>>> > -  char temp[INET_ADDRSTRLEN];
>>> > -  if (inet_ntop(AF_INET, (in_addr*) &__ip__, temp, INET_ADDRSTRLEN) ==
>>> > NULL) {
>>> > -    PLOG(FATAL) << "Failed to initialize, inet_ntop";
>>> > -  }
>>> > -
>>> > -  VLOG(1) << "libprocess is initialized on " << temp << ":" <<
>>> __port__
>>> > -          << " for " << cpus << " cpus";
>>> > +  VLOG(1) << "libprocess is initialized on " << node << " for " <<
>>> cpus
>>> > +          << " cpus";
>>> >  }
>>> >
>>> >
>>> > @@ -1679,17 +1670,10 @@ void finalize()
>>> >  }
>>> >
>>> >
>>> > -uint32_t ip()
>>> > -{
>>> > -  process::initialize();
>>> > -  return __ip__;
>>> > -}
>>> > -
>>> > -
>>> > -uint16_t port()
>>> > +Node node()
>>> >  {
>>> >    process::initialize();
>>> > -  return __port__;
>>> > +  return __node__;
>>> >  }
>>> >
>>> >
>>> > @@ -1968,12 +1952,9 @@ void SocketManager::link(ProcessBase* process,
>>> > const UPID& to)
>>> >
>>> >    CHECK(process != NULL);
>>> >
>>> > -  Node node(to.ip, to.port);
>>> > -
>>> >    synchronized (this) {
>>> >      // Check if node is remote and there isn't a persistant link.
>>> > -    if ((node.ip != __ip__ || node.port != __port__)
>>> > -        && persists.count(node) == 0) {
>>> > +    if (to.node != __node__  && persists.count(to.node) == 0) {
>>> >        // Okay, no link, let's create a socket.
>>> >        Try<int> socket = process::socket(AF_INET, SOCK_STREAM, 0);
>>> >        if (socket.isError()) {
>>> > @@ -1993,9 +1974,9 @@ void SocketManager::link(ProcessBase* process,
>>> const
>>> > UPID& to)
>>> >        }
>>> >
>>> >        sockets[s] = Socket(s);
>>> > -      nodes[s] = node;
>>> > +      nodes[s] = to.node;
>>> >
>>> > -      persists[node] = s;
>>> > +      persists[to.node] = s;
>>> >
>>> >        // Allocate and initialize a watcher for reading data from this
>>> >        // socket. Note that we don't expect to receive anything other
>>> > @@ -2009,8 +1990,8 @@ void SocketManager::link(ProcessBase* process,
>>> const
>>> > UPID& to)
>>> >        sockaddr_in addr;
>>> >        memset(&addr, 0, sizeof(addr));
>>> >        addr.sin_family = PF_INET;
>>> > -      addr.sin_port = htons(to.port);
>>> > -      addr.sin_addr.s_addr = to.ip;
>>> > +      addr.sin_port = htons(to.node.port);
>>> > +      addr.sin_addr.s_addr = to.node.ip;
>>> >
>>> >        if (connect(s, (sockaddr*) &addr, sizeof(addr)) < 0) {
>>> >          if (errno != EINPROGRESS) {
>>> > @@ -2130,7 +2111,7 @@ void SocketManager::send(Message* message)
>>> >  {
>>> >    CHECK(message != NULL);
>>> >
>>> > -  Node node(message->to.ip, message->to.port);
>>> > +  Node node(message->to.node);
>>> >
>>> >    synchronized (this) {
>>> >      // Check if there is already a socket.
>>> > @@ -2190,8 +2171,8 @@ void SocketManager::send(Message* message)
>>> >        sockaddr_in addr;
>>> >        memset(&addr, 0, sizeof(addr));
>>> >        addr.sin_family = PF_INET;
>>> > -      addr.sin_port = htons(message->to.port);
>>> > -      addr.sin_addr.s_addr = message->to.ip;
>>> > +      addr.sin_port = htons(node.port);
>>> > +      addr.sin_addr.s_addr = node.ip;
>>> >
>>> >        if (connect(s, (sockaddr*) &addr, sizeof(addr)) < 0) {
>>> >          if (errno != EINPROGRESS) {
>>> > @@ -2380,7 +2361,7 @@ void SocketManager::exited(const Node& node)
>>> >      list<UPID> removed;
>>> >      // Look up all linked processes.
>>> >      foreachpair (const UPID& linkee, set<ProcessBase*>& processes,
>>> links)
>>> > {
>>> > -      if (linkee.ip == node.ip && linkee.port == node.port) {
>>> > +      if (linkee.node == node) {
>>> >          foreach (ProcessBase* linker, processes) {
>>> >            linker->enqueue(new ExitedEvent(linkee));
>>> >          }
>>> > @@ -2461,7 +2442,7 @@ ProcessManager::~ProcessManager()
>>> >
>>> >  ProcessReference ProcessManager::use(const UPID& pid)
>>> >  {
>>> > -  if (pid.ip == __ip__ && pid.port == __port__) {
>>> > +  if (pid.node == __node__) {
>>> >      synchronized (processes) {
>>> >        if (processes.count(pid.id) > 0) {
>>> >          // Note that the ProcessReference constructor _must_ get
>>> > @@ -2567,12 +2548,12 @@ bool ProcessManager::handle(
>>> >
>>> >    if (tokens.size() == 0 && delegate != "") {
>>> >      request->path = "/" + delegate;
>>> > -    receiver = use(UPID(delegate, __ip__, __port__));
>>> > +    receiver = use(UPID(delegate, __node__));
>>> >    } else if (tokens.size() > 0) {
>>> >      // Decode possible percent-encoded path.
>>> >      Try<string> decode = http::decode(tokens[0]);
>>> >      if (!decode.isError()) {
>>> > -      receiver = use(UPID(decode.get(), __ip__, __port__));
>>> > +      receiver = use(UPID(decode.get(), __node__));
>>> >      } else {
>>> >        VLOG(1) << "Failed to decode URL path: " << decode.error();
>>> >      }
>>> > @@ -2581,7 +2562,7 @@ bool ProcessManager::handle(
>>> >    if (!receiver && delegate != "") {
>>> >      // Try and delegate the request.
>>> >      request->path = "/" + delegate + request->path;
>>> > -    receiver = use(UPID(delegate, __ip__, __port__));
>>> > +    receiver = use(UPID(delegate, __node__));
>>> >    }
>>> >
>>> >    if (receiver) {
>>> > @@ -2900,7 +2881,7 @@ void ProcessManager::cleanup(ProcessBase*
>>> process)
>>> >  void ProcessManager::link(ProcessBase* process, const UPID& to)
>>> >  {
>>> >    // Check if the pid is local.
>>> > -  if (!(to.ip == __ip__ && to.port == __port__)) {
>>> > +  if (to.node != __node__) {
>>> >      socket_manager->link(process, to);
>>> >    } else {
>>> >      // Since the pid is local we want to get a reference to it's
>>> > @@ -3249,8 +3230,7 @@ ProcessBase::ProcessBase(const string& id)
>>> >    refs = 0;
>>> >
>>> >    pid.id = id != "" ? id : ID::generate();
>>> > -  pid.ip = __ip__;
>>> > -  pid.port = __port__;
>>> > +  pid.node = __node__;
>>> >
>>> >    // If using a manual clock, try and set current time of process
>>> >    // using happens before relationship between creator and createe!
>>> >
>>> >
>>> >
>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/f64562fa/3rdparty/libprocess/src/tests/benchmarks.cpp
>>> > ----------------------------------------------------------------------
>>> > diff --git a/3rdparty/libprocess/src/tests/benchmarks.cpp
>>> > b/3rdparty/libprocess/src/tests/benchmarks.cpp
>>> > index 3177a8e..227b8e7 100644
>>> > --- a/3rdparty/libprocess/src/tests/benchmarks.cpp
>>> > +++ b/3rdparty/libprocess/src/tests/benchmarks.cpp
>>> > @@ -102,9 +102,9 @@ public:
>>> >  private:
>>> >    void ping(const UPID& from, const string& body)
>>> >    {
>>> > -    if (linkedPorts.find(from.port) == linkedPorts.end()) {
>>> > +    if (linkedPorts.find(from.node.port) == linkedPorts.end()) {
>>> >        setLink(from);
>>> > -      linkedPorts.insert(from.port);
>>> > +      linkedPorts.insert(from.node.port);
>>> >      }
>>> >      static const string message("hi");
>>> >      send(from, "pong", message.c_str(), message.size());
>>> >
>>> >
>>> >
>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/f64562fa/3rdparty/libprocess/src/tests/http_tests.cpp
>>> > ----------------------------------------------------------------------
>>> > diff --git a/3rdparty/libprocess/src/tests/http_tests.cpp
>>> > b/3rdparty/libprocess/src/tests/http_tests.cpp
>>> > index a1c3685..a90e65f 100644
>>> > --- a/3rdparty/libprocess/src/tests/http_tests.cpp
>>> > +++ b/3rdparty/libprocess/src/tests/http_tests.cpp
>>> > @@ -120,8 +120,8 @@ TEST(HTTP, Endpoints)
>>> >    sockaddr_in addr;
>>> >    memset(&addr, 0, sizeof(addr));
>>> >    addr.sin_family = PF_INET;
>>> > -  addr.sin_port = htons(process.self().port);
>>> > -  addr.sin_addr.s_addr = process.self().ip;
>>> > +  addr.sin_port = htons(process.self().node.port);
>>> > +  addr.sin_addr.s_addr = process.self().node.ip;
>>> >
>>> >    ASSERT_EQ(0, connect(s, (sockaddr*) &addr, sizeof(addr)));
>>> >
>>> >
>>> >
>>> >
>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/f64562fa/3rdparty/libprocess/src/tests/metrics_tests.cpp
>>> > ----------------------------------------------------------------------
>>> > diff --git a/3rdparty/libprocess/src/tests/metrics_tests.cpp
>>> > b/3rdparty/libprocess/src/tests/metrics_tests.cpp
>>> > index 33539e4..0c80c69 100644
>>> > --- a/3rdparty/libprocess/src/tests/metrics_tests.cpp
>>> > +++ b/3rdparty/libprocess/src/tests/metrics_tests.cpp
>>> > @@ -147,7 +147,7 @@ TEST(Metrics, Snapshot)
>>> >  {
>>> >    ASSERT_TRUE(GTEST_IS_THREADSAFE);
>>> >
>>> > -  UPID upid("metrics", process::ip(), process::port());
>>> > +  UPID upid("metrics", process::node());
>>> >
>>> >    Clock::pause();
>>> >
>>> > @@ -219,7 +219,7 @@ TEST(Metrics, SnapshotTimeout)
>>> >  {
>>> >    ASSERT_TRUE(GTEST_IS_THREADSAFE);
>>> >
>>> > -  UPID upid("metrics", process::ip(), process::port());
>>> > +  UPID upid("metrics", process::node());
>>> >
>>> >    Clock::pause();
>>> >
>>> > @@ -320,7 +320,7 @@ TEST(Metrics, SnapshotTimeout)
>>> >  // Ensures that the aggregate statistics are correct in the snapshot.
>>> >  TEST(Metrics, SnapshotStatistics)
>>> >  {
>>> > -  UPID upid("metrics", process::ip(), process::port());
>>> > +  UPID upid("metrics", process::node());
>>> >
>>> >    Clock::pause();
>>> >
>>> >
>>> >
>>> >
>>> http://git-wip-us.apache.org/repos/asf/mesos/blob/f64562fa/3rdparty/libprocess/src/tests/process_tests.cpp
>>> > ----------------------------------------------------------------------
>>> > diff --git a/3rdparty/libprocess/src/tests/process_tests.cpp
>>> > b/3rdparty/libprocess/src/tests/process_tests.cpp
>>> > index b985fb7..902d4d3 100644
>>> > --- a/3rdparty/libprocess/src/tests/process_tests.cpp
>>> > +++ b/3rdparty/libprocess/src/tests/process_tests.cpp
>>> > @@ -1425,8 +1425,8 @@ TEST(Process, remote)
>>> >    sockaddr_in addr;
>>> >    memset(&addr, 0, sizeof(addr));
>>> >    addr.sin_family = PF_INET;
>>> > -  addr.sin_port = htons(process.self().port);
>>> > -  addr.sin_addr.s_addr = process.self().ip;
>>> > +  addr.sin_port = htons(process.self().node.port);
>>> > +  addr.sin_addr.s_addr = process.self().node.ip;
>>> >
>>> >    ASSERT_EQ(0, connect(s, (sockaddr*) &addr, sizeof(addr)));
>>> >
>>> > @@ -1866,7 +1866,7 @@ TEST(Process, PercentEncodedURLs)
>>> >    spawn(process);
>>> >
>>> >    // Construct the PID using percent-encoding.
>>> > -  UPID pid("id%2842%29", process.self().ip, process.self().port);
>>> > +  UPID pid("id%2842%29", process.self().node);
>>> >
>>> >    // Mimic a libprocess message sent to an installed handler.
>>> >    Future<Nothing> handler1;
>>> >
>>> >
>>>
>>
>>
>>
>> --
>> Dominic Hamon | @mrdo | Twitter
>> *There are no bad ideas; only good ideas that go horribly wrong.*
>>
>
>
>
> --
> Dominic Hamon | @mrdo | Twitter
> *There are no bad ideas; only good ideas that go horribly wrong.*
>



-- 
Dominic Hamon | @mrdo | Twitter
*There are no bad ideas; only good ideas that go horribly wrong.*

Reply via email to