Adapt bootlogd TIOCCONS call to kfreebsd. Patch from Mats Erik
authorPetter Reinholdtsen <pere@hungry.com>
Fri, 7 Feb 2014 17:03:04 +0000 (17:03 +0000)
committerPetter Reinholdtsen <pere@hungry.com>
Fri, 7 Feb 2014 17:03:04 +0000 (17:03 +0000)
Andersson and Debian.

git-svn-id: svn://svn.sv.gnu.org/sysvinit/sysvinit/trunk@150 456724a4-4300-0410-8514-c89748c515a2

doc/Changelog
src/bootlogd.c

index 1758dd763915957b2e53e16b8b088a24e3e3ae7f..191147d48722be5f92ba842fd81519d7088fe868 100644 (file)
@@ -75,6 +75,8 @@ sysvinit (2.89dsf) UNRELEASED; urgency=low
     Patch from Matias A. Fonzo and Dragora.
   * Rewrite findtty() in bootlogd.c to not chance working directory, to
     reduce the amount of failure that can happin in that function.
+  * Adapt bootlogd TIOCCONS call to kfreebsd.  Patch from Mats Erik
+    Andersson and Debian.
 
  -- Petter Reinholdtsen <pere@hungry.com>  Sun Apr 11 11:28:55 CEST 2010
 
index 34d05c201f35b4cb4910193630819ae26504a696..4f820a8294ca9840a7975a78bb938f85d1f3fec0 100644 (file)
@@ -488,6 +488,9 @@ int main(int argc, char **argv)
        int             realfd;
        int             n, m, i;
        int             todo;
+#ifndef __linux__      /* BSD-style ioctl needs an argument. */
+       int             on = 1;
+#endif
 
        fp = NULL;
        logfile = LOGFILE;
@@ -560,15 +563,20 @@ int main(int argc, char **argv)
                return 1;
        }
 
+#ifdef __linux__
        (void)ioctl(0, TIOCCONS, NULL);
-#if 1
        /* Work around bug in 2.1/2.2 kernels. Fixed in 2.2.13 and 2.3.18 */
        if ((n = open("/dev/tty0", O_RDWR)) >= 0) {
                (void)ioctl(n, TIOCCONS, NULL);
                close(n);
        }
 #endif
-       if (ioctl(pts, TIOCCONS, NULL) < 0) {
+#ifdef __linux__
+       if (ioctl(pts, TIOCCONS, NULL) < 0)
+#else  /* BSD usage of ioctl TIOCCONS. */
+       if (ioctl(pts, TIOCCONS, &on) < 0)
+#endif
+       {
                fprintf(stderr, "bootlogd: ioctl(%s, TIOCCONS): %s\n",
                        buf, strerror(errno));
                return 1;