Changeset 1608 for pjproject/trunk/pjlib/src/pj/addr_resolv_sock.c
- Timestamp:
- Dec 2, 2007 3:36:46 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjlib/src/pj/addr_resolv_sock.c
r1601 r1608 62 62 #if defined(PJ_SOCK_HAS_GETADDRINFO) && PJ_SOCK_HAS_GETADDRINFO!=0 63 63 char nodecopy[PJ_MAX_HOSTNAME]; 64 struct addrinfo hint, *res ;64 struct addrinfo hint, *res, *orig_res; 65 65 unsigned i; 66 66 int rc; … … 85 85 return PJ_ERESOLVE; 86 86 87 orig_res = res; 88 87 89 /* Enumerate each item in the result */ 88 90 for (i=0; i<*count && res; res=res->ai_next) { 89 int len;90 91 91 /* Ignore unwanted address families */ 92 92 if (af!=PJ_AF_UNSPEC && res->ai_family != af) … … 94 94 95 95 /* Store canonical name (possibly truncating the name) */ 96 pj_ansi_strncpy(ai[i].ai_canonname, res->ai_canonname, 97 sizeof(ai[i].ai_canonname)); 98 ai[i].ai_canonname[sizeof(ai[i].ai_canonname)-1] = '\0'; 96 if (res->ai_canonname) { 97 pj_ansi_strncpy(ai[i].ai_canonname, res->ai_canonname, 98 sizeof(ai[i].ai_canonname)); 99 ai[i].ai_canonname[sizeof(ai[i].ai_canonname)-1] = '\0'; 100 } else { 101 pj_ansi_strcpy(ai[i].ai_canonname, nodecopy); 102 } 99 103 100 104 /* Store address */ … … 107 111 108 112 *count = i; 113 114 freeaddrinfo(orig_res); 109 115 110 116 /* Done */
Note: See TracChangeset
for help on using the changeset viewer.