Lines Matching refs:ai

225 #define GET_AI(ai, afd, addr) \
228 (ai) = get_ai(pai, (afd), (addr)); \
229 if ((ai) == NULL) { \
235 #define GET_PORT(ai, serv) \
238 error = get_port((ai), (serv), 0); \
243 #define GET_CANONNAME(ai, str) \
246 error = get_canonname(pai, (ai), (str)); \
287 freeaddrinfo(ai)
288 struct addrinfo *ai;
293 next = ai->ai_next;
294 if (ai->ai_canonname)
295 free(ai->ai_canonname);
296 /* no need to free(ai->ai_addr) */
297 free(ai);
298 ai = next;
299 } while (ai);
328 struct addrinfo ai, ai0, *afai = NULL;
334 pai = &ai;
904 get_canonname(pai, ai, str)
906 struct addrinfo *ai;
910 ai->ai_canonname = (char *)malloc(strlen(str) + 1);
911 if (ai->ai_canonname == NULL)
913 strcpy(ai->ai_canonname, str);
925 struct addrinfo *ai;
927 ai = (struct addrinfo *)malloc(sizeof(struct addrinfo)
929 if (ai == NULL)
932 memcpy(ai, pai, sizeof(struct addrinfo));
933 ai->ai_addr = (struct sockaddr *)(void *)(ai + 1);
934 memset(ai->ai_addr, 0, (size_t)afd->a_socklen);
936 ai->ai_addr->sa_len = afd->a_socklen;
938 ai->ai_addrlen = afd->a_socklen;
939 ai->ai_addr->sa_family = ai->ai_family = afd->a_af;
940 p = (char *)(void *)(ai->ai_addr);
942 return ai;
950 struct addrinfo *ai;
953 l = sizeof(*ai) + pai->ai_addrlen;
954 if ((ai = (struct addrinfo *)malloc(l)) == NULL)
956 memset(ai, 0, l);
957 memcpy(ai, pai, sizeof(*ai));
958 ai->ai_addr = (struct sockaddr *)(void *)(ai + 1);
959 memcpy(ai->ai_addr, pai->ai_addr, pai->ai_addrlen);
963 if ((ai->ai_canonname = malloc(l)) == NULL) {
964 free(ai);
967 strcpy(ai->ai_canonname, pai->ai_canonname); /* (checked) */
970 ai->ai_canonname = NULL;
973 ai->ai_next = NULL;
975 return ai;
979 get_portmatch(const struct addrinfo *ai, const char *servname) {
983 return get_port((const struct addrinfo *)ai, servname, 1);
987 get_port(const struct addrinfo *ai, const char *servname, int matchonly) {
995 switch (ai->ai_family) {
1005 switch (ai->ai_socktype) {
1013 switch (ai->ai_family) {
1037 switch (ai->ai_socktype) {
1055 switch (ai->ai_family) {
1058 ai->ai_addr)->sin_port = port;
1062 ai->ai_addr)->sin6_port = port;