aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/rwall
diff options
context:
space:
mode:
authorKris Kennaway <kris@FreeBSD.org>2000-11-26 22:36:35 +0000
committerKris Kennaway <kris@FreeBSD.org>2000-11-26 22:36:35 +0000
commit56e7ae90cb45f7803a1821b1fd3178a04a99bdf3 (patch)
treedb71f5fea33b4836a42c9ebd8f71c72c4cc6888e /usr.bin/rwall
parentf313a399333b88c8b3efc798a4519f6e4d4f7f01 (diff)
downloadsrc-56e7ae90cb45f7803a1821b1fd3178a04a99bdf3.tar.gz
src-56e7ae90cb45f7803a1821b1fd3178a04a99bdf3.zip
Cleanup this code a bit by attempting to sync it up with NetBSD and
with each other. Reviewed by: markm, dwmalone
Notes
Notes: svn path=/head/; revision=69231
Diffstat (limited to 'usr.bin/rwall')
-rw-r--r--usr.bin/rwall/rwall.c30
1 files changed, 18 insertions, 12 deletions
diff --git a/usr.bin/rwall/rwall.c b/usr.bin/rwall/rwall.c
index 214a5a59236e..6e0e515da7a3 100644
--- a/usr.bin/rwall/rwall.c
+++ b/usr.bin/rwall/rwall.c
@@ -61,6 +61,7 @@ static const char rcsid[] =
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <time.h>
#include <unistd.h>
#include <utmp.h>
@@ -70,8 +71,9 @@ static const char rcsid[] =
int mbufsize;
char *mbuf;
-void makemsg __P((char *));
+void makemsg __P((char *));
static void usage __P((void));
+char *ttymsg __P((struct iovec *, int, char *, int));
/* ARGSUSED */
int
@@ -120,7 +122,7 @@ main(argc, argv)
static void
usage()
{
- fprintf(stderr, "usage: rwall hostname [file]\n");
+ (void)fprintf(stderr, "usage: rwall hostname [file]\n");
exit(1);
}
@@ -131,14 +133,15 @@ makemsg(fname)
struct tm *lt;
struct passwd *pw;
struct stat sbuf;
- time_t now, time();
+ time_t now;
FILE *fp;
int fd;
- char *whom, hostname[MAXHOSTNAMELEN], lbuf[256], tmpname[64];
+ char *tty, hostname[MAXHOSTNAMELEN], lbuf[256], tmpname[64];
+ const char *whom;
- snprintf(tmpname, sizeof(tmpname), "%s/wall.XXXXXX", _PATH_TMP);
- if (!(fd = mkstemp(tmpname)) || !(fp = fdopen(fd, "r+")))
- errx(1, "can't open temporary file");
+ (void)snprintf(tmpname, sizeof(tmpname), "%s/wall.XXXXXX", _PATH_TMP);
+ if ((fd = mkstemp(tmpname)) == -1 || !(fp = fdopen(fd, "r+")))
+ err(1, "can't open temporary file");
(void)unlink(tmpname);
if (!(whom = getlogin()))
@@ -156,23 +159,26 @@ makemsg(fname)
*/
(void)fprintf(fp, "Remote Broadcast Message from %s@%s\n",
whom, hostname);
- (void)fprintf(fp, " (%s) at %d:%02d ...\n", ttyname(2),
+ tty = ttyname(STDERR_FILENO);
+ if (tty == NULL)
+ tty = "no tty";
+ (void)fprintf(fp, " (%s) at %d:%02d ...\n", tty,
lt->tm_hour, lt->tm_min);
putc('\n', fp);
if (fname && !(freopen(fname, "r", stdin)))
- errx(1, "can't read %s", fname);
+ err(1, "can't read %s", fname);
while (fgets(lbuf, sizeof(lbuf), stdin))
fputs(lbuf, fp);
rewind(fp);
if (fstat(fd, &sbuf))
- errx(1, "can't stat temporary file");
+ err(1, "can't stat temporary file");
mbufsize = sbuf.st_size;
if (!(mbuf = malloc((u_int)mbufsize)))
- errx(1, "out of memory");
+ err(1, "out of memory");
if (fread(mbuf, sizeof(*mbuf), mbufsize, fp) != mbufsize)
- errx(1, "can't read temporary file");
+ err(1, "can't read temporary file");
(void)close(fd);
}