return ((const PRADDRINFO *) ai)->ai_canonname;
if (!_pr_initialized) _PR_ImplicitInitialization();  #if defined(_PR_HAVE_GETHOST_R) tmpbuf = localbuf; if (bufsize > sizeof(localbuf)) { tmpbuf = (char *)PR_Malloc(bufsize); if (NULL == tmpbuf) { PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); return rv; } } #endif  LOCK_DNS();  #ifdef XP_OS2_VACPP h = GETHOSTBYNAME((char *)name);
PR_IMPLEMENT(const char *) PR_GetCanonNameFromAddrInfo(const PRAddrInfo *ai){#if defined(_PR_HAVE_GETADDRINFO)#if defined(_PR_INET6_PROBE)    if (!_pr_ipv6_is_present) {        const PRAddrInfoFB *fb = (const PRAddrInfoFB *) ai;        return fb->has_cname ? fb->hostent.h_name : NULL;    } #endif    return ((const PRADDRINFO *) ai)->ai_canonname;#else    const PRAddrInfoFB *fb = (const PRAddrInfoFB *) ai;    return fb->has_cname ? fb->hostent.h_name : NULL;#endif}