Changeset a76f866 in code for dns.c


Ignore:
Timestamp:
Mar 7, 2014, 3:45:28 PM (11 years ago)
Author:
Mike Belopuhov <mike@…>
Branches:
master
Children:
d06af04
Parents:
7289823
Message:

Improve the read loop in dns_dispatch before we switch to bufferevents

File:
1 edited

Legend:

Unmodified
Added
Removed
  • dns.c

    r7289823 ra76f866  
    124124        struct sockaddr *sa;
    125125        struct icbd_dnsquery q;
     126        ssize_t res;
    126127        int gerr;
    127128
     
    129130                return;
    130131
    131         if (read(fd, &q, sizeof q) != sizeof q) {
     132        do
     133                res = read(fd, &q, sizeof q);
     134        while (res == -1 && errno == EINTR);
     135        if (res == -1 && errno == EAGAIN)
     136                return;
     137        if (res < (ssize_t)sizeof q) {
    132138                syslog(LOG_ERR, "dns read: %m");
    133                 exit(EX_DATAERR);
     139                /* disable dns resolver */
     140                dodns = 0;
     141                return;
    134142        }
    135143
Note: See TracChangeset for help on using the changeset viewer.