- if (connect(s, &_res.nsaddr_list[ns],
- sizeof(struct sockaddr)) < 0 ||
- send(s, buf, buflen, 0) != buflen) {
+ if (_res.nscount == 1 || retry == _res.retry) {
+ /*
+ * Don't use connect if we might
+ * still receive a response
+ * from another server.
+ */
+ if (connect(s, &_res.nsaddr_list[ns],
+ sizeof(struct sockaddr)) < 0 ||
+ send(s, buf, buflen, 0) != buflen) {