Home | History | Annotate | Download | only in net

Lines Matching refs:ai

270 #define GET_AI(ai, afd, addr) 					\
273 (ai) = get_ai(pai, (afd), (addr)); \
274 if ((ai) == NULL) { \
280 #define GET_PORT(ai, serv) \
283 error = get_port((ai), (serv), 0); \
288 #define GET_CANONNAME(ai, str) \
291 error = get_canonname(pai, (ai), (str)); \
319 freeaddrinfo(struct addrinfo *ai)
323 assert(ai != NULL);
326 next = ai->ai_next;
327 if (ai->ai_canonname)
328 free(ai->ai_canonname);
329 /* no need to free(ai->ai_addr) */
330 free(ai);
331 ai = next;
332 } while (ai);
478 struct addrinfo* ai = NULL;
495 struct addrinfo* ai = calloc(1, addrinfo_len +
497 if (ai == NULL) {
501 if (fread(ai, addrinfo_len, 1, proxy) != 1) {
508 ai->ai_addr = NULL;
509 ai->ai_canonname = NULL;
510 ai->ai_next = NULL;
523 struct sockaddr* addr = (struct sockaddr*)(ai + 1);
527 ai->ai_addr = addr;
537 ai->ai_canonname = (char*) malloc(name_len);
538 if (fread(ai->ai_canonname, name_len, 1, proxy) != 1) {
541 if (ai->ai_canonname[name_len - 1] != '\0') {
548 *nextres = ai;
549 nextres = &ai->ai_next;
550 ai = NULL;
553 if (ai != NULL) {
556 freeaddrinfo(ai);
590 struct addrinfo ai;
602 pai = &ai;
1079 get_canonname(const struct addrinfo *pai, struct addrinfo *ai, const char *str)
1083 assert(ai != NULL);
1087 ai->ai_canonname = strdup(str);
1088 if (ai->ai_canonname == NULL)
1098 struct addrinfo *ai;
1104 ai = (struct addrinfo *)malloc(sizeof(struct addrinfo)
1106 if (ai == NULL)
1109 memcpy(ai, pai, sizeof(struct addrinfo));
1110 ai->ai_addr = (struct sockaddr *)(void *)(ai + 1);
1111 memset(ai->ai_addr, 0, (size_t)afd->a_socklen);
1114 ai->ai_addr->sa_len = afd->a_socklen;
1117 ai->ai_addrlen = afd->a_socklen;
1119 ai->__ai_pad0 = 0;
1121 ai->ai_addr->sa_family = ai->ai_family = afd->a_af;
1122 p = (char *)(void *)(ai->ai_addr);
1124 return ai;
1128 get_portmatch(const struct addrinfo *ai, const char *servname)
1131 assert(ai != NULL);
1134 return get_port(ai, servname, 1);
1138 get_port(const struct addrinfo *ai, const char *servname, int matchonly)
1145 assert(ai != NULL);
1150 switch (ai->ai_family) {
1160 switch (ai->ai_socktype) {
1186 if (ai->ai_flags & AI_NUMERICSERV)
1189 switch (ai->ai_socktype) {
1207 switch (ai->ai_family) {
1210 ai->ai_addr)->sin_port = port;
1215 ai->ai_addr)->sin6_port = port;
1299 struct addrinfo ai;
1452 ai = *pai;
1453 ai.ai_family = (type == T_A) ? AF_INET : AF_INET6;
1454 afd = find_afd(ai.ai_family);
1459 cur->ai_next = get_ai(&ai, afd, (const char *)cp);
1486 struct addrinfo *ai;
1681 scope_dst1 = _get_scope(a1->ai->ai_addr);
1685 scope_dst2 = _get_scope(a2->ai->ai_addr);
1704 label_dst1 = _get_label(a1->ai->ai_addr);
1708 label_dst2 = _get_label(a2->ai->ai_addr);
1716 precedence1 = _get_precedence(a1->ai->ai_addr);
1717 precedence2 = _get_precedence(a2->ai->ai_addr);
1738 if (a1->has_src_addr && a1->ai->ai_addr->sa_family == AF_INET6 &&
1739 a2->has_src_addr && a2->ai->ai_addr->sa_family == AF_INET6) {
1741 const struct sockaddr_in6 *a1_dst = (const struct sockaddr_in6 *)a1->ai->ai_addr;
1743 const struct sockaddr_in6 *a2_dst = (const struct sockaddr_in6 *)a2->ai->ai_addr;
1844 elems[i].ai = cur;
1857 list_sentinel->ai_next = elems[0].ai;
1859 elems[i].ai->ai_next = elems[i + 1].ai;
1861 elems[nelem - 1].ai->ai_next = NULL;
1884 struct addrinfo *ai;
1989 ai = getanswer(buf, q.n, q.name, q.qtype, pai);
1990 if (ai) {
1991 cur->ai_next = ai;
1996 ai = getanswer(buf2, q2.n, q2.name, q2.qtype, pai);
1997 if (ai)
1998 cur->ai_next = ai;