(CFACT-124, CFACT-76) Refactor resolver implementation so that Windows can share base types.

This set of commits refactors the resolvers across all platforms into a base type that is responsible for adding facts.  The child types now are only responsible for returning data to the base type to populate the facts.

A few new structured facts are added with these changes, including the "networking" and "ssh" facts.

Additionally, the "lsb" structured fact under the "os" has been renamed to "distro" and the redundancy in attribute names has been removed.
Ok. I don't have a problem with it per se, just find it less effort to reason about for loops.

Michael

> On Sep 30, 2014, at 14:55, Peter Huene <notifications@github.com> wrote:
> 
> In lib/src/facts/bsd/networking_resolver.cc:
> 
> >              // Walk the addresses again and resolve facts
> > -            for (addr_it = range.first; addr_it != range.second; ++addr_it) {
> > -                ifaddrs const* addr = addr_it->second;
> > -                resolve_address(facts, addr, primary);
> > -                resolve_network(facts, addr, primary);
> > -                resolve_mtu(facts, addr);
> > -            }
> > +            do {
> It was changed to remove the unnecessary call to equal_range. We only need to visit each element in the map once.
> 
> —
> Reply to this email directly or view it on GitHub.