Lines Matching defs:ns

169 	struct nameserver *ns;  /* the server which we last sent it */
325 static void nameserver_send_probe(struct nameserver *const ns);
450 struct nameserver *const ns = (struct nameserver *) arg;
454 nameserver_send_probe(ns);
461 nameserver_probe_failed(struct nameserver *const ns) {
463 (void) evtimer_del(&ns->timeout_event);
464 if (ns->state == 1) {
471 &global_nameserver_timeouts[MIN(ns->failed_times,
473 ns->failed_times++;
475 if (evtimer_add(&ns->timeout_event, (struct timeval *) timeout) < 0) {
478 debug_ntoa(ns->address));
486 nameserver_failed(struct nameserver *const ns, const char *msg) {
490 if (!ns->state) return;
493 debug_ntoa(ns->address), msg);
500 ns->state = 0;
501 ns->failed_times = 1;
503 if (evtimer_add(&ns->timeout_event, (struct timeval *) &global_nameserver_timeouts[0]) < 0) {
506 debug_ntoa(ns->address));
522 if (req->tx_count == 0 && req->ns == ns) {
525 req->ns = nameserver_pick();
533 nameserver_up(struct nameserver *const ns) {
534 if (ns->state) return;
536 debug_ntoa(ns->address));
537 evtimer_del(&ns->timeout_event);
538 ns->state = 1;
539 ns->failed_times = 0;
540 ns->timedout = 0;
594 const struct nameserver *const last_ns = req->ns;
598 req->ns = nameserver_pick();
599 if (req->ns == last_ns) {
636 req->ns = nameserver_pick();
711 nameserver_failed(req->ns, msg);
723 debug_ntoa(req->ns->address));
727 nameserver_up(req->ns);
750 nameserver_up(req->ns);
1157 address_is_correct(struct nameserver *ns, struct sockaddr *sa, socklen_t slen)
1162 if (sin->sin_addr.s_addr != ns->address)
1169 nameserver_read(struct nameserver *ns) {
1175 const int r = recvfrom(ns->socket, packet, sizeof(packet), 0,
1178 int err = last_error(ns->socket);
1180 nameserver_failed(ns, strerror(err));
1183 if (!address_is_correct(ns, (struct sockaddr*)&ss, addrlen)) {
1188 ns->timedout = 0;
1251 nameserver_write_waiting(struct nameserver *ns, char waiting) {
1252 if (ns->write_waiting == waiting) return;
1254 ns->write_waiting = waiting;
1255 (void) event_del(&ns->event);
1256 event_set(&ns->event, ns->socket, EV_READ | (waiting ? EV_WRITE : 0) | EV_PERSIST,
1257 nameserver_ready_callback, ns);
1258 if (event_add(&ns->event, NULL) < 0) {
1260 debug_ntoa(ns->address));
1269 struct nameserver *ns = (struct nameserver *) arg;
1273 ns->choked = 0;
1275 nameserver_write_waiting(ns, 0);
1279 nameserver_read(ns);
1890 req->ns->timedout++;
1891 if (req->ns->timedout > global_max_nameserver_timeout) {
1892 req->ns->timedout = 0;
1893 nameserver_failed(req->ns, "request timed out.");
1918 sin.sin_addr.s_addr = req->ns->address;
1919 sin.sin_port = req->ns->port;
1927 nameserver_failed(req->ns, strerror(err));
1951 if (req->ns->choked) {
1957 r = evdns_request_transmit_to(req, req->ns);
1961 req->ns->choked = 1;
1962 nameserver_write_waiting(req->ns, 1);
1986 struct nameserver *const ns = (struct nameserver *) arg;
1994 nameserver_up(ns);
1995 } else nameserver_probe_failed(ns);
1999 nameserver_send_probe(struct nameserver *const ns) {
2004 log(EVDNS_LOG_DEBUG, "Sending probe to %s", debug_ntoa(ns->address));
2006 req = request_new(TYPE_A, "www.google.com", DNS_QUERY_NO_SEARCH, nameserver_probe_callback, ns);
2010 req->ns = ns;
2079 req->ns = NULL;
2117 struct nameserver *ns;
2126 ns = (struct nameserver *) malloc(sizeof(struct nameserver));
2127 if (!ns) return -1;
2129 memset(ns, 0, sizeof(struct nameserver));
2131 evtimer_set(&ns->timeout_event, nameserver_prod_callback, ns);
2133 ns->socket = socket(PF_INET, SOCK_DGRAM, 0);
2134 if (ns->socket < 0) { err = 1; goto out1; }
2135 evutil_make_socket_nonblocking(ns->socket);
2137 ns->address = address;
2138 ns->port = htons(port);
2139 ns->state = 1;
2140 event_set(&ns->event, ns->socket, EV_READ | EV_PERSIST, nameserver_ready_callback, ns);
2141 if (event_add(&ns->event, NULL) < 0) {
2150 ns->next = ns->prev = ns;
2151 server_head = ns;
2153 ns->next = server_head->next;
2154 ns->prev = server_head;
2155 server_head->next = ns;
2157 server_head->prev = ns;
2166 CLOSE_SOCKET(ns->socket);
2168 free(ns);
2267 req->ns = issuing_now ? nameserver_pick() : NULL;
2278 if (req->ns) {
2846 IP_ADDR_STRING *ns;
2883 ns = &(fixed->DnsServerList);
2884 while (ns) {
2885 r = evdns_nameserver_ip_add_line(ns->IpAddress.String);
2888 (ns->IpAddress.String),(int)GetLastError());
2892 log(EVDNS_LOG_DEBUG,"Succesfully added %s as nameserver",ns->IpAddress.String);
2896 ns = ns->Next;