strncpy(pty->name, ptsname(pty->master_fd), FILENAME_MAX-1);
#endif
- {
- /*
- * Set the pty master into non-blocking mode.
- */
- int fl;
- fl = fcntl(pty->master_fd, F_GETFL);
- if (fl != -1 && !(fl & O_NONBLOCK))
- fcntl(pty->master_fd, F_SETFL, fl | O_NONBLOCK);
- }
+ nonblock(pty->master_fd);
if (!ptys_by_fd)
ptys_by_fd = newtree234(pty_compare_by_fd);
* freed by the caller.
*/
static const char *pty_init(void *frontend, void **backend_handle, Conf *conf,
- char *host, int port, char **realhost, int nodelay,
- int keepalive)
+ const char *host, int port, char **realhost,
+ int nodelay, int keepalive)
{
int slavefd;
pid_t pid, pgrp;
}
close(pty->master_fd);
- fcntl(slavefd, F_SETFD, 0); /* don't close on exec */
+ noncloexec(slavefd);
dup2(slavefd, 0);
dup2(slavefd, 1);
dup2(slavefd, 2);
*backend_handle = pty;
- *realhost = dupprintf("\0");
+ *realhost = dupstr("");
return NULL;
}
/*
* Called to send data down the pty.
*/
-static int pty_send(void *handle, char *buf, int len)
+static int pty_send(void *handle, const char *buf, int len)
{
Pty pty = (Pty)handle;