+ if (fds[0].output_mask & (yaz_poll_read|yaz_poll_except))
+ {
+ char buf[512];
+ ssize_t rd = read(fds_response[0], buf, sizeof buf);
+ if (rd <= 0)
+ break;
+ wrbuf_write(w, buf, rd);
+ }
+ if (num == 2 && fds[1].output_mask & yaz_poll_write)
+ {
+ ssize_t wd = write(fds_request[1],
+ hreq->content_buf + no_write,
+ hreq->content_len - no_write);
+ if (wd <= 0)
+ break;
+ no_write += wd;
+ }