Sha256: be7cadd06a5299165b2ec2407ab50c784ad8b0ceb0572ff5e09678f5355dc901

Contents?: true

Size: 979 Bytes

Versions: 16

Compression:

Stored size: 979 Bytes

Contents

#include <internal/util/posix/scoped_addrinfo.hpp>

using namespace std;
using namespace leatherman::util;

namespace facter { namespace util { namespace posix {

    scoped_addrinfo::scoped_addrinfo(string const& hostname) :
        scoped_resource(nullptr, free)
    {
        addrinfo hints;
        memset(&hints, 0, sizeof hints);
        hints.ai_family = AF_UNSPEC;
        hints.ai_socktype = SOCK_STREAM;
        hints.ai_flags = AI_CANONNAME;

        _result = getaddrinfo(hostname.c_str(), nullptr, &hints, &_resource);
        if (_result != 0) {
            _resource = nullptr;
        }
    }

    scoped_addrinfo::scoped_addrinfo(addrinfo* info) :
        scoped_resource(move(info), free),
        _result(0)
    {
    }

    int scoped_addrinfo::result() const
    {
        return _result;
    }

    void scoped_addrinfo::free(addrinfo* info)
    {
        if (info) {
            ::freeaddrinfo(info);
        }
    }

}}}  // namespace facter::util::posix

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
facter-3.12.2.cfacter.20181217 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.12.1.cfacter.20181031 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.11.6.cfacter.20181031 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.12.1.cfacter.20181023 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.11.5.cfacter.20181022 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.12.0.cfacter.20181004 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.12.0.cfacter.20181001 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.12.0.cfacter.20180918 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.11.4.cfacter.20180821 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.11.3.cfacter.20180716 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.11.2.cfacter.20180612 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.9.6.cfacter.20180612 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.11.2.cfacter.20180606 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.9.6.cfacter.20180606 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
facter-3.11.0.cfacter.20180319 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
cfacter-3.11.0.rc.20180314 ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc