On 2016/09/18 00:04, Mikhail wrote:
> > this does 2 things:
> > [...]
> I may recall what I have sent to you in private email, excerpt from FreeBSD
> ping6 manpage:
> --------8<--------8<--------8<--------8<--------8<--------8<--------
> There have been many discussions on why we separate ping6 and ping(8).
> Some people argued that it would be more convenient to uniform the ping
> command for both IPv4 and IPv6.  The followings are an answer to the
> request.
> From a developer's point of view: since the underling raw sockets API is
> totally different between IPv4 and IPv6, we would end up having two types of
> code base.  There would actually be less benefit to uniform the two commands
> into a single command from the developer's standpoint.

Much of the code doesn't relate to the sockets API. Option parsing,
timestamp perturbation, printing, etc are all mostly common.

> From an operator's point of view: unlike ordinary network applications like
> remote login tools, we are usually aware of address family when using
> network management tools.  We do not just want to know the
> reachability to the host, but want to know the reachability to the host
> via a particular network protocol such as IPv6.  Thus, even if we had a
> unified ping(8) command for both IPv4 and IPv6, we would usually type a
> -6 or -4 option (or something like those) to specify the particular
> address family.  This essentially means that we have two different
> commands.
> --------8<--------8<--------8<--------8<--------8<--------8<--------
> When we have two binaries I have more trust when one of them is working
> *only* with IPv4 and another one *only* with IPv6.

As a network operator if I'm interested in reachability to a specific
machine I'm certainly not going to rely on DNS.

And as a user if I'm interested in reachability of a service (which
covers the majority of ping usage) I don't care which af is used. In
fact I'd prefer to know about "whichever af is used by default to reach
this host".

> So, what user problems are you trying to solve with this merge?

Future changes to ping/ping6 only need to be done in one place, no risk
of them getting out of sync. Less disk space. Faster compiles. Less
setuid root code to audit.

The only reason I see for *not* merging them is that no developer
wanted to do the work.

Why should they be separate programs? We don't have to choose between
firefox and firefox6.

Reply via email to