{subsection: condor_netaddr} -=condor_netaddr= exists to encapsulate the idea of a subset. It's built on top of condor_sockaddr, adding a count for how many bits to mask off. At the moment it's only being used to validate that a subset string can be parsed, but should eventually be used in any situation where Condor is checking that a given address is within a given subset (ie security). +=condor_netaddr= exists to encapsulate the idea of a subnet. It's built on top of condor_sockaddr, adding a count for how many bits to mask off. At the moment it's only being used to validate that a subset string can be parsed, but should eventually be used in any situation where Condor is checking that a given address is within a given subset (ie security). + +{subsection: Hostname to condor_sockaddr and back} + +If you have a hostname, but need condor_sockaddr, you'll want the functions in /src/condor_includes/ipv6_hostname.h . + +*Hostname to condor_sockaddr:* resolve_hostname() takes a hostname (MyString or const char *), and returns a std::vector<condor_sockaddr>. Note that _all_ off the returned condor_sockaddrs are correct! To be properly behaved, you should try them, in order, until you find one that works, or you run out of options. + +*condor_sockaddr to Hostname:* get_hostname() takes a condor_sockaddr and returns a hostname (MyString). If you want aliases as well, get_hostname_with_alias will return a std::vector<MyString> of hostnames. + {section: Notes} {code} -/condor_includes/ipv6_hostname.h - Getting hostnames and condor_sockaddrs. -- get_hostname/get_hostname_with_alias - condor_sockaddr -> MyString -- resolve_hostname - MyString -> vector<condor_sockaddr> - - Note that it returns a list. They're all "correct." If you're trying to connect to the hostname, you must try them all, in order, until you succeed or you run out of options. - ./src/condor_includes/condor_sockfunc.h - Use the condor_ wrappers (condor_accept, condor_bind, condor_inet_pton, etc) which take condor_sockaddrs. {endcode}