* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
-#ifndef lint
-static char rcsid[] = "$Id: sys-NeXT.c,v 1.15 1999/03/19 01:29:40 paulus Exp $";
-#endif
+#define RCSID "$Id: sys-NeXT.c,v 1.20 1999/08/13 06:46:17 paulus Exp $"
#include <stdio.h>
#include <termios.h>
#include "pppd.h"
+static const char rcsid[] = RCSID;
+
static int initdisc = -1; /* Initial TTY discipline */
static int initfdflags = -1; /* Initial file descriptor flags for fd */
static int ppp_fd = -1; /* fd which is set to PPP discipline */
static int restore_term; /* 1 => we've munged the terminal */
static struct termios inittermios; /* Initial TTY termios */
-static char *lock_file;
-
static int sockfd; /* socket for doing interface ioctls */
static int pppdev; /* +++ */
/*
* add_fd - add an fd to the set that wait_input waits for.
*/
-void add_fd(int fd)
+void add_fd(fd)
+ int fd;
{
FD_SET(fd, &in_fds);
if (fd > max_in_fd)
/*
* remove_fd - remove an fd from the set that wait_input waits for.
*/
-void remove_fd(int fd)
+void remove_fd(fd)
+ int fd;
{
FD_CLR(fd, &in_fds);
}
return -1;
}
-
+#if 0
/*
* daemon - Detach us from the terminal session.
*/
}
return 0;
}
-
+#endif
char *
strdup(s)
if ((fd = open(WTMPFILE, O_WRONLY|O_APPEND, 0)) < 0)
return;
if (!fstat(fd, &buf)) {
- strlcpy(ut.ut_line, line, sizeof(ut.ut_line));
- strlcpy(ut.ut_name, name, sizeof(ut.ut_name));
- strlcpy(ut.ut_host, host, sizeof(ut.ut_host));
+ strncpy(ut.ut_line, line, sizeof(ut.ut_line));
+ strncpy(ut.ut_name, name, sizeof(ut.ut_name));
+ 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);
}
+#if 0
/*
* Routines for locking and unlocking the serial device, moved here
* from chat.c.
#define LOCK_PREFIX "/usr/spool/uucp/LCK/LCK.."
+static char *lock_file;
+
/*
* lock - create a lock file for the named device
*/
lock_file = NULL;
}
}
+#endif
#if defined(i386) && defined(HAS_BROKEN_IOCTL)
int
return (ioctl(ttyfd, PPPIOCGIDLE, ip) >= 0);
}
+/*
+ * get_ppp_stats - return statistics for the link.
+ */
+int
+get_ppp_stats(u, stats)
+ int u;
+ struct pppd_stats *stats;
+{
+ struct ifpppstatsreq req;
+
+ memset (&req, 0, sizeof (req));
+ strlcpy(req.ifr_name, interface, sizeof(req.ifr_name));
+ if (ioctl(sockfd, SIOCGPPPSTATS, &req) < 0) {
+ error("Couldn't get PPP statistics: %m");
+ return 0;
+ }
+ stats->bytes_in = req.stats.p.ppp_ibytes;
+ stats->bytes_out = req.stats.p.ppp_obytes;
+ return 1;
+}
+
/*
* get_loop_output - read characters from the loopback, form them