You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by Evelina Dumitrescu <ev...@gmail.com> on 2015/03/03 10:33:15 UTC

Re: Review Request 31471: stout: Create IP and IPNetwork AF_INET abstraction.


> On Feb. 27, 2015, 8:28 p.m., Jie Yu wrote:
> > 3rdparty/libprocess/3rdparty/stout/include/stout/ip.hpp, line 48
> > <https://reviews.apache.org/r/31471/diff/3/?file=879788#file879788line48>
> >
> >     Why this change? What does an IP storage mean? Please revert it.
> 
> Evelina Dumitrescu wrote:
>     I prefer storage because we use IP for both address and netmask. IP address for netmask would not make sense!

removed the storage word.


> On Feb. 27, 2015, 8:28 p.m., Jie Yu wrote:
> > 3rdparty/libprocess/3rdparty/stout/include/stout/ip.hpp, lines 89-93
> > <https://reviews.apache.org/r/31471/diff/3/?file=879788#file879788line89>
> >
> >     Why do you want to allow this default constructor?
> 
> Evelina Dumitrescu wrote:
>     sometimes I need to write IP ip and initialize it later. If I don't do that, it does not compile.

replaced with Option<IP>.


> On Feb. 27, 2015, 8:28 p.m., Jie Yu wrote:
> > 3rdparty/libprocess/3rdparty/stout/include/stout/ip.hpp, lines 95-103
> > <https://reviews.apache.org/r/31471/diff/3/?file=879788#file879788line95>
> >
> >     ```
> >     Try<struct in_addr> inAddr() const
> >     {
> >       if (family_ != AF_INET) {
> >         return Error("Not an IPv4 address");
> >       }
> >       
> >       return storage_.in;
> >     }
> >     ```

This situation has been previously discussed and we concluded not to use abreviations. I used in() and in6() instead.


> On Feb. 27, 2015, 8:28 p.m., Jie Yu wrote:
> > 3rdparty/libprocess/3rdparty/stout/include/stout/ip.hpp, line 189
> > <https://reviews.apache.org/r/31471/diff/3/?file=879788#file879788line189>
> >
> >     "Failed to parse the IP address"

Added "Failed to parse the IP" because we use IP also for address and netmask.


> On Feb. 27, 2015, 8:28 p.m., Jie Yu wrote:
> > 3rdparty/libprocess/3rdparty/stout/include/stout/ip.hpp, line 191
> > <https://reviews.apache.org/r/31471/diff/3/?file=879788#file879788line191>
> >
> >     As I said before, we should not introduce this. Here is my suggestion:
> >     
> >     ```
> >     inline Try<IP> IP::parse(const std::string& value, int family)
> >     {
> >       if (family == AF_INET) {
> >         struct in_addr in;
> >         if (inet_pton(AF_INET, value.c_str(), &in) != 1) {
> >           return Error("Failed to parse the IP address");
> >         }
> >         
> >         return IP(in);
> >       } else {
> >         return Error("Unsupported family: " + stringify(family));
> >       }
> >     }
> >     ```
> 
> Evelina Dumitrescu wrote:
>     networkToHost is instead of ntohl

done


> On Feb. 27, 2015, 8:28 p.m., Jie Yu wrote:
> > 3rdparty/libprocess/3rdparty/stout/include/stout/ip.hpp, lines 232-235
> > <https://reviews.apache.org/r/31471/diff/3/?file=879788#file879788line232>
> >
> >     Again, you don't need these. These are extremely confusing!
> 
> Evelina Dumitrescu wrote:
>     why? they are simple wrappers as I explained in previous review requests.

removed the networkToHost and hostToNetwork methods. Stored every IP in network order.


> On Feb. 27, 2015, 8:28 p.m., Jie Yu wrote:
> > 3rdparty/libprocess/3rdparty/stout/include/stout/ip.hpp, line 240
> > <https://reviews.apache.org/r/31471/diff/3/?file=879788#file879788line240>
> >
> >     ```
> >     case AF_INET: {
> >       char buffer[INET_ADDRSTRLEN];
> >       
> >       struct in_addr in = ip.inAddr().get();
> >       if (inet_ntop(AF_INET, &in, buffer, sizeof(buffer) == NULL) {
> >         // PLEASE DO NOT REMOVE COMMENTS!!!!
> >         ABORT(...);
> >       }
> >       
> >       stream << buffer;
> >       break;
> >     }
> >     ```

sorry for that


> On Feb. 27, 2015, 8:28 p.m., Jie Yu wrote:
> > 3rdparty/libprocess/3rdparty/stout/include/stout/ip.hpp, lines 242-243
> > <https://reviews.apache.org/r/31471/diff/3/?file=879788#file879788line242>
> >
> >     Please properly align the arguments.
> 
> Evelina Dumitrescu wrote:
>     do you ant to pus each one on a separate line ?

put every argument on a different line


> On Feb. 27, 2015, 8:28 p.m., Jie Yu wrote:
> > 3rdparty/libprocess/3rdparty/stout/include/stout/ip.hpp, lines 320-326
> > <https://reviews.apache.org/r/31471/diff/3/?file=879788#file879788line320>
> >
> >     Since we control the contstruction of an IPNetwork, can you move all these checks there? 'prefix()' should simply return size_t.
> 
> Evelina Dumitrescu wrote:
>     Maybe someone will make the family field public/ add a setter and put different types of families for address and netmask.

ok, removed


- Evelina


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31471/#review74552
-----------------------------------------------------------


On Feb. 27, 2015, 9:22 a.m., Evelina Dumitrescu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/31471/
> -----------------------------------------------------------
> 
> (Updated Feb. 27, 2015, 9:22 a.m.)
> 
> 
> Review request for mesos, Benjamin Hindman, Dominic Hamon, Jie Yu, Joris Van Remoortere, and Niklas Nielsen.
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> see summary
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/3rdparty/stout/include/stout/ip.hpp 3293086a009a8f7cf7bd343eb7d3e85623636550 
>   3rdparty/libprocess/3rdparty/stout/include/stout/net.hpp 9635bbc6f7dae1d75a780069fcc60fb706221053 
>   3rdparty/libprocess/3rdparty/stout/tests/ip_tests.cpp fb98317a68986cb1228c584a8cd83b07737895a8 
> 
> Diff: https://reviews.apache.org/r/31471/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Evelina Dumitrescu
> 
>