version 1.44, 2000/04/03 07:07:15 |
version 1.45, 2000/04/04 06:18:01 |
|
|
char buf[16*1024]; |
char buf[16*1024]; |
int len; |
int len; |
|
|
|
/** XXX handle drain efd, too */ |
if (c->efd != -1) { |
if (c->efd != -1) { |
if (c->extended_usage == CHAN_EXTENDED_WRITE && |
if (c->extended_usage == CHAN_EXTENDED_WRITE && |
FD_ISSET(c->efd, writeset) && |
FD_ISSET(c->efd, writeset) && |
|
|
len = read(c->efd, buf, sizeof(buf)); |
len = read(c->efd, buf, sizeof(buf)); |
debug("channel %d: read %d from efd %d", |
debug("channel %d: read %d from efd %d", |
c->self, len, c->efd); |
c->self, len, c->efd); |
if (len > 0) |
if (len == 0) { |
|
debug("channel %d: closing efd %d", |
|
c->self, c->efd); |
|
close(c->efd); |
|
c->efd = -1; |
|
} else if (len > 0) |
buffer_append(&c->extended, buf, len); |
buffer_append(&c->extended, buf, len); |
} |
} |
} |
} |