I renamed the IP::Address class into InAddrStorage, becuase it stores the
in_addr and in6_addr info, but I decided to keep the inner class design.
On Friday, January 23, 2015 7:26 PM, Dominic Hamon
<[email protected]> wrote:
On Thu, Jan 22, 2015 at 5:30 PM, Benjamin Hindman <[email protected]>
wrote:
> >
> > 1. implementation of IPvXaddress abstraction
> > - my preference, and the implementation Evelina has under review, is a
> > single class that abstracts away the family
>
> - others have suggested an abstract 'Address' with inheritance to manage
> > the different families
> > - in general we have used composition in the existing code-base
> > - given how non-extensible the family is, it makes sense to me to
> > continue with composition
> >
>
> I like the idea of a single 'IP' class that abstracts IP. What we saw in
> the past from Evelina's reviews was both an IP and an IPAddress, at which
> point we proposed she make IPAddress be IP::Address. But only having a
> single IP class would be much much much better.
>
>
> > 2. rename of Node
> > - this has come up before, and always been determined to be unnecessary
> > churn
> > - renaming to Address adds confusion as it is actually an address and a
> > port
> > - 'Endpoint' could be an alternative
> >
>
> I had called this Node originally because I didn't do my homework. This was
> my bad. C libraries always called this sockaddr.
A sockaddr doesn't have a port, as far as I know.
> Now they've introduced a
> new structure called addrinfo to better handle IPv6 addresses. This is not
> meant to be churn, this is better capturing the naming from the the
> underlying libraries. I didn't want to call this SocketAddress even though
> a bunch of libraries that abstract sockaddr call it that because ultimately
> we want to "wrap" addrinfo. Moreover, I didn't want to call it AddressInfo
> because the 'Info' seems unnecessary and conflicts with our protobuf naming
> scheme (where things end with the suffix 'Info', like FrameworkInfo,
> SlaveInfo, etc). Finally, man pages around these structures simply just
> call the object "address", hence Address.
>
So Evelina's class that abstracts the family should probably be
network::SocketAddress or network::Address.
The Node, on the other hand, captures an address+port which is not an
Address.
>
>
> On Thu, Jan 22, 2015 at 1:05 PM, Evelina Dumitrescu <
> > [email protected]> wrote:
> >
> > > Hey,
> > >
> > > A few weeks ago I proposed an abstraction for the IP address.
> > > There has been a long discussion on how to implement this (eg: what
> kind
> > > of pattern to use, composition/inheritance).
> > >
> > > Ben Hindman proposed a replacement of the Node class with Address and
> > > moving several network functions to the network namespace, which
> affects
> > my
> > > implementation[1].
> > >
> > > Here are my code reviews[2] and the Jira discussion on this issue[3].
> > > To speed up the review process, we decided to move this discussion of
> the
> > > dev mailing list so anyone can chime in.
> > >
> > > Thanks,
> > > Evelina
> > >
> > >
> > > [1]
> > > https://reviews.apache.org/r/29538/
> > > https://reviews.apache.org/r/29540/
> > > https://reviews.apache.org/r/29541/
> > >
> > > [2]
> > > https://reviews.apache.org/r/29288/
> > > https://reviews.apache.org/r/29289/
> > > https://reviews.apache.org/r/29290/
> > >
> > > [3]
> > > https://issues.apache.org/jira/browse/MESOS-1919
> > >
> > >
> >
> >
> > --
> > 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.*