remove a couple of ansi-C-isms.

loop_frame is needed by some sys-*.c.
print connect time and bytes transferred on close;
added get_ppp_stats to sys-*.c.
This commit is contained in:
Paul Mackerras 1999-03-19 04:23:54 +00:00
parent fdc0c58f5a
commit ab7cff041f
13 changed files with 240 additions and 30 deletions

View File

@ -18,7 +18,7 @@
*/
#ifndef lint
static char rcsid[] = "$Id: demand.c,v 1.9 1999/03/19 01:21:28 paulus Exp $";
static char rcsid[] = "$Id: demand.c,v 1.10 1999/03/19 04:23:38 paulus Exp $";
#endif
#include <stdio.h>
@ -62,7 +62,6 @@ struct packet *pend_q;
struct packet *pend_qtail;
static int active_packet __P((unsigned char *, int));
static int loop_frame __P((unsigned char *, int));
/*
* demand_conf - configure the interface for doing dial-on-demand.
@ -255,7 +254,7 @@ loop_chars(p, n)
* We apply the active_filter to see if we want this packet to
* bring up the link.
*/
static int
int
loop_frame(frame, len)
unsigned char *frame;
int len;

View File

@ -18,7 +18,7 @@
*/
#ifndef lint
static char rcsid[] = "$Id: ipcp.c,v 1.42 1999/03/19 01:19:31 paulus Exp $";
static char rcsid[] = "$Id: ipcp.c,v 1.43 1999/03/19 04:23:39 paulus Exp $";
#endif
/*
@ -1520,6 +1520,8 @@ ipcp_down(f)
fsm *f;
{
IPCPDEBUG(("ipcp: down"));
if (get_ppp_stats(f->unit, &link_stats))
link_stats_valid = 1;
if (ipcp_is_up) {
ipcp_is_up = 0;
np_down(f->unit, PPP_IP);

View File

@ -18,7 +18,7 @@
*/
#ifndef lint
static char rcsid[] = "$Id: main.c,v 1.62 1999/03/19 01:26:41 paulus Exp $";
static char rcsid[] = "$Id: main.c,v 1.63 1999/03/19 04:23:40 paulus Exp $";
#endif
#include <stdio.h>
@ -115,6 +115,11 @@ char *no_ppp_msg = "Sorry - this system lacks PPP kernel support\n";
GIDSET_TYPE groups[NGROUPS_MAX];/* groups the user is in */
int ngroups; /* How many groups valid in groups */
static struct timeval start_time; /* Time when link was started. */
struct ppp_stats link_stats;
int link_stats_valid;
/* Prototypes for procedures local to this file. */
static void create_pidfile __P((void));
@ -190,6 +195,7 @@ main(argc, argv)
struct protent *protp;
struct stat statbuf;
char numbuf[16];
struct timeval now;
phase = PHASE_INITIALIZE;
p = ttyname(0);
@ -562,6 +568,7 @@ main(argc, argv)
* incoming events (reply, timeout, etc.).
*/
notice("Connect: %s <--> %s", ifname, devnam);
gettimeofday(&start_time, NULL);
lcp_lowerup(0);
lcp_open(0); /* Start protocol */
open_ccp_flag = 0;
@ -594,6 +601,19 @@ main(argc, argv)
reap_kids(); /* Don't leave dead kids lying around */
}
/*
* Print connect time and statistics.
*/
if (gettimeofday(&now, NULL) >= 0) {
int t = now.tv_sec - start_time.tv_sec;
t = (t + 5) / 6; /* now in 1/10ths of minutes */
info("Connect time %d.%d minutes", t/10, t%10);
}
if (link_stats_valid) {
info("Send %d bytes, received %d bytes",
link_stats.p.ppp_obytes, link_stats.p.ppp_ibytes);
}
/*
* If we may want to bring the link up again, transfer
* the ppp unit back to the loopback. Set the
@ -1883,7 +1903,10 @@ script_unsetenv(var)
* always leaves destination null-terminated (for len > 0).
*/
size_t
strlcpy(char *dest, const char *src, size_t len)
strlcpy(dest, src, len)
char *dest;
const char *src;
size_t len;
{
size_t ret = strlen(src);
@ -1903,7 +1926,10 @@ strlcpy(char *dest, const char *src, size_t len)
* always leaves destination null-terminated (for len > 0).
*/
size_t
strlcat(char *dest, const char *src, size_t len)
strlcat(dest, src, len)
char *dest;
const char *src;
size_t len;
{
size_t dlen = strlen(dest);

View File

@ -18,14 +18,13 @@
*/
#ifndef lint
static char rcsid[] = "$Id: options.c,v 1.52 1999/03/19 01:27:43 paulus Exp $";
static char rcsid[] = "$Id: options.c,v 1.53 1999/03/19 04:23:44 paulus Exp $";
#endif
#include <ctype.h>
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <limits.h>
#include <stdlib.h>
#include <termios.h>
#include <syslog.h>

View File

@ -16,7 +16,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* $Id: pppd.h,v 1.32 1999/03/19 01:28:27 paulus Exp $
* $Id: pppd.h,v 1.33 1999/03/19 04:23:45 paulus Exp $
*/
/*
@ -27,6 +27,7 @@
#define __PPPD_H__
#include <stdio.h> /* for FILE */
#include <limits.h> /* for NGROUPS_MAX */
#include <sys/param.h> /* for MAXPATHLEN and BSD4_4, if defined */
#include <sys/types.h> /* for u_int32_t, if defined */
#include <sys/time.h> /* for struct timeval */
@ -130,6 +131,8 @@ extern char **script_env; /* Environment variables for scripts */
extern int detached; /* Have detached from controlling tty */
extern GIDSET_TYPE groups[NGROUPS_MAX]; /* groups the user is in */
extern int ngroups; /* How many groups valid in groups */
extern struct ppp_stats link_stats; /* byte/packet counts etc. for link */
extern int link_stats_valid; /* set if link_stats is valid */
/*
* Variables set by command-line options.
@ -302,6 +305,7 @@ void demand_unblock __P((void)); /* set all NPs to pass packets */
void demand_discard __P((void)); /* set all NPs to discard packets */
void demand_rexmit __P((int)); /* retransmit saved frames for an NP */
int loop_chars __P((unsigned char *, int)); /* process chars from loopback */
int loop_frame __P((unsigned char *, int)); /* should we bring link up? */
/* Procedures exported from sys-*.c */
void sys_init __P((void)); /* Do system-dependent initialization */
@ -337,6 +341,8 @@ void ccp_flags_set __P((int, int, int));
int ccp_fatal_error __P((int)); /* Test for fatal decomp error in kernel */
int get_idle_time __P((int, struct ppp_idle *));
/* Find out how long link has been idle */
int get_ppp_stats __P((int, struct ppp_stats *));
/* Return link statistics */
int sifvjcomp __P((int, int, int, int));
/* Configure VJ TCP header compression */
int sifup __P((int)); /* Configure i/f up (for IP) */

View File

@ -20,7 +20,7 @@
*/
#ifndef lint
static char rcsid[] = "$Id: sys-NeXT.c,v 1.15 1999/03/19 01:29:40 paulus Exp $";
static char rcsid[] = "$Id: sys-NeXT.c,v 1.16 1999/03/19 04:23:46 paulus Exp $";
#endif
#include <stdio.h>
@ -541,7 +541,8 @@ wait_input(timo)
/*
* 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)
@ -551,7 +552,8 @@ void add_fd(int 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);
}
@ -1447,6 +1449,26 @@ get_idle_time(u, ip)
return (ioctl(ttyfd, PPPIOCGIDLE, ip) >= 0);
}
/*
* get_ppp_stats - return statistics for the link.
*/
int
get_ppp_stats(u, stats)
int u;
struct ppp_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 = req.stats;
return 1;
}
/*
* get_loop_output - read characters from the loopback, form them

View File

@ -21,7 +21,7 @@
*/
#ifndef lint
static char rcsid[] = "$Id: sys-aix4.c,v 1.18 1999/03/19 01:29:40 paulus Exp $";
static char rcsid[] = "$Id: sys-aix4.c,v 1.19 1999/03/19 04:23:46 paulus Exp $";
#endif
/*
@ -581,7 +581,8 @@ wait_input(timo)
/*
* add_fd - add an fd to the set that wait_input waits for.
*/
void add_fd(int fd)
void add_fd(fd)
int fd;
{
int n;
@ -599,7 +600,8 @@ void add_fd(int 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;
{
int n;

View File

@ -21,7 +21,7 @@
*/
#ifndef lint
static char rcsid[] = "$Id: sys-bsd.c,v 1.39 1999/03/19 01:29:44 paulus Exp $";
static char rcsid[] = "$Id: sys-bsd.c,v 1.40 1999/03/19 04:23:47 paulus Exp $";
/* $NetBSD: sys-bsd.c,v 1.1.1.3 1997/09/26 18:53:04 christos Exp $ */
#endif
@ -559,7 +559,8 @@ wait_input(timo)
/*
* 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)
@ -569,7 +570,8 @@ void add_fd(int 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);
}
@ -790,6 +792,26 @@ get_idle_time(u, ip)
return ioctl(ppp_fd, PPPIOCGIDLE, ip) >= 0;
}
/*
* get_ppp_stats - return statistics for the link.
*/
int
get_ppp_stats(u, stats)
int u;
struct ppp_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 = req.stats;
return 1;
}
#ifdef PPP_FILTER
/*

View File

@ -964,6 +964,29 @@ get_idle_time(u, ip)
return ioctl(ppp_fd, PPPIOCGIDLE, ip) >= 0;
}
/********************************************************************
*
* get_ppp_stats - return statistics for the link.
*/
int
get_ppp_stats(u, stats)
int u;
struct ppp_stats *stats;
{
struct ifpppstatsreq req;
memset (&req, 0, sizeof (req));
req.stats_ptr = (caddr_t) &req.stats;
strlcpy(req.ifr__name, ifname, sizeof(req.ifr__name));
if (ioctl(sock_fd, SIOCGPPPSTATS, &req) < 0) {
error("Couldn't get PPP statistics: %m");
return 0;
}
*stats = req.stats;
return 1;
}
/********************************************************************
*
* ccp_fatal_error - returns 1 if decompression was disabled as a

View File

@ -26,7 +26,7 @@
*/
#ifndef lint
static char rcsid[] = "$Id: sys-osf.c,v 1.21 1999/03/19 01:29:46 paulus Exp $";
static char rcsid[] = "$Id: sys-osf.c,v 1.22 1999/03/19 04:23:49 paulus Exp $";
#endif
#include <stdio.h>
@ -754,7 +754,8 @@ wait_input(timo)
/*
* add_fd - add an fd to the set that wait_input waits for.
*/
void add_fd(int fd)
void add_fd(fd)
int fd;
{
int n;
@ -772,7 +773,8 @@ void add_fd(int 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;
{
int n;
@ -1009,6 +1011,21 @@ get_idle_time(u, ip)
return strioctl(pppfd, PPPIO_GIDLE, ip, 0, sizeof(struct ppp_idle)) >= 0;
}
/*
* get_ppp_stats - return statistics for the link.
*/
int
get_ppp_stats(u, stats)
int u;
struct ppp_stats *stats;
{
if (strioctl(pppfd, PPPIO_GETSTAT, stats, 0, sizeof(*stats)) < 0) {
error("Couldn't get link statistics: %m");
return 0;
}
return 1;
}
/*
* ccp_fatal_error - returns 1 if decompression was disabled as a

View File

@ -26,7 +26,7 @@
*/
#ifndef lint
static char rcsid[] = "$Id: sys-sunos4.c,v 1.16 1999/03/19 01:29:47 paulus Exp $";
static char rcsid[] = "$Id: sys-sunos4.c,v 1.17 1999/03/19 04:23:50 paulus Exp $";
#endif
#include <stdio.h>
@ -617,6 +617,44 @@ wait_input(timo)
fatal("poll: %m");
}
/*
* add_fd - add an fd to the set that wait_input waits for.
*/
void add_fd(fd)
int fd;
{
int n;
for (n = 0; n < n_pollfds; ++n)
if (pollfds[n].fd == fd)
return;
if (n_pollfds < MAX_POLLFDS) {
pollfds[n_pollfds].fd = fd;
pollfds[n_pollfds].events = POLLIN | POLLPRI | POLLHUP;
++n_pollfds;
} else
error("Too many inputs!");
}
/*
* remove_fd - remove an fd from the set that wait_input waits for.
*/
void remove_fd(fd)
int fd;
{
int n;
for (n = 0; n < n_pollfds; ++n) {
if (pollfds[n].fd == fd) {
while (++n < n_pollfds)
pollfds[n-1] = pollfds[n];
--n_pollfds;
break;
}
}
}
#if 0
/*
* wait_loop_output - wait until there is data available on the
* loopback, for the length of time specified by *timo (indefinite
@ -643,7 +681,7 @@ wait_time(timo)
if (n < 0 && errno != EINTR)
fatal("select: %m");
}
#endif
/*
* read_packet - get a PPP packet from the serial device.
@ -821,6 +859,21 @@ get_idle_time(u, ip)
return strioctl(pppfd, PPPIO_GIDLE, ip, 0, sizeof(struct ppp_idle)) >= 0;
}
/*
* get_ppp_stats - return statistics for the link.
*/
int
get_ppp_stats(u, stats)
int u;
struct ppp_stats *stats;
{
if (strioctl(pppfd, PPPIO_GETSTAT, stats, 0, sizeof(*stats)) < 0) {
error("Couldn't get link statistics: %m");
return 0;
}
return 1;
}
/*
* ccp_fatal_error - returns 1 if decompression was disabled as a

View File

@ -26,7 +26,7 @@
*/
#ifndef lint
static char rcsid[] = "$Id: sys-svr4.c,v 1.27 1999/03/19 01:29:50 paulus Exp $";
static char rcsid[] = "$Id: sys-svr4.c,v 1.28 1999/03/19 04:23:52 paulus Exp $";
#endif
#include <limits.h>
@ -683,7 +683,8 @@ wait_input(timo)
/*
* add_fd - add an fd to the set that wait_input waits for.
*/
void add_fd(int fd)
void add_fd(fd)
int fd;
{
int n;
@ -701,7 +702,8 @@ void add_fd(int 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;
{
int n;
@ -930,6 +932,21 @@ get_idle_time(u, ip)
return strioctl(pppfd, PPPIO_GIDLE, ip, 0, sizeof(struct ppp_idle)) >= 0;
}
/*
* get_ppp_stats - return statistics for the link.
*/
int
get_ppp_stats(u, stats)
int u;
struct ppp_stats *stats;
{
if (strioctl(pppfd, PPPIO_GETSTAT, stats, 0, sizeof(*stats)) < 0) {
error("Couldn't get link statistics: %m");
return 0;
}
return 1;
}
#if 0
/*
* set_filters - transfer the pass and active filters to the kernel.

View File

@ -21,7 +21,7 @@
*/
#ifndef lint
static char rcsid[] = "$Id: sys-ultrix.c,v 1.28 1999/03/19 01:29:51 paulus Exp $";
static char rcsid[] = "$Id: sys-ultrix.c,v 1.29 1999/03/19 04:23:54 paulus Exp $";
#endif
/*
@ -586,7 +586,8 @@ wait_input(timo)
/*
* 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)
@ -596,7 +597,8 @@ void add_fd(int 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);
}
@ -793,6 +795,26 @@ get_idle_time(u, ip)
return ioctl(ppp_fd, PPPIOCGIDLE, ip) >= 0;
}
/*
* get_ppp_stats - return statistics for the link.
*/
int
get_ppp_stats(u, stats)
int u;
struct ppp_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 = req.stats;
return 1;
}
/*
* sifvjcomp - config tcp header compression