]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/sys-ultrix.c
call lcp_close not lcp_lowerdown when no echo received
[ppp.git] / pppd / sys-ultrix.c
index 0301a8ac1b874721171f1558c76ea71f3ac409ee..ca8f2a4a187532eac34ffebcc9659cf95fa58b81 100644 (file)
@@ -19,7 +19,7 @@
  */
 
 #ifndef lint
-static char rcsid[] = "$Id: sys-ultrix.c,v 1.1 1994/04/18 04:11:11 paulus Exp $";
+static char rcsid[] = "$Id: sys-ultrix.c,v 1.4 1994/05/25 06:30:49 paulus Exp $";
 #endif
 
 /*
@@ -27,11 +27,14 @@ static char rcsid[] = "$Id: sys-ultrix.c,v 1.1 1994/04/18 04:11:11 paulus Exp $"
  */
 
 #include <syslog.h>
-#include <sys/ioctl.h>
+#include <utmp.h>
 #include <sys/types.h>
+#include <sys/file.h>
 #include <sys/socket.h>
+#include <sys/ioctl.h>
 #include <sys/time.h>
 #include <sys/errno.h>
+#include <sys/stat.h>
 
 #include <net/if.h>
 
@@ -43,7 +46,7 @@ static char rcsid[] = "$Id: sys-ultrix.c,v 1.1 1994/04/18 04:11:11 paulus Exp $"
 #include "ppp.h"
 
 static int initdisc = -1;              /* Initial TTY discipline */
-
+extern int kdebugflag;
 
 /*
  * establish_ppp - Turn the serial port into a ppp interface.
@@ -52,6 +55,7 @@ void
 establish_ppp()
 {
     int pppdisc = PPPDISC;
+    int x;
 
     if (ioctl(fd, TIOCGETD, &initdisc) < 0) {
        syslog(LOG_ERR, "ioctl(TIOCGETD): %m");
@@ -615,3 +619,45 @@ char *strdup( in ) char *in;
   (void) strcpy( dup, in );
   return dup;
 }
+
+/*
+ * This logwtmp() implementation is subject to the following copyright:
+ *
+ * Copyright (c) 1988 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+#define        WTMPFILE        "/usr/adm/wtmp"
+
+int
+logwtmp(line, name, host)
+    char *line, *name, *host;
+{
+    int fd;
+    struct stat buf;
+    struct utmp ut;
+
+    if ((fd = open(WTMPFILE, O_WRONLY|O_APPEND, 0)) < 0)
+       return;
+    if (!fstat(fd, &buf)) {
+       (void)strncpy(ut.ut_line, line, sizeof(ut.ut_line));
+       (void)strncpy(ut.ut_name, name, sizeof(ut.ut_name));
+       (void)strncpy(ut.ut_host, host, sizeof(ut.ut_host));
+       (void)time(&ut.ut_time);
+       if (write(fd, (char *)&ut, sizeof(struct utmp)) != sizeof(struct utmp))
+           (void)ftruncate(fd, buf.st_size);
+    }
+    close(fd);
+}