]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - atc/log.c
trailing whitespace
[bsdgames-darwin.git] / atc / log.c
index 0db1b4d92fbd30b415e3938ee757f2135960b7ed..08e092bbdd8d169db88da2d2f733bd948f149b33 100644 (file)
--- a/atc/log.c
+++ b/atc/log.c
@@ -1,4 +1,4 @@
-/*     $NetBSD: log.c,v 1.16 2005/08/10 17:53:28 rpaulo Exp $  */
+/*     $NetBSD: log.c,v 1.24 2019/03/19 00:11:34 pgoyette Exp $        */
 
 /*-
  * Copyright (c) 1990, 1993
 #if 0
 static char sccsid[] = "@(#)log.c      8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: log.c,v 1.16 2005/08/10 17:53:28 rpaulo Exp $");
+__RCSID("$NetBSD: log.c,v 1.24 2019/03/19 00:11:34 pgoyette Exp $");
 #endif
 #endif /* not lint */
 
-#include "include.h"
+#include <sys/types.h>
+#include <sys/utsname.h>
+#include <sys/stat.h>  /* for umask(2) */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <pwd.h>
+#include <err.h>
+
 #include "pathnames.h"
+#include "def.h"
+#include "struct.h"
+#include "extern.h"
+#include "tunable.h"
 
 static FILE *score_fp;
 
-int
+static int
 compar(const void *va, const void *vb)
 {
        const SCORE     *a, *b;
@@ -78,19 +92,20 @@ compar(const void *va, const void *vb)
 #define MIN(t)         (((t) % SECAHOUR) / SECAMIN)
 #define SEC(t)         ((t) % SECAMIN)
 
-const char *
+static const char *
 timestr(int t)
 {
        static char     s[80];
 
        if (DAY(t) > 0)
-               (void)sprintf(s, "%dd+%02dhrs", DAY(t), HOUR(t));
+               (void)snprintf(s, sizeof(s), "%dd+%02dhrs", DAY(t), HOUR(t));
        else if (HOUR(t) > 0)
-               (void)sprintf(s, "%d:%02d:%02d", HOUR(t), MIN(t), SEC(t));
+               (void)snprintf(s, sizeof(s), "%d:%02d:%02d", HOUR(t), MIN(t),
+                       SEC(t));
        else if (MIN(t) > 0)
-               (void)sprintf(s, "%d:%02d", MIN(t), SEC(t));
+               (void)snprintf(s, sizeof(s), "%d:%02d", MIN(t), SEC(t));
        else if (SEC(t) > 0)
-               (void)sprintf(s, ":%02d", SEC(t));
+               (void)snprintf(s, sizeof(s), ":%02d", SEC(t));
        else
                *s = '\0';
 
@@ -105,7 +120,11 @@ open_score_file(void)
        int flags;
 
        old_mask = umask(0);
+#if defined(O_NOFOLLOW)
+       score_fd = open(_PATH_SCORE, O_CREAT|O_RDWR|O_NOFOLLOW, 0664);
+#else
        score_fd = open(_PATH_SCORE, O_CREAT|O_RDWR, 0664);
+#endif
        (void)umask(old_mask);
        if (score_fd < 0) {
                warn("open %s", _PATH_SCORE);
@@ -142,6 +161,12 @@ log_score(int list_em)
        struct utsname  lname;
        long            offset;
 
+       if (safe_planes == 1)
+               printf("You directed 1 plane safely to its destination.\n\n");
+       else
+               printf("You directed %d planes safely to their destinations.\n\n",
+                   safe_planes);
+
        if (score_fp == NULL) {
                warnx("no score file available");
                return (-1);
@@ -151,7 +176,7 @@ log_score(int list_em)
        if (flock(fileno(score_fp), LOCK_EX) < 0)
 #endif
 #ifdef SYSV
-       while (lockf(fileno(score_fp), F_LOCK, 1) < 0)
+       if (lockf(fileno(score_fp), F_LOCK, 1) < 0)
 #endif
        {
                warn("flock %s", _PATH_SCORE);
@@ -175,7 +200,7 @@ log_score(int list_em)
                                (int)getuid());
                        return (-1);
                }
-               (void)strcpy(thisscore.name, pw->pw_name);
+               (void)strlcpy(thisscore.name, pw->pw_name, SCORE_NAME_LEN);
                (void)uname(&lname);
                (void)strlcpy(thisscore.host, lname.nodename, 
                    sizeof(thisscore.host));
@@ -187,7 +212,7 @@ log_score(int list_em)
                        return (-1);
                }
                cp++;
-               (void)strcpy(thisscore.game, cp);
+               (void)strlcpy(thisscore.game, cp, SCORE_GAME_LEN);
 
                thisscore.time = clck;
                thisscore.planes = safe_planes;
@@ -273,7 +298,7 @@ log_score(int list_em)
        (void)printf("%2s:  %-8s  %-8s  %-18s  %4s  %9s  %4s\n", "#", "name",
            "host", "game", "time", "real time", "planes safe");
        (void)printf("-------------------------------------------------------");
-       (void)printf("------------------------\n");
+       (void)printf("-------------------------\n");
        for (i = 0; i < num_scores; i++) {
                cp = strchr(score[i].host, '.');
                if (cp != NULL)
@@ -289,7 +314,7 @@ log_score(int list_em)
 
 /* ARGSUSED */
 void
-log_score_quit(int dummy __attribute__((__unused__)))
+log_score_quit(int dummy __unused)
 {
        (void)log_score(0);
        exit(0);