Changeset 9c04f2a in code


Ignore:
Timestamp:
Mar 7, 2014, 4:40:24 PM (11 years ago)
Author:
Mike Belopuhov <mike@…>
Branches:
master
Children:
82d3c1f
Parents:
2cdab10
Message:

Make dns_done read loop work the same way dns_dispatch does

File:
1 edited

Legend:

Unmodified
Added
Removed
  • dns.c

    r2cdab10 r9c04f2a  
    136136                return;
    137137        if (res < (ssize_t)sizeof q) {
    138                 syslog(LOG_ERR, "dns read: %m");
     138                syslog(LOG_ERR, "dns_dispatch read: %m");
    139139                /* disable dns resolver */
    140140                dodns = 0;
     
    154154        memcpy(&q.u.rep, host, sizeof host);
    155155        if (write(fd, &q, sizeof q) != sizeof q)
    156                 syslog(LOG_ERR, "dns write: %m");
     156                syslog(LOG_ERR, "dns_dispatch write: %m");
    157157}
    158158
     
    162162        struct icb_session *is;
    163163        struct icbd_dnsquery q;
     164        ssize_t res;
    164165
    165166        if (event != EV_READ)
    166167                return;
    167168
    168         if (read(fd, &q, sizeof q) != sizeof q) {
    169                 syslog(LOG_ERR, "read: %m");
     169        do
     170                res = read(fd, &q, sizeof q);
     171        while (res == -1 && errno == EINTR);
     172        if (res == -1 && errno == EAGAIN)
     173                return;
     174        if (res < (ssize_t)sizeof q) {
     175                syslog(LOG_ERR, "dns_done read: %m");
    170176                return;
    171177        }
     
    202208        memcpy(&q.u.req, ss, sizeof *ss);
    203209        if (write(dns_pipe, &q, sizeof q) != sizeof q) {
    204                 syslog(LOG_ERR, "write: %m");
     210                syslog(LOG_ERR, "dns_rresolv write: %m");
    205211                exit(EX_OSERR);
    206212        }
Note: See TracChangeset for help on using the changeset viewer.