Projects
Browse Source     Search     Timeline     Wiki

Changeset 23001

Show
Ignore:
Timestamp:
01/04/07 12:17:27 (23 months ago)
Author:
zarzycki@…
Message:

Prepare for growth.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/launchd/src/launchd_core_logic.c

    r22999 r23001  
    307307static jobmgr_t job_get_bs(job_t j); 
    308308static void job_uncork_fork(job_t j); 
     309static void job_log_stdouterr(job_t j); 
    309310static void job_logv(job_t j, int pri, int err, const char *msg, va_list ap); 
    310311static void job_log(job_t j, int pri, const char *msg, ...) __attribute__((format(printf, 3, 4))); 
     
    16841685 
    16851686void 
     1687job_log_stdouterr(job_t j) 
     1688{ 
     1689        char buf[4001]; 
     1690        ssize_t rsz; 
     1691 
     1692        rsz = read(j->log_redirect_fd, buf, sizeof(buf) - 1); 
     1693 
     1694        if (rsz == 0) { 
     1695                job_assumes(j, close(j->log_redirect_fd) != -1); 
     1696                j->log_redirect_fd = 0; 
     1697        } else if (job_assumes(j, rsz != -1)) { 
     1698                buf[rsz] = '\0'; 
     1699                switch (buf[0]) { 
     1700                case '\n': 
     1701                case '\r': 
     1702                case '\0': 
     1703                        break; 
     1704                default: 
     1705                        job_log(j, LOG_NOTICE, "Standard Out/Error: %s", buf); 
     1706                        break; 
     1707                } 
     1708        } 
     1709} 
     1710 
     1711void 
    16861712job_callback(void *obj, struct kevent *kev) 
    16871713{ 
     
    17171743        case EVFILT_READ: 
    17181744                if (kev->ident == (uintptr_t)j->log_redirect_fd) { 
    1719                         char buf[4001]; 
    1720                         ssize_t rsz; 
    1721  
    1722                         rsz = read(j->log_redirect_fd, buf, sizeof(buf) - 1); 
    1723  
    1724                         if (rsz == 0) { 
    1725                                 job_assumes(j, close(j->log_redirect_fd) != -1); 
    1726                                 j->log_redirect_fd = 0; 
    1727                         } else if (job_assumes(j, rsz != -1)) { 
    1728                                 buf[rsz] = '\0'; 
    1729                                 switch (buf[0]) { 
    1730                                 case '\n': 
    1731                                 case '\r': 
    1732                                 case '\0': 
    1733                                         break; 
    1734                                 default: 
    1735                                         job_log(j, LOG_NOTICE, "Standard Out/Error: %s", buf); 
    1736                                         break; 
    1737                                 } 
    1738                         } 
     1745                        job_log_stdouterr(j); 
    17391746                } else { 
    17401747                        socketgroup_callback(j, kev);