Lines Matching refs:adst
466 struct adstore *adst = (struct adstore *)opaque;
472 if (ttl < adst->smallest_ttl || !adst->ctr)
473 adst->smallest_ttl = ttl;
475 if (adst->prev)
476 adst->prev->ai_next = adst->pos;
477 adst->prev = adst->pos;
479 adst->pos->ai_flags = 0;
480 adst->pos->ai_family = type == LWS_ADNS_RECORD_AAAA ?
482 adst->pos->ai_socktype = SOCK_STREAM;
483 adst->pos->ai_protocol = IPPROTO_UDP; /* no meaning */
484 adst->pos->ai_addrlen = type == LWS_ADNS_RECORD_AAAA ?
487 adst->pos->ai_canonname = (char *)adst->name;
488 adst->pos->ai_addr = (struct sockaddr *)&adst->pos[1];
489 adst->pos->ai_next = NULL;
493 struct sockaddr_in6 *in6 = (struct sockaddr_in6 *)&adst->pos[1];
497 in6->sin6_family = (sa_family_t)adst->pos->ai_family;
499 adst->flags |= 2;
503 struct sockaddr_in *in = (struct sockaddr_in *)&adst->pos[1];
507 in->sin_family = (sa_family_t)adst->pos->ai_family;
509 adst->flags |= 1;
512 adst->pos = (struct addrinfo *)((uint8_t *)adst->pos +
519 lwsl_info("%s: %d: %s: %s\n", __func__, adst->ctr,
520 adst->name, buf);
522 adst->ctr++;
536 struct adstore adst;
615 c->name = adst.name = ((const char *)c) + est - n;
624 adst.pos = (struct addrinfo *)&c[1];
625 adst.prev = NULL;
626 adst.ctr = 0;
627 adst.smallest_ttl = 3600;
628 adst.flags = 0;
636 lws_adns_iterate(q, pkt, (int)len, nmcname, lws_async_dns_store, &adst) < 0) {
650 if (adst.prev) /* so we know where to continue the addrinfo list */
652 q->last = &adst.prev->ai_next;
676 c->flags = adst.flags;
680 (adst.smallest_ttl * LWS_US_PER_SEC));