{subsection: Conversions}
 
+All conversions should go through condor_sockaddr.  Since you should be using condor_sockaddr internally whenever possible, direct conversion (eg hostname to IP address as a string) should be rare enough that direct functions are unnecessary.
+
 *hostname to condor_sockaddr:* resolve_hostname() in /src/condor_includes/ipv6_hostname.h 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() in /src/condor_includes/ipv6_hostname.h 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.
@@ -55,6 +57,10 @@
 
 *condor_sockaddr to IP address (as a string):* You almost certainly don't want this.  If you're looking for something to pass between daemons, perhaps in a {quote:  ClassAd} or on a command line, use a sinful string.  If you're looking for something to put into a log or error message, still use a sinful string.  While officially opaque, they are also designed to be human readable enough to be useful in log messages, and using the sinful string ensures that no information is lost.  If you absolutely must (perhaps to pass it to a non-Condor program) use condor_sockaddr::to_ip_string() and condor_sockaddr::to_ip_string() in /src/condor_includes/condor_sockaddr.h
 
+*in_addr, in6_addr, sockaddr_in, or sockaddr_in6 to condor_sockaddr:*  You probably shouldn't have one of these in the first place.  But if you absolutely must, condor_sockaddr's constructors can take these. /src/condor_includes/condor_sockaddr.h
+
+*condor_sockaddr to sockaddr_in or sockaddr_in6:* You almost certainly don't want this.  Any function you want to call with a sockaddr_in or sockaddr_in6 probably has a condor_X equivalent that takes a condor_sockaddr; use that instead.  For example instead of bind() and accept(), use condor_bind() and condor_accept().  If a condor_X equivalent doesn't exist, consider adding one.  If you absolutely must, look to condor_sockaddr::is_ipv4() and condor_sockaddr::is_ipv6() to identify what type of address it is, and condor_sockaddr::to_sin() and condor_sockaddr::to_sin6() to retrieve sockaddr_in and sockaddr_in6 resepectively. /src/condor_includes/condor_sockaddr.h
+
 
 {section: Notes}
 {code}