tty: Set control sessions on pty managers

This commit is contained in:
K. Lange 2024-01-19 20:14:18 +09:00
parent fa8a6e20ab
commit e7a681f413
5 changed files with 10 additions and 1 deletions

View File

@ -56,6 +56,8 @@ int main(int argc, char * argv[]) {
dup2(fd_serial, 0);
dup2(fd_serial, 1);
dup2(fd_serial, 2);
ioctl(STDIN_FILENO, TIOCSCTTY, &(int){1});
tcsetpgrp(STDIN_FILENO, getpid());
system("stty sane");

View File

@ -144,8 +144,10 @@ do_fork:
f = fork();
if (getpid() != pid) {
ioctl(STDIN_FILENO, IOCTLTTYLOGIN, &uid);
toaru_set_credentials(uid);
setsid();
ioctl(STDIN_FILENO, TIOCSCTTY, &(int){1});
tcsetpgrp(STDIN_FILENO, getpid());
toaru_set_credentials(uid);
char * args[] = {
getenv("SHELL"),
NULL

View File

@ -112,6 +112,8 @@ int main(int argc, char * argv[]) {
dup2(fd_slave, 0);
dup2(fd_slave, 1);
dup2(fd_slave, 2);
ioctl(STDIN_FILENO, TIOCSCTTY, &(int){1});
tcsetpgrp(STDIN_FILENO, getpid());
system("ttysize -q");

View File

@ -1298,6 +1298,8 @@ int main(int argc, char ** argv) {
dup2(fd_slave, 0);
dup2(fd_slave, 1);
dup2(fd_slave, 2);
ioctl(STDIN_FILENO, TIOCSCTTY, &(int){1});
tcsetpgrp(STDIN_FILENO, getpid());
if (argv[optind] != NULL) {
char * tokens[] = {argv[optind], NULL};

View File

@ -2689,6 +2689,7 @@ int main(int argc, char ** argv) {
dup2(fd_slave, 1);
dup2(fd_slave, 2);
ioctl(STDIN_FILENO, TIOCSCTTY, &(int){1});
tcsetpgrp(STDIN_FILENO, getpid());
/* Set the TERM environment variable. */