mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-18 15:30:21 +00:00
Add check for writeable terminal
Submitted by: mark@grondar.za (and slightly modified)
This commit is contained in:
parent
54b77925ee
commit
f3392428da
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=5297
@ -42,11 +42,30 @@ static char sccsid[] = "@(#)init_disp.c 8.2 (Berkeley) 2/16/94";
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/ioctl_compat.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <err.h>
|
||||
#include "talk.h"
|
||||
|
||||
/*
|
||||
* Make sure the callee can write to the screen
|
||||
*/
|
||||
void check_writeable()
|
||||
{
|
||||
char *tty;
|
||||
struct stat sb;
|
||||
|
||||
if ((tty = ttyname(STDERR_FILENO)) == NULL)
|
||||
err(1, "ttyname");
|
||||
if (stat(tty, &sb) < 0)
|
||||
err(1, "%s", tty);
|
||||
if (!(sb.st_mode & S_IWGRP))
|
||||
errx(1, "The callee cannot write to this terminal, use \"mesg y\".");
|
||||
}
|
||||
|
||||
/*
|
||||
* Set up curses, catch the appropriate signals,
|
||||
* and build the various windows.
|
||||
|
@ -55,6 +55,7 @@ static char sccsid[] = "@(#)talk.c 8.1 (Berkeley) 6/6/93";
|
||||
* Modified to run under 4.1a by Clem Cole and Peter Moore
|
||||
* Modified to run between hosts by Peter Moore, 8/19/82
|
||||
* Modified to run under 4.1c by Peter Moore 3/17/83
|
||||
* Fixed to not run with unwriteable terminals MRVM 28/12/94
|
||||
*/
|
||||
|
||||
main(argc, argv)
|
||||
@ -62,6 +63,7 @@ main(argc, argv)
|
||||
char *argv[];
|
||||
{
|
||||
get_names(argc, argv);
|
||||
check_writeable();
|
||||
init_display();
|
||||
open_ctl();
|
||||
open_sockt();
|
||||
|
Loading…
Reference in New Issue
Block a user