Unverified Commit 184de6b8 by Stéphane Graber Committed by GitHub

Merge pull request #3477 from brauner/2020-07-05/fixes

tree-wide: update terminal terminology once more
parents 3e519859 41808e20
......@@ -1152,11 +1152,11 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
<!--
If set, the container will have a new pseudo tty
instance, making this private to it. The value specifies
the maximum number of pseudo ttys allowed for a pts
the maximum number of pseudo ttys allowed for a pty
instance (this limitation is not implemented yet).
-->
もし設定された場合、コンテナは新しい pseudo tty インスタンスを持ち、それを自身のプライベートとします。
この値は pts インスタンスに許可される pseudo tty の最大数を指定します (この制限はまだ実装されていません)。
この値は pty インスタンスに許可される pseudo tty の最大数を指定します (この制限はまだ実装されていません)。
</para>
</listitem>
</varlistentry>
......
......@@ -844,7 +844,7 @@ by Sungbae Yoo <sungbae.yoo at samsung.com>
<!--
If set, the container will have a new pseudo tty
instance, making this private to it. The value specifies
the maximum number of pseudo ttys allowed for a pts
the maximum number of pseudo ttys allowed for a pty
instance (this limitation is not implemented yet).
-->
만약 지정되었다면, 컨테이너는 새 pseudo tty 인스턴스를 갖는다. 그리고 이것을 자기자신 전용으로 만든다. 지정하는 값은 pseudo tty의 최대 개수를 지정한다. (이 제한은 아직 구현되지 않았다)
......
......@@ -873,7 +873,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
<para>
If set, the container will have a new pseudo tty
instance, making this private to it. The value specifies
the maximum number of pseudo ttys allowed for a pts
the maximum number of pseudo ttys allowed for a pty
instance (this limitation is not implemented yet).
</para>
</listitem>
......
......@@ -32,45 +32,45 @@
#include <sys/types.h>
#include <sys/ioctl.h>
#define _PATH_DEVPTMX "/dev/ptmx"
#define _PATH_DEVPTMX "/dev/ptx"
int openpty (int *aptmx, int *apts, char *name, struct termios *termp,
int openpty (int *aptx, int *apts, char *name, struct termios *termp,
struct winsize *winp)
{
char buf[PATH_MAX];
int ptmx, pts;
int ptx, pty;
ptmx = open(_PATH_DEVPTMX, O_RDWR);
if (ptmx == -1)
ptx = open(_PATH_DEVPTMX, O_RDWR);
if (ptx == -1)
return -1;
if (grantpt(ptmx))
if (grantpt(ptx))
goto fail;
if (unlockpt(ptmx))
if (unlockpt(ptx))
goto fail;
if (ptsname_r(ptmx, buf, sizeof buf))
if (ptyname_r(ptx, buf, sizeof buf))
goto fail;
pts = open(buf, O_RDWR | O_NOCTTY);
if (pts == -1)
pty = open(buf, O_RDWR | O_NOCTTY);
if (pty == -1)
goto fail;
/* XXX Should we ignore errors here? */
if (termp)
tcsetattr(pts, TCSAFLUSH, termp);
tcsetattr(pty, TCSAFLUSH, termp);
if (winp)
ioctl(pts, TIOCSWINSZ, winp);
ioctl(pty, TIOCSWINSZ, winp);
*aptmx = ptmx;
*apts = pts;
*aptx = ptx;
*apts = pty;
if (name != NULL)
strcpy(name, buf);
return 0;
fail:
close(ptmx);
close(ptx);
return -1;
}
......@@ -28,11 +28,11 @@
#include <sys/ioctl.h>
/*
* Create pseudo tty ptmx pts pair with @__name and set terminal
* Create pseudo tty ptx pty pair with @__name and set terminal
* attributes according to @__termp and @__winp and return handles for both
* ends in @__aptmx and @__apts.
* ends in @__aptx and @__apts.
*/
extern int openpty (int *__aptmx, int *__apts, char *__name,
extern int openpty (int *__aptx, int *__apts, char *__name,
const struct termios *__termp,
const struct winsize *__winp);
......
......@@ -932,14 +932,14 @@ static int lxc_attach_terminal_mainloop_init(struct lxc_terminal *terminal,
return 0;
}
static inline void lxc_attach_terminal_close_ptmx(struct lxc_terminal *terminal)
static inline void lxc_attach_terminal_close_ptx(struct lxc_terminal *terminal)
{
close_prot_errno_disarm(terminal->ptmx);
close_prot_errno_disarm(terminal->ptx);
}
static inline void lxc_attach_terminal_close_pts(struct lxc_terminal *terminal)
{
close_prot_errno_disarm(terminal->pts);
close_prot_errno_disarm(terminal->pty);
}
static inline void lxc_attach_terminal_close_peer(struct lxc_terminal *terminal)
......@@ -1332,7 +1332,7 @@ int lxc_attach(struct lxc_container *container, lxc_attach_exec_t exec_function,
close_prot_errno_disarm(ipc_sockets[0]);
if (options->attach_flags & LXC_ATTACH_TERMINAL) {
lxc_attach_terminal_close_ptmx(&terminal);
lxc_attach_terminal_close_ptx(&terminal);
lxc_attach_terminal_close_peer(&terminal);
lxc_attach_terminal_close_log(&terminal);
}
......@@ -1377,7 +1377,7 @@ int lxc_attach(struct lxc_container *container, lxc_attach_exec_t exec_function,
payload.ipc_socket = ipc_sockets[1];
payload.options = options;
payload.init_ctx = init_ctx;
payload.terminal_pts_fd = terminal.pts;
payload.terminal_pts_fd = terminal.pty;
payload.exec_function = exec_function;
payload.exec_payload = exec_payload;
......
......@@ -108,7 +108,7 @@ static const char *lxc_cmd_str(lxc_cmd_t cmd)
* stored directly in data and datalen will be 0.
*
* As a special case, the response for LXC_CMD_CONSOLE is created
* here as it contains an fd for the ptmx pty passed through the
* here as it contains an fd for the ptx pty passed through the
* unix socket.
*/
static int lxc_cmd_rsp_recv(int sock, struct lxc_cmd_rr *cmd)
......@@ -139,7 +139,7 @@ static int lxc_cmd_rsp_recv(int sock, struct lxc_cmd_rr *cmd)
ENOMEM, "Failed to receive response for command \"%s\"",
lxc_cmd_str(cmd->req.cmd));
rspdata->ptmxfd = move_fd(fd_rsp);
rspdata->ptxfd = move_fd(fd_rsp);
rspdata->ttynum = PTR_TO_INT(rsp->data);
rsp->data = rspdata;
}
......@@ -844,7 +844,7 @@ static int lxc_cmd_terminal_winch_callback(int fd, struct lxc_cmd_req *req,
* @name : name of container to connect to
* @ttynum : in: the tty to open or -1 for next available
* : out: the tty allocated
* @fd : out: file descriptor for ptmx side of pty
* @fd : out: file descriptor for ptx side of pty
* @lxcpath : the lxcpath in which the container is running
*
* Returns fd holding tty allocated on success, < 0 on failure
......@@ -871,11 +871,11 @@ int lxc_cmd_console(const char *name, int *ttynum, int *fd, const char *lxcpath)
if (ret == 0)
return log_error(-1, "tty number %d invalid, busy or all ttys busy", *ttynum);
if (rspdata->ptmxfd < 0)
if (rspdata->ptxfd < 0)
return log_error(-1, "Unable to allocate fd for tty %d", rspdata->ttynum);
ret = cmd.rsp.ret; /* socket fd */
*fd = rspdata->ptmxfd;
*fd = rspdata->ptxfd;
*ttynum = rspdata->ttynum;
return log_info(ret, "Alloced fd %d for tty %d via socket %d", *fd, rspdata->ttynum, ret);
......@@ -885,17 +885,17 @@ static int lxc_cmd_console_callback(int fd, struct lxc_cmd_req *req,
struct lxc_handler *handler,
struct lxc_epoll_descr *descr)
{
int ptmxfd, ret;
int ptxfd, ret;
struct lxc_cmd_rsp rsp;
int ttynum = PTR_TO_INT(req->data);
ptmxfd = lxc_terminal_allocate(handler->conf, fd, &ttynum);
if (ptmxfd < 0)
ptxfd = lxc_terminal_allocate(handler->conf, fd, &ttynum);
if (ptxfd < 0)
return LXC_CMD_REAP_CLIENT_FD;
memset(&rsp, 0, sizeof(rsp));
rsp.data = INT_TO_PTR(ttynum);
ret = lxc_abstract_unix_send_fds(fd, &ptmxfd, 1, &rsp, sizeof(rsp));
ret = lxc_abstract_unix_send_fds(fd, &ptxfd, 1, &rsp, sizeof(rsp));
if (ret < 0) {
lxc_terminal_free(handler->conf, fd);
return log_error_errno(LXC_CMD_REAP_CLIENT_FD, errno,
......
......@@ -61,7 +61,7 @@ struct lxc_cmd_rr {
};
struct lxc_cmd_console_rsp_data {
int ptmxfd;
int ptxfd;
int ttynum;
};
......
......@@ -921,33 +921,33 @@ int lxc_allocate_ttys(struct lxc_conf *conf)
for (size_t i = 0; i < ttys->max; i++) {
struct lxc_terminal_info *tty = &ttys->tty[i];
tty->ptmx = -EBADF;
tty->pts = -EBADF;
ret = openpty(&tty->ptmx, &tty->pts, NULL, NULL, NULL);
tty->ptx = -EBADF;
tty->pty = -EBADF;
ret = openpty(&tty->ptx, &tty->pty, NULL, NULL, NULL);
if (ret < 0) {
ttys->max = i;
return log_error_errno(-ENOTTY, ENOTTY, "Failed to create tty %zu", i);
}
ret = ttyname_r(tty->pts, tty->name, sizeof(tty->name));
ret = ttyname_r(tty->pty, tty->name, sizeof(tty->name));
if (ret < 0) {
ttys->max = i;
return log_error_errno(-ENOTTY, ENOTTY, "Failed to retrieve name of tty %zu pts", i);
return log_error_errno(-ENOTTY, ENOTTY, "Failed to retrieve name of tty %zu pty", i);
}
DEBUG("Created tty \"%s\" with ptmx fd %d and pts fd %d",
tty->name, tty->ptmx, tty->pts);
DEBUG("Created tty \"%s\" with ptx fd %d and pty fd %d",
tty->name, tty->ptx, tty->pty);
/* Prevent leaking the file descriptors to the container */
ret = fd_cloexec(tty->ptmx, true);
ret = fd_cloexec(tty->ptx, true);
if (ret < 0)
SYSWARN("Failed to set FD_CLOEXEC flag on ptmx fd %d of tty device \"%s\"",
tty->ptmx, tty->name);
SYSWARN("Failed to set FD_CLOEXEC flag on ptx fd %d of tty device \"%s\"",
tty->ptx, tty->name);
ret = fd_cloexec(tty->pts, true);
ret = fd_cloexec(tty->pty, true);
if (ret < 0)
SYSWARN("Failed to set FD_CLOEXEC flag on pts fd %d of tty device \"%s\"",
tty->pts, tty->name);
SYSWARN("Failed to set FD_CLOEXEC flag on pty fd %d of tty device \"%s\"",
tty->pty, tty->name);
tty->busy = -1;
}
......@@ -964,8 +964,8 @@ void lxc_delete_tty(struct lxc_tty_info *ttys)
for (int i = 0; i < ttys->max; i++) {
struct lxc_terminal_info *tty = &ttys->tty[i];
close_prot_errno_disarm(tty->ptmx);
close_prot_errno_disarm(tty->pts);
close_prot_errno_disarm(tty->ptx);
close_prot_errno_disarm(tty->pty);
}
free_disarm(ttys->tty);
......@@ -986,15 +986,15 @@ static int lxc_send_ttys_to_parent(struct lxc_handler *handler)
int ttyfds[2];
struct lxc_terminal_info *tty = &ttys->tty[i];
ttyfds[0] = tty->ptmx;
ttyfds[1] = tty->pts;
ttyfds[0] = tty->ptx;
ttyfds[1] = tty->pty;
ret = lxc_abstract_unix_send_fds(sock, ttyfds, 2, NULL, 0);
if (ret < 0)
break;
TRACE("Sent tty \"%s\" with ptmx fd %d and pts fd %d to parent",
tty->name, tty->ptmx, tty->pts);
TRACE("Sent tty \"%s\" with ptx fd %d and pty fd %d to parent",
tty->name, tty->ptx, tty->pty);
}
if (ret < 0)
......@@ -1582,7 +1582,7 @@ static inline bool wants_console(const struct lxc_terminal *terminal)
static int lxc_setup_dev_console(const struct lxc_rootfs *rootfs,
const struct lxc_terminal *console,
int pts_mnt_fd)
int pty_mnt_fd)
{
int ret;
char path[PATH_MAX];
......@@ -1615,12 +1615,12 @@ static int lxc_setup_dev_console(const struct lxc_rootfs *rootfs,
if (ret < 0 && errno != EEXIST)
return log_error_errno(-errno, errno, "Failed to create console");
ret = fchmod(console->pts, S_IXUSR | S_IXGRP);
ret = fchmod(console->pty, S_IXUSR | S_IXGRP);
if (ret < 0)
return log_error_errno(-errno, errno, "Failed to set mode \"0%o\" to \"%s\"", S_IXUSR | S_IXGRP, console->name);
if (pts_mnt_fd >= 0) {
ret = move_mount(pts_mnt_fd, "", -EBADF, path, MOVE_MOUNT_F_EMPTY_PATH);
if (pty_mnt_fd >= 0) {
ret = move_mount(pty_mnt_fd, "", -EBADF, path, MOVE_MOUNT_F_EMPTY_PATH);
if (!ret) {
DEBUG("Moved mount \"%s\" onto \"%s\"", console->name, path);
goto finish;
......@@ -1629,21 +1629,21 @@ static int lxc_setup_dev_console(const struct lxc_rootfs *rootfs,
if (ret && errno != ENOSYS)
return log_error_errno(-1, errno,
"Failed to mount %d(%s) on \"%s\"",
pts_mnt_fd, console->name, path);
pty_mnt_fd, console->name, path);
}
ret = safe_mount(console->name, path, "none", MS_BIND, 0, rootfs_path);
if (ret < 0)
return log_error_errno(-1, errno, "Failed to mount %d(%s) on \"%s\"", pts_mnt_fd, console->name, path);
return log_error_errno(-1, errno, "Failed to mount %d(%s) on \"%s\"", pty_mnt_fd, console->name, path);
finish:
DEBUG("Mounted pts device %d(%s) onto \"%s\"", pts_mnt_fd, console->name, path);
DEBUG("Mounted pty device %d(%s) onto \"%s\"", pty_mnt_fd, console->name, path);
return 0;
}
static int lxc_setup_ttydir_console(const struct lxc_rootfs *rootfs,
const struct lxc_terminal *console,
char *ttydir, int pts_mnt_fd)
char *ttydir, int pty_mnt_fd)
{
int ret;
char path[PATH_MAX], lxcpath[PATH_MAX];
......@@ -1686,13 +1686,13 @@ static int lxc_setup_ttydir_console(const struct lxc_rootfs *rootfs,
if (ret < 0 && errno != EEXIST)
return log_error_errno(-errno, errno, "Failed to create console");
ret = fchmod(console->pts, S_IXUSR | S_IXGRP);
ret = fchmod(console->pty, S_IXUSR | S_IXGRP);
if (ret < 0)
return log_error_errno(-errno, errno, "Failed to set mode \"0%o\" to \"%s\"", S_IXUSR | S_IXGRP, console->name);
/* bind mount console->name to '/dev/<ttydir>/console' */
if (pts_mnt_fd >= 0) {
ret = move_mount(pts_mnt_fd, "", -EBADF, lxcpath, MOVE_MOUNT_F_EMPTY_PATH);
if (pty_mnt_fd >= 0) {
ret = move_mount(pty_mnt_fd, "", -EBADF, lxcpath, MOVE_MOUNT_F_EMPTY_PATH);
if (!ret) {
DEBUG("Moved mount \"%s\" onto \"%s\"", console->name, lxcpath);
goto finish;
......@@ -1701,12 +1701,12 @@ static int lxc_setup_ttydir_console(const struct lxc_rootfs *rootfs,
if (ret && errno != ENOSYS)
return log_error_errno(-1, errno,
"Failed to mount %d(%s) on \"%s\"",
pts_mnt_fd, console->name, lxcpath);
pty_mnt_fd, console->name, lxcpath);
}
ret = safe_mount(console->name, lxcpath, "none", MS_BIND, 0, rootfs_path);
if (ret < 0)
return log_error_errno(-1, errno, "Failed to mount %d(%s) on \"%s\"", pts_mnt_fd, console->name, lxcpath);
return log_error_errno(-1, errno, "Failed to mount %d(%s) on \"%s\"", pty_mnt_fd, console->name, lxcpath);
DEBUG("Mounted \"%s\" onto \"%s\"", console->name, lxcpath);
finish:
......@@ -1722,13 +1722,13 @@ finish:
static int lxc_setup_console(const struct lxc_rootfs *rootfs,
const struct lxc_terminal *console, char *ttydir,
int pts_mnt_fd)
int pty_mnt_fd)
{
if (!ttydir)
return lxc_setup_dev_console(rootfs, console, pts_mnt_fd);
return lxc_setup_dev_console(rootfs, console, pty_mnt_fd);
return lxc_setup_ttydir_console(rootfs, console, ttydir, pts_mnt_fd);
return lxc_setup_ttydir_console(rootfs, console, ttydir, pty_mnt_fd);
}
static int parse_mntopt(char *opt, unsigned long *flags, char **data, size_t size)
......@@ -2546,10 +2546,10 @@ struct lxc_conf *lxc_conf_init(void)
new->console.path = NULL;
new->console.peer = -1;
new->console.proxy.busy = -1;
new->console.proxy.ptmx = -1;
new->console.proxy.pts = -1;
new->console.ptmx = -1;
new->console.pts = -1;
new->console.proxy.ptx = -1;
new->console.proxy.pty = -1;
new->console.ptx = -1;
new->console.pty = -1;
new->console.name[0] = '\0';
memset(&new->console.ringbuf, 0, sizeof(struct lxc_ringbuf));
new->maincmd_fd = -1;
......@@ -3183,7 +3183,7 @@ static int lxc_setup_boot_id(void)
int lxc_setup(struct lxc_handler *handler)
{
__do_close int pts_mnt_fd = -EBADF;
__do_close int pty_mnt_fd = -EBADF;
int ret;
const char *lxcpath = handler->lxcpath, *name = handler->name;
struct lxc_conf *lxc_conf = handler->conf;
......@@ -3223,9 +3223,9 @@ int lxc_setup(struct lxc_handler *handler)
}
if (wants_console(&lxc_conf->console)) {
pts_mnt_fd = open_tree(-EBADF, lxc_conf->console.name,
pty_mnt_fd = open_tree(-EBADF, lxc_conf->console.name,
OPEN_TREE_CLONE | OPEN_TREE_CLOEXEC | AT_EMPTY_PATH);
if (pts_mnt_fd < 0)
if (pty_mnt_fd < 0)
SYSTRACE("Failed to create detached mount for container's console \"%s\"",
lxc_conf->console.name);
else
......@@ -3310,7 +3310,7 @@ int lxc_setup(struct lxc_handler *handler)
return log_error(-1, "Failed to \"/proc\" LSMs");
ret = lxc_setup_console(&lxc_conf->rootfs, &lxc_conf->console,
lxc_conf->ttys.dir, pts_mnt_fd);
lxc_conf->ttys.dir, pty_mnt_fd);
if (ret < 0)
return log_error(-1, "Failed to setup console");
......
......@@ -67,7 +67,7 @@ struct criu_opts {
struct lxc_handler *handler;
int console_fd;
/* The path that is bind mounted from /dev/console, if any. We don't
* want to use `--ext-mount-map auto`'s result here because the pts
* want to use `--ext-mount-map auto`'s result here because the pty
* device may have a different path (e.g. if the pty number is
* different) on the target host. NULL if lxc.console.path = "none".
*/
......@@ -1020,7 +1020,7 @@ static void do_restore(struct lxc_container *c, int status_pipe, struct migrate_
os.action = "restore";
os.user = opts;
os.c = c;
os.console_fd = c->lxc_conf->console.pts;
os.console_fd = c->lxc_conf->console.pty;
os.criu_version = criu_version;
os.handler = handler;
......
......@@ -537,12 +537,12 @@ static bool do_lxcapi_unfreeze(struct lxc_container *c)
WRAP_API(bool, lxcapi_unfreeze)
static int do_lxcapi_console_getfd(struct lxc_container *c, int *ttynum, int *ptmxfd)
static int do_lxcapi_console_getfd(struct lxc_container *c, int *ttynum, int *ptxfd)
{
if (!c)
return -1;
return lxc_terminal_getfd(c, ttynum, ptmxfd);
return lxc_terminal_getfd(c, ttynum, ptxfd);
}
WRAP_API_2(int, lxcapi_console_getfd, int *, int *)
......
......@@ -563,7 +563,7 @@ struct lxc_container {
* \param c Container.
* \param[in,out] ttynum Terminal number to attempt to allocate,
* or \c -1 to allocate the first available tty.
* \param[out] ptmxfd File descriptor referring to the ptmx side of the pty.
* \param[out] ptxfd File descriptor referring to the ptx side of the pty.
*
* \return tty file descriptor number on success, or \c -1 on
* failure.
......@@ -575,7 +575,7 @@ struct lxc_container {
* descriptor when no longer required so that it may be allocated
* by another caller.
*/
int (*console_getfd)(struct lxc_container *c, int *ttynum, int *ptmxfd);
int (*console_getfd)(struct lxc_container *c, int *ttynum, int *ptxfd);
/*!
* \brief Allocate and run a console tty.
......
......@@ -1297,14 +1297,14 @@ static int do_start(void *data)
* setup on its console ie. the pty allocated in lxc_terminal_setup() so
* make sure that that pty is stdin,stdout,stderr.
*/
if (handler->conf->console.pts >= 0) {
if (handler->conf->console.pty >= 0) {
if (handler->daemonize || !handler->conf->is_execute)
ret = set_stdfds(handler->conf->console.pts);
ret = set_stdfds(handler->conf->console.pty);
else
ret = lxc_terminal_set_stdfds(handler->conf->console.pts);
ret = lxc_terminal_set_stdfds(handler->conf->console.pty);
if (ret < 0) {
ERROR("Failed to redirect std{in,out,err} to pty file descriptor %d",
handler->conf->console.pts);
handler->conf->console.pty);
goto out_warn_father;
}
}
......@@ -1331,7 +1331,7 @@ static int do_start(void *data)
close_prot_errno_disarm(handler->sigfd);
if (handler->conf->console.pts < 0 && handler->daemonize) {
if (handler->conf->console.pty < 0 && handler->daemonize) {
if (devnull_fd < 0) {
devnull_fd = open_devnull();
if (devnull_fd < 0)
......@@ -1483,9 +1483,9 @@ static int lxc_recv_ttys_from_child(struct lxc_handler *handler)
tty = &ttys->tty[i];
tty->busy = -1;
tty->ptmx = ttyfds[0];
tty->pts = ttyfds[1];
TRACE("Received pty with ptmx fd %d and pts fd %d from child", tty->ptmx, tty->pts);
tty->ptx = ttyfds[0];
tty->pty = ttyfds[1];
TRACE("Received pty with ptx fd %d and pty fd %d from child", tty->ptx, tty->pty);
}
if (ret < 0)
......
......@@ -15,14 +15,14 @@ struct lxc_conf;
struct lxc_epoll_descr;
struct lxc_terminal_info {
/* the path name of the pts side */
/* the path name of the pty side */
char name[PATH_MAX];
/* the file descriptor of the ptmx */
int ptmx;
/* the file descriptor of the ptx */
int ptx;
/* the file descriptor of the pts */
int pts;
/* the file descriptor of the pty */
int pty;
/* whether the terminal is currently used */
int busy;
......@@ -32,7 +32,7 @@ struct lxc_terminal_state {
struct lxc_list node;
int stdinfd;
int stdoutfd;
int ptmxfd;
int ptxfd;
/* Escape sequence to use for exiting the terminal. A single char can
* be specified. The terminal can then exited by doing: Ctrl +
......@@ -57,8 +57,8 @@ struct lxc_terminal_state {
};
struct lxc_terminal {
int pts;
int ptmx;
int pty;
int ptx;
int peer;
struct lxc_terminal_info proxy;
struct lxc_epoll_descr *descr;
......@@ -102,10 +102,10 @@ extern int lxc_terminal_allocate(struct lxc_conf *conf, int sockfd, int *ttynum
/**
* Create a new terminal:
* - calls openpty() to allocate a ptmx/pts pair
* - sets the FD_CLOEXEC flag on the ptmx/pts fds
* - calls openpty() to allocate a ptx/pty pair
* - sets the FD_CLOEXEC flag on the ptx/pty fds
* - allocates either the current controlling terminal (default) or a user
* specified terminal as proxy for the newly created ptmx/pts pair
* specified terminal as proxy for the newly created ptx/pty pair
* - sets up SIGWINCH handler, winsz, and new terminal settings
* (Handlers for SIGWINCH and I/O are not registered in a mainloop.)
*/
......@@ -164,7 +164,7 @@ extern int lxc_console(struct lxc_container *c, int ttynum,
* the range specified by lxc.tty.max to allocate a specific tty.
*/
extern int lxc_terminal_getfd(struct lxc_container *c, int *ttynum,
int *ptmxfd);
int *ptxfd);
/**
* Make fd a duplicate of the standard file descriptors. The fd is made a
......@@ -183,12 +183,12 @@ extern int lxc_terminal_stdin_cb(int fd, uint32_t events, void *cbdata,
struct lxc_epoll_descr *descr);
/**
* Handler for events on the ptmx fd of the terminal. To be registered via
* Handler for events on the ptx fd of the terminal. To be registered via
* the corresponding functions declared and defined in mainloop.{c,h} or
* lxc_terminal_mainloop_add().
* This function exits the loop cleanly when an EPOLLHUP event is received.
*/
extern int lxc_terminal_ptmx_cb(int fd, uint32_t events, void *cbdata,
extern int lxc_terminal_ptx_cb(int fd, uint32_t events, void *cbdata,
struct lxc_epoll_descr *descr);
/**
......@@ -202,9 +202,9 @@ extern int lxc_setup_tios(int fd, struct termios *oldtios);
* lxc_terminal_winsz: propagate winsz from one terminal to another
*
* @srcfd
* - terminal to get size from (typically a pts pty)
* - terminal to get size from (typically a pty pty)
* @dstfd
* - terminal to set size on (typically a ptmx pty)
* - terminal to set size on (typically a ptx pty)
*/
extern void lxc_terminal_winsz(int srcfd, int dstfd);
......
......@@ -37,14 +37,14 @@
} while (0)
static void test_console_close_all(int ttyfd[MAXCONSOLES],
int ptmxfd[MAXCONSOLES])
int ptxfd[MAXCONSOLES])
{
int i;
for (i = 0; i < MAXCONSOLES; i++) {
if (ptmxfd[i] != -1) {
close(ptmxfd[i]);
ptmxfd[i] = -1;
if (ptxfd[i] != -1) {
close(ptxfd[i]);
ptxfd[i] = -1;
}
if (ttyfd[i] != -1) {
......@@ -59,14 +59,14 @@ static int test_console_running_container(struct lxc_container *c)
int nrconsoles, i, ret = -1;
int ttynum [MAXCONSOLES];
int ttyfd [MAXCONSOLES];
int ptmxfd[MAXCONSOLES];
int ptxfd[MAXCONSOLES];
for (i = 0; i < MAXCONSOLES; i++)
ttynum[i] = ttyfd[i] = ptmxfd[i] = -1;
ttynum[i] = ttyfd[i] = ptxfd[i] = -1;
ttynum[0] = 1;
ret = c->console_getfd(c, &ttynum[0], &ptmxfd[0]);
ret = c->console_getfd(c, &ttynum[0], &ptxfd[0]);
if (ret < 0) {
TSTERR("console allocate failed");
goto err1;
......@@ -79,12 +79,12 @@ static int test_console_running_container(struct lxc_container *c)
}
/* attempt to alloc same ttynum */
ret = c->console_getfd(c, &ttynum[0], &ptmxfd[1]);
ret = c->console_getfd(c, &ttynum[0], &ptxfd[1]);
if (ret != -1) {
TSTERR("console allocate should fail for allocated ttynum %d", ttynum[0]);
goto err2;
}
close(ptmxfd[0]); ptmxfd[0] = -1;
close(ptxfd[0]); ptxfd[0] = -1;
close(ttyfd[0]); ttyfd[0] = -1;
/* ensure we can allocate all consoles, we do this a few times to
......@@ -92,7 +92,7 @@ static int test_console_running_container(struct lxc_container *c)
*/
for (i = 0; i < 10; i++) {
for (nrconsoles = 0; nrconsoles < MAXCONSOLES; nrconsoles++) {
ret = c->console_getfd(c, &ttynum[nrconsoles], &ptmxfd[nrconsoles]);
ret = c->console_getfd(c, &ttynum[nrconsoles], &ptxfd[nrconsoles]);
if (ret < 0)
break;
ttyfd[nrconsoles] = ret;
......@@ -103,13 +103,13 @@ static int test_console_running_container(struct lxc_container *c)
goto err2;
}
test_console_close_all(ttyfd, ptmxfd);
test_console_close_all(ttyfd, ptxfd);
}
ret = 0;
err2:
test_console_close_all(ttyfd, ptmxfd);
test_console_close_all(ttyfd, ptxfd);
err1:
return ret;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment