Lines Matching refs:wfd

424 channel_register_fds(struct ssh *ssh, Channel *c, int rfd, int wfd, int efd,
431 if (wfd != -1 && wfd != rfd)
432 (void)fcntl(wfd, F_SETFD, FD_CLOEXEC);
433 if (efd != -1 && efd != rfd && efd != wfd)
437 c->wfd = wfd;
438 c->sock = (rfd == wfd) ? rfd : -1;
446 c->wfd_isatty = is_tty || isatty(c->wfd);
464 if (wfd != -1 && !isatty(wfd) &&
465 (val = fcntl(wfd, F_GETFL)) != -1 && !(val & O_NONBLOCK)) {
468 set_nonblock(wfd);
479 if (wfd != -1)
480 set_nonblock(wfd);
492 channel_new(struct ssh *ssh, char *ctype, int type, int rfd, int wfd, int efd,
533 channel_register_fds(ssh, c, rfd, wfd, efd, extusage, nonblock, 0);
562 else if (*fdp == c->wfd &&
575 if (*fdp == c->wfd) {
578 c->wfd = -1;
603 int sock = c->sock, rfd = c->rfd, wfd = c->wfd, efd = c->efd;
608 if (wfd != sock && wfd != rfd)
609 channel_close_fd(ssh, c, &c->wfd);
610 if (efd != sock && efd != rfd && efd != wfd)
1033 c->rfd, c->wfd, c->efd, c->sock, c->ctl_chan,
1229 channel_set_fds(struct ssh *ssh, int id, int rfd, int wfd, int efd,
1240 channel_register_fds(ssh, c, rfd, wfd, efd, extusage, nonblock, is_tty);
2106 c->sock = c->rfd = c->wfd = sock;
2229 len = write(c->wfd, buf, dlen);
2245 len = write(c->wfd, buf, dlen);
2263 if (tcgetattr(c->wfd, &tio) == 0 &&
2469 len = write(c->wfd, sshbuf_ptr(c->output), sshbuf_len(c->output));
2687 c->rfd, c->wfd, c->efd, c->sock,
2713 * c->wfd, c->efd and/or c->sock. Handle those here if they want
2720 /* rfd == wfd */
2721 if (c->wfd == c->rfd) {
2748 /* prepare c->wfd if wanting IO and not already handled above */
2749 if (c->wfd != -1 && c->rfd != c->wfd) {
2756 pfd[p].fd = c->wfd;
2758 dump_channel_poll(__func__, "wfd", c, p, &pfd[p]);
2812 /* Allocate 4x pollfd for each channel (rfd, wfd, efd, sock) */
2853 c->rfd, c->wfd, c->efd, c->sock);
2857 c->self, what, p, pfd->fd, c->rfd, c->wfd, c->efd, c->sock);
2889 /* if rfd is shared with efd/sock then wfd should be too */
2890 if (c->rfd != -1 && c->wfd != -1 && c->rfd != c->wfd &&
2894 c->self, c->rfd, c->wfd, c->efd, c->sock);
2897 /* rfd, potentially shared with wfd, efd and sock */
2901 if (c->rfd == c->wfd) {
2902 fd_ready(c, p, pfd, npfd, c->wfd,
2903 "wfd/r", POLLOUT, SSH_CHAN_IO_WFD);
2919 /* wfd */
2920 if (c->wfd != -1 && c->wfd != c->rfd &&
2922 fd_ready(c, p, pfd, npfd, c->wfd,
2923 "wfd", POLLOUT, SSH_CHAN_IO_WFD);
2924 dump_channel_poll(__func__, "wfd", c, p, pfd);