summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>1997-06-09 03:27:43 +0000
committerbrian <brian@FreeBSD.org>1997-06-09 03:27:43 +0000
commit94d661ac8cb907e0a869759f76cd7134c9105e6c (patch)
tree5fa88c28cbdec0d4a0d3d118b33c1042dc49c526 /usr.sbin
parent328d28c6502cfec45b8ead98e18b2d8638499efb (diff)
downloadFreeBSD-src-94d661ac8cb907e0a869759f76cd7134c9105e6c.zip
FreeBSD-src-94d661ac8cb907e0a869759f76cd7134c9105e6c.tar.gz
Overhaul ppp:
o Use syslog o Remove references to stdout/stderr (incl perror()) o Introduce VarTerm - the interactive terminal or zero o Allow "set timeout" to affect current session o Change "set debug" to "set log" o Allow "set log [+|-]flag" o Make MSEXT and PASSWDAUTH stuff the default o Move all #ifdef DEBUG stuff into the code - this shouldn't be too much overhead. It's now controlled with "set log +debug" o Add "set log command, debug, tun, warn, error, alert" o Remove cdefs.h, and assume an ansi compiler. o Improve all diagnostic output o Don't trap SIGSEGV o SIGHUP now terminates again (log files are controlled by syslog) o Call CloseModem() when changing devices o Fix parsing of third arg of "delete" I think this fixes the "magic is same" problems that some people have been experiencing. The man page is being rewritten. It'll follow soon.
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/ppp/Makefile9
-rw-r--r--usr.sbin/ppp/alias_cmd.c78
-rw-r--r--usr.sbin/ppp/arp.c39
-rw-r--r--usr.sbin/ppp/arp.h6
-rw-r--r--usr.sbin/ppp/async.c6
-rw-r--r--usr.sbin/ppp/auth.c6
-rw-r--r--usr.sbin/ppp/auth.h14
-rw-r--r--usr.sbin/ppp/ccp.c58
-rw-r--r--usr.sbin/ppp/ccp.h14
-rw-r--r--usr.sbin/ppp/cdefs.h33
-rw-r--r--usr.sbin/ppp/chap.c51
-rw-r--r--usr.sbin/ppp/chap.h4
-rw-r--r--usr.sbin/ppp/chat.c68
-rw-r--r--usr.sbin/ppp/chat.h7
-rw-r--r--usr.sbin/ppp/command.c825
-rw-r--r--usr.sbin/ppp/defs.h3
-rw-r--r--usr.sbin/ppp/filter.c125
-rw-r--r--usr.sbin/ppp/filter.h4
-rw-r--r--usr.sbin/ppp/fsm.c82
-rw-r--r--usr.sbin/ppp/fsm.h51
-rw-r--r--usr.sbin/ppp/hdlc.c50
-rw-r--r--usr.sbin/ppp/hdlc.h16
-rw-r--r--usr.sbin/ppp/ip.c86
-rw-r--r--usr.sbin/ppp/ip.h8
-rw-r--r--usr.sbin/ppp/ipcp.c126
-rw-r--r--usr.sbin/ppp/ipcp.h16
-rw-r--r--usr.sbin/ppp/lcp.c117
-rw-r--r--usr.sbin/ppp/lcp.h15
-rw-r--r--usr.sbin/ppp/lcpproto.h19
-rw-r--r--usr.sbin/ppp/loadalias.c18
-rw-r--r--usr.sbin/ppp/log.c373
-rw-r--r--usr.sbin/ppp/log.h103
-rw-r--r--usr.sbin/ppp/lqr.c62
-rw-r--r--usr.sbin/ppp/lqr.h14
-rw-r--r--usr.sbin/ppp/main.c269
-rw-r--r--usr.sbin/ppp/main.h4
-rw-r--r--usr.sbin/ppp/mbuf.c66
-rw-r--r--usr.sbin/ppp/mbuf.h22
-rw-r--r--usr.sbin/ppp/modem.c203
-rw-r--r--usr.sbin/ppp/modem.h35
-rw-r--r--usr.sbin/ppp/nat_cmd.c78
-rw-r--r--usr.sbin/ppp/os.c79
-rw-r--r--usr.sbin/ppp/os.h24
-rw-r--r--usr.sbin/ppp/pap.c30
-rw-r--r--usr.sbin/ppp/passwdauth.c12
-rw-r--r--usr.sbin/ppp/passwdauth.h2
-rw-r--r--usr.sbin/ppp/phase.h5
-rw-r--r--usr.sbin/ppp/pred.c17
-rw-r--r--usr.sbin/ppp/pred.h8
-rw-r--r--usr.sbin/ppp/route.c142
-rw-r--r--usr.sbin/ppp/route.h4
-rw-r--r--usr.sbin/ppp/sig.c6
-rw-r--r--usr.sbin/ppp/sig.h6
-rw-r--r--usr.sbin/ppp/slcompress.c53
-rw-r--r--usr.sbin/ppp/slcompress.h9
-rw-r--r--usr.sbin/ppp/systems.c40
-rw-r--r--usr.sbin/ppp/systems.h8
-rw-r--r--usr.sbin/ppp/timeout.h17
-rw-r--r--usr.sbin/ppp/timer.c58
-rw-r--r--usr.sbin/ppp/vars.c151
-rw-r--r--usr.sbin/ppp/vars.h14
-rw-r--r--usr.sbin/ppp/vjcomp.c20
62 files changed, 1739 insertions, 2149 deletions
diff --git a/usr.sbin/ppp/Makefile b/usr.sbin/ppp/Makefile
index b11a511..05173f3 100644
--- a/usr.sbin/ppp/Makefile
+++ b/usr.sbin/ppp/Makefile
@@ -1,14 +1,13 @@
-# $Id: Makefile,v 1.19 1997/05/23 04:53:49 brian Exp $
+# $Id: Makefile,v 1.20 1997/05/26 00:43:54 brian Exp $
PROG= ppp
SRCS= alias_cmd.c arp.c async.c auth.c ccp.c chap.c chat.c command.c \
filter.c fsm.c hdlc.c ip.c ipcp.c lcp.c loadalias.c log.c lqr.c \
main.c mbuf.c modem.c os.c pap.c passwdauth.c pred.c route.c sig.c \
slcompress.c systems.c timer.c vars.c vjcomp.c
-#CFLAGS+= -DHAVE_SHELL_CMD_WITH_ANY_MODE
-CFLAGS += -Wall -DMSEXT -DPASSWDAUTH
-LDADD += -lmd -lcrypt -lutil
-DPADD += ${LIBMD} ${LIBCRYPT} ${LIBUTIL}
+CFLAGS+=-Wall
+LDADD+= -lmd -lcrypt -lutil
+DPADD+= ${LIBMD} ${LIBCRYPT} ${LIBUTIL}
MAN8= ppp.8
BINMODE=4555
BINOWN= root
diff --git a/usr.sbin/ppp/alias_cmd.c b/usr.sbin/ppp/alias_cmd.c
index 0603c7a..f6aa1be 100644
--- a/usr.sbin/ppp/alias_cmd.c
+++ b/usr.sbin/ppp/alias_cmd.c
@@ -30,9 +30,10 @@ AliasRedirectPort (struct cmdtab *list,
char **argv,
void *param)
{
- if (!(mode & MODE_ALIAS))
- printf("alias not enabled\n");
- else if (argc == 3) {
+ if (!(mode & MODE_ALIAS)) {
+ if (VarTerm)
+ fprintf(VarTerm, "Alias not enabled\n");
+ } else if (argc == 3) {
char proto_constant;
char *proto;
u_short local_port;
@@ -48,23 +49,30 @@ AliasRedirectPort (struct cmdtab *list,
} else if (strcmp(proto, "udp") == 0) {
proto_constant = IPPROTO_UDP;
} else {
- printf("port redirect: protocol must be tcp or udp\n");
- printf("Usage: alias %s %s\n", list->name, list->syntax);
+ if (VarTerm) {
+ fprintf(VarTerm, "port redirect: protocol must be tcp or udp\n");
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name,
+ list->syntax);
+ }
return 1;
}
error = StrToAddrAndPort(argv[1], &local_addr, &local_port, proto);
if (error) {
- printf("port redirect: error reading local addr:port\n");
- printf("Usage: alias %s %s\n", list->name, list->syntax);
- return 1;
+ if (VarTerm) {
+ fprintf(VarTerm, "port redirect: error reading local addr:port\n");
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name, list->syntax);
+ }
+ return 1;
}
error = StrToPort(argv[2], &alias_port, proto);
if (error) {
- printf("port redirect: error reading alias port\n");
- printf("Usage: alias %s %s\n", list->name, list->syntax);
- return 1;
+ if (VarTerm) {
+ fprintf(VarTerm, "port redirect: error reading alias port\n");
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name, list->syntax);
+ }
+ return 1;
}
null_addr.s_addr = 0;
@@ -74,11 +82,11 @@ AliasRedirectPort (struct cmdtab *list,
null_addr, alias_port,
proto_constant);
- if (link == NULL)
- printf("port redirect: error returned by packed aliasing engine"
- "(code=%d)\n", error);
- } else
- printf("Usage: alias %s %s\n", list->name, list->syntax);
+ if (link == NULL && VarTerm)
+ fprintf(VarTerm, "port redirect: error returned by packed"
+ " aliasing engine (code=%d)\n", error);
+ } else if (VarTerm)
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name, list->syntax);
return 1;
}
@@ -90,9 +98,10 @@ AliasRedirectAddr(struct cmdtab *list,
char **argv,
void *param)
{
- if (!(mode & MODE_ALIAS))
- printf("alias not enabled\n");
- else if (argc == 2) {
+ if (!(mode & MODE_ALIAS)) {
+ if (VarTerm)
+ fprintf(VarTerm, "alias not enabled\n");
+ } else if (argc == 2) {
int error;
struct in_addr local_addr;
struct in_addr alias_addr;
@@ -100,25 +109,27 @@ AliasRedirectAddr(struct cmdtab *list,
error = StrToAddr(argv[0], &local_addr);
if (error) {
- printf("address redirect: invalid local address\n");
+ if (VarTerm)
+ fprintf(VarTerm, "address redirect: invalid local address\n");
return 1;
}
error = StrToAddr(argv[1], &alias_addr);
if (error) {
- printf("address redirect: invalid alias address\n");
- printf("Usage: alias %s %s\n", list->name, list->syntax);
- return 1;
+ if (VarTerm) {
+ fprintf(VarTerm, "address redirect: invalid alias address\n");
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name, list->syntax);
+ }
+ return 1;
}
link = VarPacketAliasRedirectAddr(local_addr, alias_addr);
- if (link == NULL) {
- printf("address redirect: packet aliasing engine error\n");
- printf("Usage: alias %s %s\n", list->name, list->syntax);
+ if (link == NULL && VarTerm) {
+ fprintf(VarTerm, "address redirect: packet aliasing engine error\n");
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name, list->syntax);
}
-
- } else
- printf("Usage: alias %s %s\n", list->name, list->syntax);
+ } else if (VarTerm)
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name, list->syntax);
return 1;
}
@@ -136,7 +147,7 @@ StrToAddr (char* str,
hp = gethostbyname (str);
if (!hp)
{
- fprintf (stderr, "Unknown host %s.\n", str);
+ LogPrintf(LogWARN, "StrToAddr: Unknown host %s.\n", str);
return -1;
}
@@ -164,8 +175,8 @@ StrToPort (char *str,
sp = getservbyname (str, proto);
if (!sp)
{
- fprintf (stderr, "Unknown port or service %s/%s.\n",
- str, proto);
+ LogPrintf(LogWARN, "StrToAddr: Unknown port or service %s/%s.\n",
+ str, proto);
return -1;
}
@@ -185,7 +196,8 @@ StrToAddrAndPort (char* str,
ptr = strchr (str, ':');
if (!ptr)
{
- fprintf (stderr, "%s is missing port number.\n", str);
+ LogPrintf(LogWARN, "StrToAddrAndPort: %s is missing port number.\n",
+ str);
return -1;
}
diff --git a/usr.sbin/ppp/arp.c b/usr.sbin/ppp/arp.c
index d816be3..24f691c 100644
--- a/usr.sbin/ppp/arp.c
+++ b/usr.sbin/ppp/arp.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: arp.c,v 1.10 1997/02/25 14:04:50 brian Exp $
+ * $Id: arp.c,v 1.11 1997/04/15 00:03:35 brian Exp $
*
*/
@@ -55,7 +55,7 @@
static int rtm_seq;
-static int get_ether_addr __P((int, u_long, struct sockaddr_dl *));
+static int get_ether_addr(int, u_long, struct sockaddr_dl *);
#define BCOPY(s, d, l) memcpy(d, s, l)
#define BZERO(s, n) memset(s, 0, n)
@@ -96,12 +96,14 @@ sifproxyarp(unit, hisaddr)
*/
memset(&arpmsg, 0, sizeof(arpmsg));
if (!get_ether_addr(unit, hisaddr, &arpmsg.hwa)) {
- logprintf("Cannot determine ethernet address for proxy ARP\n");
+ LogPrintf(LogERROR, "Cannot determine ethernet address"
+ " for proxy ARP\n");
return 0;
}
if ((routes = socket(PF_ROUTE, SOCK_RAW, AF_INET)) < 0) {
- logprintf("sifproxyarp: opening routing socket: \n");
+ LogPrintf(LogERROR, "sifproxyarp: opening routing socket: %s\n",
+ strerror(errno));
return 0;
}
@@ -119,7 +121,7 @@ sifproxyarp(unit, hisaddr)
arpmsg.hdr.rtm_msglen = (char *) &arpmsg.hwa - (char *) &arpmsg
+ arpmsg.hwa.sdl_len;
if (write(routes, &arpmsg, arpmsg.hdr.rtm_msglen) < 0) {
- logprintf("add proxy arp entry: \n");
+ LogPrintf(LogERROR, "Add proxy arp entry: %s\n", strerror(errno));
close(routes);
return 0;
}
@@ -147,12 +149,13 @@ cifproxyarp(unit, hisaddr)
arpmsg.hdr.rtm_seq = ++rtm_seq;
if ((routes = socket(PF_ROUTE, SOCK_RAW, AF_INET)) < 0) {
- logprintf("sifproxyarp: opening routing socket: \n");
+ LogPrintf(LogERROR, "sifproxyarp: opening routing socket: %s\n",
+ strerror(errno));
return 0;
}
if (write(routes, &arpmsg, arpmsg.hdr.rtm_msglen) < 0) {
- logprintf("delete proxy arp entry: \n");
+ LogPrintf(LogERROR, "Delete proxy arp entry: %s\n", strerror(errno));
close(routes);
return 0;
}
@@ -195,7 +198,7 @@ sifproxyarp(unit, hisaddr)
((struct sockaddr_in *) &arpreq.arp_pa)->sin_addr.s_addr = hisaddr;
arpreq.arp_flags = ATF_PERM | ATF_PUBL;
if (ioctl(unit, SIOCSARP, (caddr_t)&arpreq) < 0) {
- fprintf(stderr, "ioctl(SIOCSARP): \n");
+ LogPrintf(LogERROR, "sifproxyarp: ioctl(SIOCSARP): \n");
return 0;
}
@@ -216,7 +219,7 @@ cifproxyarp(unit, hisaddr)
SET_SA_FAMILY(arpreq.arp_pa, AF_INET);
((struct sockaddr_in *) &arpreq.arp_pa)->sin_addr.s_addr = hisaddr;
if (ioctl(unit, SIOCDARP, (caddr_t)&arpreq) < 0) {
- fprintf(stderr, "ioctl(SIOCDARP): \n");
+ LogPrintf(LogERROR, "cifproxyarp: ioctl(SIOCDARP): \n");
return 0;
}
return 1;
@@ -246,7 +249,7 @@ get_ether_addr(s, ipaddr, hwaddr)
ifc.ifc_len = sizeof(ifs);
ifc.ifc_req = ifs;
if (ioctl(s, SIOCGIFCONF, &ifc) < 0) {
- fprintf(stderr, "ioctl(SIOCGIFCONF): \n");
+ LogPrintf(LogERROR, "get_ether_addr: ioctl(SIOCGIFCONF): \n");
return 0;
}
@@ -287,7 +290,7 @@ nextif:
if (ifr >= ifend)
return 0;
- LogPrintf(LOG_PHASE_BIT, "found interface %s for proxy arp\n", ifr->ifr_name);
+ LogPrintf(LogPHASE, "Found interface %s for proxy arp\n", ifr->ifr_name);
/*
* Now scan through again looking for a link-level address
@@ -335,14 +338,12 @@ kread(addr, buf, size)
char *buf;
int size;
{
-
- if (kvm_read(kvmd, addr, buf, size) != size) {
- /* XXX this duplicates kvm_read's error printout */
- (void)fprintf(stderr, "kvm_read %s\n",
- kvm_geterr(kvmd));
- return (-1);
- }
- return (0);
+ if (kvm_read(kvmd, addr, buf, size) != size) {
+ /* XXX this duplicates kvm_read's error printout */
+ LogPrintf(LogERROR, "kvm_read %s\n", kvm_geterr(kvmd));
+ return -1;
+ }
+ return 0;
}
kmemgetether(ifname, dlo)
diff --git a/usr.sbin/ppp/arp.h b/usr.sbin/ppp/arp.h
index 5273716..b2e38e6 100644
--- a/usr.sbin/ppp/arp.h
+++ b/usr.sbin/ppp/arp.h
@@ -17,12 +17,12 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: arp.h,v 1.3 1997/02/22 16:09:57 peter Exp $
*
*/
#ifndef _ARP_H_
#define _ARP_H_
-extern int cifproxyarp __P((int, u_long));
-extern int sifproxyarp __P((int, u_long));
+extern int cifproxyarp(int, u_long);
+extern int sifproxyarp(int, u_long);
#endif
diff --git a/usr.sbin/ppp/async.c b/usr.sbin/ppp/async.c
index f122c40..c4a101b 100644
--- a/usr.sbin/ppp/async.c
+++ b/usr.sbin/ppp/async.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: async.c,v 1.7 1997/02/22 16:09:59 peter Exp $
+ * $Id: async.c,v 1.8 1997/05/26 00:43:55 brian Exp $
*
*/
#include "fsm.h"
@@ -121,7 +121,7 @@ int proto;
*cp ++ = HDLC_SYN;
cnt = cp - hs->xbuff;
- LogDumpBuff(LOG_ASYNC, "WriteModem", hs->xbuff, cnt);
+ LogDumpBuff(LogASYNC, "WriteModem", hs->xbuff, cnt);
WriteModem(pri, (char *)hs->xbuff, cnt);
OsAddOutOctets(cnt);
pfree(bp);
@@ -156,7 +156,7 @@ u_char c;
default:
if (hs->length >= HDLCSIZE) {
/* packet is too large, discard it */
- logprintf("too large, diacarding.\n");
+ LogPrintf(LogERROR, "Packet too large (%d), diacarding.\n", hs->length);
hs->length = 0;
hs->mode = MODE_HUNT;
break;
diff --git a/usr.sbin/ppp/auth.c b/usr.sbin/ppp/auth.c
index af99f04..17b3424 100644
--- a/usr.sbin/ppp/auth.c
+++ b/usr.sbin/ppp/auth.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: auth.c,v 1.12 1997/05/10 01:22:05 brian Exp $
+ * $Id: auth.c,v 1.13 1997/05/26 00:43:55 brian Exp $
*
* TODO:
* o Implement check against with registered IP addresses.
@@ -158,9 +158,7 @@ int len, setaddr;
}
n -= 2;
if (n > 0 && setaddr) {
-#ifdef DEBUG
- LogPrintf(LOG_LCP_BIT, "*** n = %d, %s\n", n, vector[2]);
-#endif
+ LogPrintf(LogDEBUG, "AuthGetSecret: n = %d, %s\n", n, vector[2]);
if (ParseAddr(n--, &vector[2],
&DefHisAddress.ipaddr,
&DefHisAddress.mask,
diff --git a/usr.sbin/ppp/auth.h b/usr.sbin/ppp/auth.h
index 169f84c..4ca72ae 100644
--- a/usr.sbin/ppp/auth.h
+++ b/usr.sbin/ppp/auth.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: auth.h,v 1.5 1997/02/22 16:10:02 peter Exp $
*
* TODO:
*/
@@ -35,10 +35,10 @@ struct authinfo {
extern struct authinfo AuthPapInfo;
extern struct authinfo AuthChapInfo;
-extern void SendPapChallenge __P((int));
-extern void SendChapChallenge __P((int));
-extern void StopAuthTimer __P((struct authinfo *));
-extern void StartAuthChallenge __P((struct authinfo *));
-extern LOCAL_AUTH_VALID LocalAuthInit __P((void));
-extern int AuthValidate __P((char *, char *, char *));
+extern void SendPapChallenge(int);
+extern void SendChapChallenge(int);
+extern void StopAuthTimer(struct authinfo *);
+extern void StartAuthChallenge(struct authinfo *);
+extern LOCAL_AUTH_VALID LocalAuthInit(void);
+extern int AuthValidate(char *, char *, char *);
#endif
diff --git a/usr.sbin/ppp/ccp.c b/usr.sbin/ppp/ccp.c
index 5b11272..bee7131 100644
--- a/usr.sbin/ppp/ccp.c
+++ b/usr.sbin/ppp/ccp.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: ccp.c,v 1.11 1997/05/10 01:22:06 brian Exp $
+ * $Id: ccp.c,v 1.12 1997/05/26 00:43:56 brian Exp $
*
* TODO:
* o Support other compression protocols
@@ -30,19 +30,18 @@
#include "loadalias.h"
#include "vars.h"
#include "pred.h"
-#include "cdefs.h"
struct ccpstate CcpInfo;
-static void CcpSendConfigReq __P((struct fsm *));
-static void CcpSendTerminateReq __P((struct fsm *fp));
-static void CcpSendTerminateAck __P((struct fsm *fp));
-static void CcpDecodeConfig __P((u_char *cp, int flen, int mode));
-static void CcpLayerStart __P((struct fsm *));
-static void CcpLayerFinish __P((struct fsm *));
-static void CcpLayerUp __P((struct fsm *));
-static void CcpLayerDown __P((struct fsm *));
-static void CcpInitRestartCounter __P((struct fsm *));
+static void CcpSendConfigReq(struct fsm *);
+static void CcpSendTerminateReq(struct fsm *fp);
+static void CcpSendTerminateAck(struct fsm *fp);
+static void CcpDecodeConfig(u_char *cp, int flen, int mode);
+static void CcpLayerStart(struct fsm *);
+static void CcpLayerFinish(struct fsm *);
+static void CcpLayerUp(struct fsm *);
+static void CcpLayerDown(struct fsm *);
+static void CcpInitRestartCounter(struct fsm *);
#define REJECTED(p, x) (p->his_reject & (1<<x))
@@ -83,11 +82,13 @@ ReportCcpStatus()
struct ccpstate *icp = &CcpInfo;
struct fsm *fp = &CcpFsm;
- printf("%s [%s]\n", fp->name, StateNames[fp->state]);
- printf("myproto = %s, hisproto = %s\n",
- cftypes[icp->want_proto], cftypes[icp->his_proto]);
- printf("Input: %ld --> %ld, Output: %ld --> %ld\n",
- icp->orgin, icp->compin, icp->orgout, icp->compout);
+ if (VarTerm) {
+ fprintf(VarTerm, "%s [%s]\n", fp->name, StateNames[fp->state]);
+ fprintf(VarTerm, "myproto = %s, hisproto = %s\n",
+ cftypes[icp->want_proto], cftypes[icp->his_proto]);
+ fprintf(VarTerm, "Input: %ld --> %ld, Output: %ld --> %ld\n",
+ icp->orgin, icp->compin, icp->orgout, icp->compout);
+ }
return 0;
}
@@ -119,7 +120,7 @@ struct fsm *fp;
struct ccpstate *icp = &CcpInfo;
cp = ReqBuff;
- LogPrintf(LOG_LCP_BIT, "%s: SendConfigReq\n", fp->name);
+ LogPrintf(LogLCP, "CcpSendConfigReq\n");
if (icp->want_proto && !REJECTED(icp, TY_PRED1)) {
*cp++ = TY_PRED1; *cp++ = 2;
}
@@ -131,7 +132,7 @@ CcpSendResetReq(fp)
struct fsm *fp;
{
Pred1Init(1); /* Initialize Input part */
- LogPrintf(LOG_LCP_BIT, "%s: SendResetReq\n", fp->name);
+ LogPrintf(LogLCP, "CcpSendResetReq\n");
FsmOutput(fp, CODE_RESETREQ, fp->reqid, NULL, 0);
}
@@ -146,7 +147,7 @@ static void
CcpSendTerminateAck(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, " %s: SendTerminateAck\n", fp->name);
+ LogPrintf(LogLCP, "CcpSendTerminateAck\n");
FsmOutput(fp, CODE_TERMACK, fp->reqid++, NULL, 0);
}
@@ -161,21 +162,21 @@ static void
CcpLayerStart(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, "%s: LayerStart.\n", fp->name);
+ LogPrintf(LogLCP, "CcpLayerStart.\n");
}
static void
CcpLayerFinish(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, "%s: LayerFinish.\n", fp->name);
+ LogPrintf(LogLCP, "CcpLayerFinish.\n");
}
static void
CcpLayerDown(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, "%s: LayerDown.\n", fp->name);
+ LogPrintf(LogLCP, "CcpLayerDown.\n");
}
/*
@@ -185,11 +186,8 @@ static void
CcpLayerUp(fp)
struct fsm *fp;
{
-#ifdef VERBOSE
- fprintf(stderr, "%s: LayerUp(%d).\r\n", fp->name, fp->state);
-#endif
- LogPrintf(LOG_LCP_BIT, "%s: LayerUp.\n", fp->name);
- LogPrintf(LOG_LCP_BIT, "myproto = %d, hisproto = %d\n",
+ LogPrintf(LogLCP, "CcpLayerUp(%d).\n", fp->state);
+ LogPrintf(LogLCP, "myproto = %d, hisproto = %d\n",
CcpInfo.want_proto, CcpInfo.his_proto);
Pred1Init(3); /* Initialize Input and Output */
}
@@ -198,7 +196,7 @@ void
CcpUp()
{
FsmUp(&CcpFsm);
- LogPrintf(LOG_LCP_BIT, "CCP Up event!!\n");
+ LogPrintf(LogLCP, "CCP Up event!!\n");
}
void
@@ -231,7 +229,7 @@ int mode;
else
snprintf(tbuff, sizeof(tbuff), " ");
- LogPrintf(LOG_LCP_BIT, "%s\n", tbuff);
+ LogPrintf(LogLCP, "%s\n", tbuff);
switch (type) {
case TY_PRED1:
@@ -271,7 +269,7 @@ CcpInput(struct mbuf *bp)
if (phase == PHASE_NETWORK)
FsmInput(&CcpFsm, bp);
else {
- logprintf("ccp in phase %d\n", phase);
+ LogPrintf(LogERROR, "Unexpected CCP in phase %d\n", phase);
pfree(bp);
}
}
diff --git a/usr.sbin/ppp/ccp.h b/usr.sbin/ppp/ccp.h
index 785c573..acb2a1b 100644
--- a/usr.sbin/ppp/ccp.h
+++ b/usr.sbin/ppp/ccp.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: ccp.h,v 1.5 1997/02/22 16:10:03 peter Exp $
*
* TODO:
*/
@@ -49,10 +49,10 @@ struct ccpstate {
extern struct ccpstate CcpInfo;
-void CcpRecvResetReq __P((struct fsm *));
-void CcpSendResetReq __P((struct fsm *));
-void CcpInput __P((struct mbuf *));
-void CcpUp __P((void));
-void CcpOpen __P((void));
-void CcpInit __P((void));
+void CcpRecvResetReq(struct fsm *);
+void CcpSendResetReq(struct fsm *);
+void CcpInput(struct mbuf *);
+void CcpUp(void);
+void CcpOpen(void);
+void CcpInit(void);
#endif
diff --git a/usr.sbin/ppp/cdefs.h b/usr.sbin/ppp/cdefs.h
deleted file mode 100644
index 540905d..0000000
--- a/usr.sbin/ppp/cdefs.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Written by Toshiharu OHNO (tony-o@iij.ad.jp)
- *
- * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
- *
- * 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 Internet Initiative Japan. The name of the
- * IIJ 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.
- *
- * $Id: cdefs.h,v 1.3 1997/02/22 16:10:04 peter Exp $
- *
- * TODO:
- */
-
-#ifndef __P
-#if defined(__bsdi__) || defined(__FreeBSD__)
-#include <sys/cdefs.h>
-#else
-#ifdef __STDC__
-#define __P(arg) arg
-#else
-#define __P(arg) ()
-#endif /* __STDC__ */
-#endif /* __bsdi__ */
-#endif /* __P */
diff --git a/usr.sbin/ppp/chap.c b/usr.sbin/ppp/chap.c
index ee40421..0ca0c7f 100644
--- a/usr.sbin/ppp/chap.c
+++ b/usr.sbin/ppp/chap.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: chap.c,v 1.16 1997/05/24 17:32:32 brian Exp $
+ * $Id: chap.c,v 1.17 1997/05/26 00:43:56 brian Exp $
*
* TODO:
*/
@@ -62,10 +62,8 @@ int count;
bcopy(&lh, MBUF_CTOP(bp), sizeof(struct fsmheader));
if (count)
bcopy(ptr, MBUF_CTOP(bp) + sizeof(struct fsmheader), count);
-#ifdef DEBUG
- DumpBp(bp);
-#endif
- LogPrintf(LOG_LCP_BIT, "ChapOutput: %s\n", chapcodes[code]);
+ LogDumpBp(LogDEBUG, "ChapOutput", bp);
+ LogPrintf(LogLCP, "ChapOutput: %s\n", chapcodes[code]);
HdlcOutput(PRI_LINK, PROTO_CHAP, bp);
}
@@ -96,23 +94,6 @@ int chapid;
ChapOutput(CHAP_CHALLENGE, chapid, challenge_data, cp - challenge_data);
}
-#ifdef DEBUG
-void
-DumpDigest(mes, cp, len)
-char *mes;
-char *cp;
-int len;
-{
- int i;
-
- logprintf("%s: ", mes);
- for (i = 0; i < len; i++) {
- logprintf(" %02x", *cp++ & 0xff);
- }
- logprintf("\n");
-}
-#endif
-
void
RecvChapTalk(chp, bp)
struct fsmheader *chp;
@@ -127,16 +108,14 @@ struct mbuf *bp;
char cdigest[16];
len = ntohs(chp->length);
-#ifdef DEBUG
- logprintf("length: %d\n", len);
-#endif
+ LogPrintf(LogDEBUG, "RecvChapTalk: length: %d\n", len);
arglen = len - sizeof(struct fsmheader);
cp = (char *)MBUF_CTOP(bp);
valsize = *cp++ & 255;
name = cp + valsize;
namelen = arglen - valsize - 1;
name[namelen] = 0;
- LogPrintf(LOG_PHASE_BIT, " Valsize = %d, Name = %s\n", valsize, name);
+ LogPrintf(LogPHASE, " Valsize = %d, Name = %s\n", valsize, name);
/*
* Get a secret key corresponds to the peer
@@ -165,16 +144,12 @@ struct mbuf *bp;
bcopy(keyp, ap, keylen);
ap += keylen;
bcopy(cp, ap, valsize);
-#ifdef DEBUG
- DumpDigest("recv", ap, valsize);
-#endif
+ LogDumpBuff(LogDEBUG, "recv", ap, valsize);
ap += valsize;
MD5Init(&context);
MD5Update(&context, answer, ap - answer);
MD5Final(digest, &context);
-#ifdef DEBUG
- DumpDigest("answer", digest, 16);
-#endif
+ LogDumpBuff(LogDEBUG, "answer", digest, 16);
bcopy(name, digest + 16, namelen);
ap += namelen;
/* Send answer to the peer */
@@ -195,10 +170,8 @@ struct mbuf *bp;
MD5Update(&context, answer, ap - answer);
MD5Update(&context, challenge_data+1, challenge_len);
MD5Final(cdigest, &context);
-#ifdef DEBUG
- DumpDigest("got", cp, 16);
- DumpDigest("expect", cdigest, 16);
-#endif
+ LogDumpBuff(LogDEBUG, "got", cp, 16);
+ LogDumpBuff(LogDEBUG, "expect", cdigest, 16);
/*
* Compare with the response
*/
@@ -227,9 +200,7 @@ struct mbuf *bp;
struct lcpstate *lcp = &LcpInfo;
len = ntohs(chp->length);
-#ifdef DEBUG
- logprintf("length: %d\n", len);
-#endif
+ LogPrintf(LogDEBUG, "RecvChapResult: length: %d\n", len);
if (chp->code == CHAP_SUCCESS) {
if (lcp->auth_iwait == PROTO_CHAP) {
lcp->auth_iwait = 0;
@@ -255,7 +226,7 @@ ChapInput(struct mbuf *bp)
if (len >= ntohs(chp->length)) {
if (chp->code < 1 || chp->code > 4)
chp->code = 0;
- LogPrintf(LOG_LCP_BIT, "ChapInput: %s\n", chapcodes[chp->code]);
+ LogPrintf(LogLCP, "ChapInput: %s\n", chapcodes[chp->code]);
bp->offset += sizeof(struct fsmheader);
bp->cnt -= sizeof(struct fsmheader);
diff --git a/usr.sbin/ppp/chap.h b/usr.sbin/ppp/chap.h
index 6c992a5..acb5585 100644
--- a/usr.sbin/ppp/chap.h
+++ b/usr.sbin/ppp/chap.h
@@ -15,15 +15,15 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: chap.h,v 1.5 1997/02/22 16:10:06 peter Exp $
*
* TODO:
*/
#ifndef _CHAP_H_
#define _CHAP_H_
-#include "global.h"
#include <md5.h>
+#include "global.h"
#define CHAP_CHALLENGE 1
#define CHAP_RESPONSE 2
diff --git a/usr.sbin/ppp/chat.c b/usr.sbin/ppp/chat.c
index 6659ee2..6ba72e4 100644
--- a/usr.sbin/ppp/chat.c
+++ b/usr.sbin/ppp/chat.c
@@ -18,7 +18,7 @@
* Columbus, OH 43221
* (614)451-1883
*
- * $Id: chat.c,v 1.24 1997/05/10 01:22:07 brian Exp $
+ * $Id: chat.c,v 1.25 1997/05/26 00:43:57 brian Exp $
*
* TODO:
* o Support more UUCP compatible control sequences.
@@ -180,9 +180,9 @@ int sendmode;
strncpy(result, phone, reslen);
reslen -= strlen(result);
result += strlen(result);
- if ((mode & (MODE_INTER|MODE_AUTO)) == MODE_INTER)
- fprintf(stderr, "Phone: %s\n", phone);
- LogPrintf(LOG_PHASE_BIT, "Phone: %s\n", phone);
+ if (VarTerm)
+ fprintf(VarTerm, "Phone: %s\n", phone);
+ LogPrintf(LogPHASE, "Phone: %s", phone);
break;
case 'U':
strncpy(result, VarAuthName, reslen);
@@ -229,11 +229,11 @@ static void clear_log() {
}
static void flush_log() {
- if ((loglevel & LOG_CONNECT_BIT)
- || ((loglevel & LOG_CARRIER_BIT)
- && strstr(logbuff,"CARRIER"))) {
- LogPrintf(LOG_CONNECT_BIT|LOG_CARRIER_BIT,"Chat: %s\n",logbuff);
- }
+ if (LogIsKept(LogCONNECT))
+ LogPrintf(LogCONNECT,"%s", logbuff);
+ else if (LogIsKept(LogCARRIER) && strstr(logbuff,"CARRIER"))
+ LogPrintf(LogCARRIER,"%s", logbuff);
+
clear_log();
}
@@ -271,13 +271,13 @@ char *estr;
#endif
clear_log();
(void) ExpandString(estr, buff, sizeof(buff), 0);
- LogPrintf(LOG_CHAT_BIT, "Wait for (%d): %s --> %s\n", TimeoutSec, estr, buff);
+ LogPrintf(LogCHAT, "Wait for (%d): %s --> %s", TimeoutSec, estr, buff);
str = buff;
inp = inbuff;
if (strlen(str)>=IBSIZE){
str[IBSIZE-1]=0;
- LogPrintf(LOG_CHAT_BIT, "Truncating String to %d character: %s\n", IBSIZE, str);
+ LogPrintf(LogCHAT, "Truncating String to %d character: %s", IBSIZE, str);
}
nfds = modem + 1;
@@ -301,14 +301,14 @@ char *estr;
continue;
sigsetmask(omask);
#endif
- perror("select");
+ LogPrintf(LogERROR, "select: %s", strerror(errno));
*inp = 0;
return(NOMATCH);
} else if (i == 0) { /* Timeout reached! */
*inp = 0;
if (inp != inbuff)
- LogPrintf(LOG_CHAT_BIT, "got: %s\n", inbuff);
- LogPrintf(LOG_CHAT_BIT, "can't get (%d).\n", timeout.tv_sec);
+ LogPrintf(LogCHAT, "Got: %s", inbuff);
+ LogPrintf(LogCHAT, "Can't get (%d).", timeout.tv_sec);
#ifdef SIGALRM
sigsetmask(omask);
#endif
@@ -333,7 +333,7 @@ char *estr;
}
for (i = 0; i < numaborts; i++) {
if (strstr(inbuff, AbortStrings[i])) {
- LogPrintf(LOG_CHAT_BIT, "Abort: %s\n", AbortStrings[i]);
+ LogPrintf(LogCHAT, "Abort: %s", AbortStrings[i]);
#ifdef SIGALRM
sigsetmask(omask);
#endif
@@ -343,7 +343,7 @@ char *estr;
}
} else {
if (read(modem, &ch, 1) < 0) {
- perror("read error");
+ LogPrintf(LogERROR, "read error: %s", strerror(errno));
*inp = '\0';
return(NOMATCH);
}
@@ -372,7 +372,7 @@ char *estr;
s1 = AbortStrings[i];
len = strlen(s1);
if ((len <= inp - inbuff) && (strncmp(inp - len, s1, len) == 0)) {
- LogPrintf(LOG_CHAT_BIT, "Abort: %s\n", s1);
+ LogPrintf(LogCHAT, "Abort: %s", s1);
*inp = 0;
#ifdef SIGALRM
sigsetmask(omask);
@@ -408,15 +408,13 @@ char *command, *out;
cp--;
}
if (snprintf(tmp, sizeof tmp, "%s %s", command, cp) >= sizeof tmp) {
- LogPrintf(LOG_CHAT_BIT, "Too long string to ExecStr: \"%s\"\n",
- command);
+ LogPrintf(LogCHAT, "Too long string to ExecStr: \"%s\"", command);
return;
}
(void) MakeArgs(tmp, vector, VECSIZE(vector));
if (pipe(fids) < 0) {
- LogPrintf(LOG_CHAT_BIT, "Unable to create pipe in ExecStr: %s\n",
- strerror(errno));
+ LogPrintf(LogCHAT, "Unable to create pipe in ExecStr: %s", strerror(errno));
return;
}
@@ -430,29 +428,27 @@ char *command, *out;
signal(SIGALRM, SIG_DFL);
close(fids[0]);
if (dup2(fids[1], 1) < 0) {
- LogPrintf(LOG_CHAT_BIT, "dup2(fids[1], 1) in ExecStr: %s\n",
- strerror(errno));
+ LogPrintf(LogCHAT, "dup2(fids[1], 1) in ExecStr: %s", strerror(errno));
return;
}
close(fids[1]);
nb = open("/dev/tty", O_RDWR);
if (dup2(nb, 0) < 0) {
- LogPrintf(LOG_CHAT_BIT, "dup2(nb, 0) in ExecStr: %s\n",
- strerror(errno));
+ LogPrintf(LogCHAT, "dup2(nb, 0) in ExecStr: %s", strerror(errno));
return;
}
- LogPrintf(LOG_CHAT_BIT, "exec: %s\n", command);
+ LogPrintf(LogCHAT, "exec: %s", command);
/* switch back to original privileges */
if (setgid(getgid()) < 0) {
- LogPrintf(LOG_CHAT_BIT, "setgid: %s\n", strerror(errno));
+ LogPrintf(LogCHAT, "setgid: %s", strerror(errno));
exit(1);
}
if (setuid(getuid()) < 0) {
- LogPrintf(LOG_CHAT_BIT, "setuid: %s\n", strerror(errno));
+ LogPrintf(LogCHAT, "setuid: %s", strerror(errno));
exit(1);
}
pid = execvp(command, vector);
- LogPrintf(LOG_CHAT_BIT, "execvp failed for (%d/%d): %s\n", pid, errno, command);
+ LogPrintf(LogCHAT, "execvp failed for (%d/%d): %s", pid, errno, command);
exit(127);
} else {
close(fids[1]);
@@ -494,9 +490,9 @@ char *str;
(void) ExpandString(str, buff+2, sizeof(buff)-2, 1);
}
if (strstr(str, "\\P")) { /* Do not log the password itself. */
- LogPrintf(LOG_CHAT_BIT, "sending: %s\n", str);
+ LogPrintf(LogCHAT, "sending: %s", str);
} else {
- LogPrintf(LOG_CHAT_BIT, "sending: %s\n", buff+2);
+ LogPrintf(LogCHAT, "sending: %s", buff+2);
}
cp = buff;
if (DEV_IS_SYNC)
@@ -523,7 +519,7 @@ char *str;
++timeout_next;
return(MATCH);
}
- LogPrintf(LOG_CHAT_BIT, "Expecting %s\n", str);
+ LogPrintf(LogCHAT, "Expecting %s", str);
while (*str) {
/*
* Check whether if string contains sub-send-expect.
@@ -574,9 +570,6 @@ char *script;
char *vector[40];
char **argv;
int argc, n, state;
-#ifdef DEBUG
- int i;
-#endif
timeout_next = abort_next = 0;
for (n = 0; AbortStrings[n]; n++) {
@@ -587,11 +580,6 @@ char *script;
bzero(vector, sizeof(vector));
n = MakeArgs(script, vector, VECSIZE(vector));
-#ifdef DEBUG
- logprintf("n = %d\n", n);
- for (i = 0; i < n; i++)
- logprintf(" %s\n", vector[i]);
-#endif
argc = n;
argv = vector;
TimeoutSec = 30;
diff --git a/usr.sbin/ppp/chat.h b/usr.sbin/ppp/chat.h
index 14ddc39..cdb032f 100644
--- a/usr.sbin/ppp/chat.h
+++ b/usr.sbin/ppp/chat.h
@@ -18,13 +18,12 @@
* Columbus, OH 43221
* (614)451-1883
*
- * $Id: chat.h,v 1.4 1997/02/22 16:10:07 peter Exp $
+ * $Id: chat.h,v 1.5 1997/05/07 23:01:24 brian Exp $
*
*/
#ifndef _CHAT_H_
#define _CHAT_H_
-#include "cdefs.h"
-extern char * ExpandString __P((char *, char *, int, int));
-extern int MakeArgs __P((char *, char **, int));
+extern char * ExpandString(char *, char *, int, int);
+extern int MakeArgs(char *, char **, int);
#define VECSIZE(v) (sizeof(v) / sizeof(v[0]))
#endif
diff --git a/usr.sbin/ppp/command.c b/usr.sbin/ppp/command.c
index 85bea97..e314d57 100644
--- a/usr.sbin/ppp/command.c
+++ b/usr.sbin/ppp/command.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: command.c,v 1.52 1997/05/31 16:37:19 brian Exp $
+ * $Id: command.c,v 1.53 1997/06/01 01:13:00 brian Exp $
*
*/
#include <sys/types.h>
@@ -32,6 +32,8 @@
#include <net/route.h>
#include <paths.h>
#include <alias.h>
+#include <fcntl.h>
+#include <errno.h>
#include "fsm.h"
#include "phase.h"
#include "lcp.h"
@@ -46,6 +48,7 @@
#include "systems.h"
#include "chat.h"
#include "os.h"
+#include "timeout.h"
extern void Cleanup(), TtyTermMode(), PacketMode();
extern int EnableCommand(), DisableCommand(), DisplayCommand();
@@ -80,27 +83,32 @@ struct cmdtab *plist;
struct cmdtab *cmd;
int n;
+ if (!VarTerm)
+ return 0;
+
if (argc > 0) {
- for (cmd = plist; cmd->name; cmd++) {
+ for (cmd = plist; cmd->name; cmd++)
if (strcasecmp(cmd->name, *argv) == 0 && (cmd->lauth & VarLocalAuth)) {
if (plist == SetCommands)
- printf("set ");
- printf("%s %s\n", cmd->name, cmd->syntax);
- return(1);
+ fprintf(VarTerm, "set ");
+ fprintf(VarTerm, "%s\n", cmd->syntax);
+ return 0;
}
- }
- return(1);
+
+ return -1;
}
+
n = 0;
- for (cmd = plist; cmd->func; cmd++) {
+ for (cmd = plist; cmd->func; cmd++)
if (cmd->name && (cmd->lauth & VarLocalAuth)) {
- printf(" %-8s: %-20s\n", cmd->name, cmd->helpmes);
+ fprintf(VarTerm, " %-8s: %-20s\n", cmd->name, cmd->helpmes);
n++;
}
- }
+
if (n & 1)
- printf("\n");
- return(1);
+ fprintf(VarTerm, "\n");
+
+ return 0;
}
int
@@ -119,10 +127,11 @@ IsInteractive()
else if (mode & MODE_DEDICATED)
mes = "Working in dedicated mode.";
if (mes) {
- printf("%s\n", mes);
- return(0);
+ if (VarTerm)
+ fprintf(VarTerm, "%s\n", mes);
+ return 0;
}
- return(1);
+ return 1;
}
static int
@@ -134,23 +143,30 @@ char **argv;
int tries;
if (LcpFsm.state > ST_CLOSED) {
- printf("LCP state is [%s]\n", StateNames[LcpFsm.state]);
- return(1);
+ if (VarTerm)
+ fprintf(VarTerm, "LCP state is [%s]\n", StateNames[LcpFsm.state]);
+ return 0;
}
+
if (!IsInteractive())
return(1);
+
if (argc > 0) {
if (SelectSystem(*argv, CONFFILE) < 0) {
- printf("%s: not found.\n", *argv);
- return(1);
+ if (VarTerm)
+ fprintf(VarTerm, "%s: not found.\n", *argv);
+ return -1;
}
}
+
tries = 0;
do {
- printf("Dial attempt %u of %d\n", ++tries, VarDialTries);
+ if (VarTerm)
+ fprintf(VarTerm, "Dial attempt %u of %d\n", ++tries, VarDialTries);
modem = OpenModem(mode);
if (modem < 0) {
- printf("failed to open modem.\n");
+ if (VarTerm)
+ fprintf(VarTerm, "Failed to open modem.\n");
break;
}
if (DialModem() == EX_DONE) {
@@ -160,7 +176,8 @@ char **argv;
break;
}
} while (VarDialTries == 0 || tries < VarDialTries);
- return(1);
+
+ return 0;
}
static int
@@ -171,33 +188,50 @@ char **argv;
{
const char *shell;
pid_t shpid;
+ FILE *oVarTerm;
- if((shell = getenv("SHELL")) == 0) {
- shell = _PATH_BSHELL;
- }
#ifdef SHELL_ONLY_INTERACTIVELY
-#ifndef HAVE_SHELL_CMD_WITH_ANY_MODE
- if( mode != MODE_INTER) {
- fprintf(stdout,
- "Can only start a shell in interactive mode\n");
- return(1);
- }
-#else
- if(argc == 0 && !(mode & MODE_INTER)) {
- fprintf(stderr,
- "Can only start an interactive shell in interactive mode\n");
- return(1);
+ if (mode != MODE_INTER) {
+ LogPrintf(LogWARN, "Can only start a shell in interactive mode\n");
+ return 1;
}
-#endif /* HAVE_SHELL_CMD_WITH_ANY_MODE */
#else
if ((mode & (MODE_AUTO|MODE_INTER)) == (MODE_AUTO|MODE_INTER)) {
- fprintf(stdout,
- "Shell is not allowed interactively in auto mode\n");
- return(1);
+ LogPrintf(LogWARN, "Shell is not allowed interactively in auto mode\n");
+ return 1;
+ }
+#endif
+
+ if(argc == 0 && !(mode & MODE_INTER)) {
+ LogPrintf(LogWARN, "Can only start an interactive shell in"
+ " interactive mode\n");
+ return 1;
}
-#endif /* SHELL_ONLY_INTERACTIVELY */
+
+ if((shell = getenv("SHELL")) == 0)
+ shell = _PATH_BSHELL;
+
if((shpid = fork()) == 0) {
- int dtablesize, i ;
+ int dtablesize, i, fd;
+
+ if (VarTerm)
+ fd = fileno(VarTerm);
+ else if ((fd = open("/dev/null", O_RDWR)) == -1) {
+ LogPrintf(LogALERT, "Failed to open /dev/null: %s\n", strerror(errno));
+ exit(1);
+ }
+
+ for (i = 0; i < 3; i++)
+ dup2(fd, i);
+
+ if (fd > 2)
+ if (VarTerm) {
+ oVarTerm = VarTerm;
+ VarTerm = 0;
+ if (oVarTerm && oVarTerm != stdout)
+ fclose(oVarTerm);
+ } else
+ close(fd);
for (dtablesize = getdtablesize(), i = 3; i < dtablesize; i++)
(void)close(i);
@@ -207,11 +241,11 @@ char **argv;
* real user for avoiding security problems.
*/
if (setgid(getgid()) < 0) {
- perror("setgid");
+ LogPrintf(LogERROR, "setgid: %s\n", strerror(errno));
exit(1);
}
if (setuid(getuid()) < 0) {
- perror("setuid");
+ LogPrintf(LogERROR, "setuid: %s\n", strerror(errno));
exit(1);
}
TtyOldMode();
@@ -233,11 +267,12 @@ char **argv;
else
(void)execl(shell, shell, NULL);
- fprintf(stdout, "exec() of %s failed\n", argc > 0? argv[0]: shell);
+ LogPrintf(LogWARN, "exec() of %s failed\n", argc > 0 ? argv[0] : shell);
exit(255);
}
+
if( shpid == (pid_t)-1 ) {
- fprintf(stdout, "Fork failed\n");
+ LogPrintf(LogERROR, "Fork failed: %s\n", strerror(errno));
} else {
int status;
(void)waitpid(shpid, &status, 0);
@@ -248,51 +283,47 @@ char **argv;
return(0);
}
-static char StrOption[] = "option ..";
-static char StrRemote[] = "[remote]";
-char StrNull[] = "";
-
struct cmdtab const Commands[] = {
{ "accept", NULL, AcceptCommand, LOCAL_AUTH,
- "accept option request", StrOption},
+ "accept option request", "accept option .."},
{ "add", NULL, AddCommand, LOCAL_AUTH,
- "add route", "dest mask gateway"},
+ "add route", "add dest mask gateway"},
{ "close", NULL, CloseCommand, LOCAL_AUTH,
- "Close connection", StrNull},
+ "Close connection", "close"},
{ "delete", NULL, DeleteCommand, LOCAL_AUTH,
- "delete route", "ALL | dest gateway [mask]"},
+ "delete route", "delete ALL | dest gateway [mask]"},
{ "deny", NULL, DenyCommand, LOCAL_AUTH,
- "Deny option request", StrOption},
+ "Deny option request", "deny option .."},
{ "dial", "call", DialCommand, LOCAL_AUTH,
- "Dial and login", StrRemote},
+ "Dial and login", "dial|call [remote]"},
{ "disable", NULL, DisableCommand, LOCAL_AUTH,
- "Disable option", StrOption},
+ "Disable option", "disable option .."},
{ "display", NULL, DisplayCommand, LOCAL_AUTH,
- "Display option configs", StrNull},
+ "Display option configs", "display"},
{ "enable", NULL, EnableCommand, LOCAL_AUTH,
- "Enable option", StrOption},
+ "Enable option", "enable option .."},
{ "passwd", NULL, LocalAuthCommand,LOCAL_NO_AUTH,
- "Password for manipulation", StrOption},
+ "Password for manipulation", "passwd option .."},
{ "load", NULL, LoadCommand, LOCAL_AUTH,
- "Load settings", StrRemote},
+ "Load settings", "load [remote]"},
{ "save", NULL, SaveCommand, LOCAL_AUTH,
- "Save settings", StrNull},
+ "Save settings", "save"},
{ "set", "setup", SetCommand, LOCAL_AUTH,
- "Set parameters", "var value"},
+ "Set parameters", "set[up] var value"},
{ "shell", "!", ShellCommand, LOCAL_AUTH,
- "Run a subshell", "[sh command]"},
+ "Run a subshell", "shell|! [sh command]"},
{ "show", NULL, ShowCommand, LOCAL_AUTH,
- "Show status and statictics", "var"},
+ "Show status and statictics", "show var"},
{ "term", NULL, TerminalCommand,LOCAL_AUTH,
- "Enter to terminal mode", StrNull},
+ "Enter to terminal mode", "term"},
{ "alias", NULL, AliasCommand, LOCAL_AUTH,
- "alias control", "option [yes|no]"},
+ "alias control", "alias option [yes|no]"},
{ "quit", "bye", QuitCommand, LOCAL_AUTH | LOCAL_NO_AUTH,
- "Quit PPP program", "[all]"},
+ "Quit PPP program", "quit|bye [all]"},
{ "help", "?", HelpCommand, LOCAL_AUTH | LOCAL_NO_AUTH,
- "Display this message", "[command]", (void *)Commands },
+ "Display this message", "help|? [command]", (void *)Commands },
{ NULL, "down", DownCommand, LOCAL_AUTH,
- "Generate down event", StrNull},
+ "Generate down event", "down"},
{ NULL, NULL, NULL },
};
@@ -305,56 +336,56 @@ extern int ShowModemStatus();
extern int ReportHdlcStatus();
extern int ShowMemMap();
-static char *LogLevelName[] = {
- LM_PHASE, LM_CHAT, LM_LQM, LM_LCP,
- LM_TCPIP, LM_HDLC, LM_ASYNC, LM_LINK,
- LM_CONNECT, LM_CARRIER,
-};
-
-static int ShowDebugLevel()
+static int ShowLogLevel()
{
int i;
- printf("%02x: ", loglevel);
- for (i = LOG_PHASE; i < MAXLOGLEVEL; i++) {
- if (loglevel & (1 << i))
- printf("%s ", LogLevelName[i]);
+ if (!VarTerm)
+ return 0;
+ fprintf(VarTerm, "Log:");
+ for (i = LogMIN; i < LogMAXCONF; i++) {
+ if (LogIsKept(i))
+ fprintf(VarTerm, " %s", LogName(i));
}
- printf("\n");
- return(1);
+ fprintf(VarTerm, "\n");
+
+ return 0;
}
static int ShowEscape()
{
int code, bit;
+ if (!VarTerm)
+ return 0;
if (EscMap[32]) {
- for (code = 0; code < 32; code++) {
- if (EscMap[code]) {
- for (bit = 0; bit < 8; bit++) {
- if (EscMap[code] & (1<<bit)) {
- printf(" 0x%02x", (code << 3) + bit);
- }
- }
- }
- }
- printf("\n");
+ for (code = 0; code < 32; code++)
+ if (EscMap[code])
+ for (bit = 0; bit < 8; bit++)
+ if (EscMap[code] & (1<<bit))
+ fprintf(VarTerm, " 0x%02x", (code << 3) + bit);
+ fprintf(VarTerm, "\n");
}
- return(1);
+ return 1;
}
static int ShowTimeout()
{
- printf(" Idle Timer: %d secs LQR Timer: %d secs Retry Timer: %d secs\n",
- VarIdleTimeout, VarLqrTimeout, VarRetryTimeout);
- return(1);
+ if (!VarTerm)
+ return 0;
+ fprintf(VarTerm, " Idle Timer: %d secs LQR Timer: %d secs"
+ " Retry Timer: %d secs\n", VarIdleTimeout, VarLqrTimeout,
+ VarRetryTimeout);
+ return 1;
}
static int ShowAuthKey()
{
- printf("AuthName = %s\n", VarAuthName);
- printf("AuthKey = %s\n", VarAuthKey);
- return(1);
+ if (!VarTerm)
+ return 0;
+ fprintf(VarTerm, "AuthName = %s\n", VarAuthName);
+ fprintf(VarTerm, "AuthKey = %s\n", VarAuthKey);
+ return 1;
}
static int ShowVersion()
@@ -362,134 +393,137 @@ static int ShowVersion()
extern char VarVersion[];
extern char VarLocalVersion[];
- printf("%s - %s \n", VarVersion, VarLocalVersion);
- return(1);
-}
-
-static int ShowLogList()
-{
- ListLog();
- return(1);
+ if (!VarTerm)
+ return 0;
+ fprintf(VarTerm, "%s - %s \n", VarVersion, VarLocalVersion);
+ return 1;
}
static int ShowInitialMRU()
{
- printf(" Initial MRU: %ld\n", VarMRU);
- return(1);
+ if (!VarTerm)
+ return 0;
+ fprintf(VarTerm, " Initial MRU: %ld\n", VarMRU);
+ return 1;
}
static int ShowPreferredMTU()
{
+ if (!VarTerm)
+ return 0;
if (VarPrefMTU)
- printf(" Preferred MTU: %ld\n", VarPrefMTU);
+ fprintf(VarTerm, " Preferred MTU: %ld\n", VarPrefMTU);
else
- printf(" Preferred MTU: unspecified\n");
- return(1);
+ fprintf(VarTerm, " Preferred MTU: unspecified\n");
+ return 1;
}
static int ShowReconnect()
{
- printf(" Reconnect Timer: %d, %d tries\n",
+ if (!VarTerm)
+ return 0;
+ fprintf(VarTerm, " Reconnect Timer: %d, %d tries\n",
VarReconnectTimer, VarReconnectTries);
- return(1);
+ return 1;
}
static int ShowRedial()
{
- printf(" Redial Timer: ");
+ if (!VarTerm)
+ return 0;
+ fprintf(VarTerm, " Redial Timer: ");
if (VarRedialTimeout >= 0) {
- printf(" %d seconds, ", VarRedialTimeout);
+ fprintf(VarTerm, " %d seconds, ", VarRedialTimeout);
}
else {
- printf(" Random 0 - %d seconds, ", REDIAL_PERIOD);
+ fprintf(VarTerm, " Random 0 - %d seconds, ", REDIAL_PERIOD);
}
- printf(" Redial Next Timer: ");
+ fprintf(VarTerm, " Redial Next Timer: ");
if (VarRedialNextTimeout >= 0) {
- printf(" %d seconds, ", VarRedialNextTimeout);
+ fprintf(VarTerm, " %d seconds, ", VarRedialNextTimeout);
}
else {
- printf(" Random 0 - %d seconds, ", REDIAL_PERIOD);
+ fprintf(VarTerm, " Random 0 - %d seconds, ", REDIAL_PERIOD);
}
if (VarDialTries)
- printf("%d dial tries", VarDialTries);
+ fprintf(VarTerm, "%d dial tries", VarDialTries);
- printf("\n");
+ fprintf(VarTerm, "\n");
- return(1);
+ return 1;
}
-#ifdef MSEXT
+#ifndef NOMSEXT
static int ShowMSExt()
{
- printf(" MS PPP extention values \n" );
- printf(" Primary NS : %s\n", inet_ntoa( ns_entries[0] ));
- printf(" Secondary NS : %s\n", inet_ntoa( ns_entries[1] ));
- printf(" Primary NBNS : %s\n", inet_ntoa( nbns_entries[0] ));
- printf(" Secondary NBNS : %s\n", inet_ntoa( nbns_entries[1] ));
-
- return(1);
+ if (!VarTerm)
+ return 0;
+ fprintf(VarTerm, " MS PPP extention values \n" );
+ fprintf(VarTerm, " Primary NS : %s\n", inet_ntoa( ns_entries[0] ));
+ fprintf(VarTerm, " Secondary NS : %s\n", inet_ntoa( ns_entries[1] ));
+ fprintf(VarTerm, " Primary NBNS : %s\n", inet_ntoa( nbns_entries[0] ));
+ fprintf(VarTerm, " Secondary NBNS : %s\n", inet_ntoa( nbns_entries[1] ));
+ return 1;
}
-#endif /* MSEXT */
+#endif
extern int ShowIfilter(), ShowOfilter(), ShowDfilter(), ShowAfilter();
struct cmdtab const ShowCommands[] = {
{ "afilter", NULL, ShowAfilter, LOCAL_AUTH,
- "Show keep Alive filters", StrOption},
+ "Show keep Alive filters", "show afilter option .."},
{ "auth", NULL, ShowAuthKey, LOCAL_AUTH,
- "Show auth name/key", StrNull},
+ "Show auth name/key", "show auth"},
{ "ccp", NULL, ReportCcpStatus, LOCAL_AUTH,
- "Show CCP status", StrNull},
+ "Show CCP status", "show cpp"},
{ "compress", NULL, ReportCompress, LOCAL_AUTH,
- "Show compression statictics", StrNull},
- { "debug", NULL, ShowDebugLevel, LOCAL_AUTH,
- "Show current debug level", StrNull},
+ "Show compression statictics", "show compress"},
{ "dfilter", NULL, ShowDfilter, LOCAL_AUTH,
- "Show Demand filters", StrOption},
+ "Show Demand filters", "show dfilteroption .."},
{ "escape", NULL, ShowEscape, LOCAL_AUTH,
- "Show escape characters", StrNull},
+ "Show escape characters", "show escape"},
{ "hdlc", NULL, ReportHdlcStatus, LOCAL_AUTH,
- "Show HDLC error summary", StrNull},
+ "Show HDLC error summary", "show hdlc"},
{ "ifilter", NULL, ShowIfilter, LOCAL_AUTH,
- "Show Input filters", StrOption},
+ "Show Input filters", "show ifilter option .."},
{ "ipcp", NULL, ReportIpcpStatus, LOCAL_AUTH,
- "Show IPCP status", StrNull},
+ "Show IPCP status", "show ipcp"},
{ "lcp", NULL, ReportLcpStatus, LOCAL_AUTH,
- "Show LCP status", StrNull},
- { "log", NULL, ShowLogList, LOCAL_AUTH,
- "Show log records", StrNull},
+ "Show LCP status", "show lcp"},
+ { "log", NULL, ShowLogLevel, LOCAL_AUTH,
+ "Show current log level", "show log"},
{ "mem", NULL, ShowMemMap, LOCAL_AUTH,
- "Show memory map", StrNull},
+ "Show memory map", "show mem"},
{ "modem", NULL, ShowModemStatus, LOCAL_AUTH,
- "Show modem setups", StrNull},
+ "Show modem setups", "show modem"},
{ "mru", NULL, ShowInitialMRU, LOCAL_AUTH,
- "Show Initial MRU", StrNull},
+ "Show Initial MRU", "show mru"},
{ "mtu", NULL, ShowPreferredMTU, LOCAL_AUTH,
- "Show Preferred MTU", StrNull},
+ "Show Preferred MTU", "show mtu"},
{ "ofilter", NULL, ShowOfilter, LOCAL_AUTH,
- "Show Output filters", StrOption},
+ "Show Output filters", "show ofilter option .."},
{ "proto", NULL, ReportProtStatus, LOCAL_AUTH,
- "Show protocol summary", StrNull},
+ "Show protocol summary", "show proto"},
{ "reconnect",NULL, ShowReconnect, LOCAL_AUTH,
- "Show Reconnect timer,tries", StrNull},
+ "Show Reconnect timer,tries", "show reconnect"},
{ "redial", NULL, ShowRedial, LOCAL_AUTH,
- "Show Redial timeout value", StrNull},
+ "Show Redial timeout value", "show redial"},
{ "route", NULL, ShowRoute, LOCAL_AUTH,
- "Show routing table", StrNull},
+ "Show routing table", "show route"},
{ "timeout", NULL, ShowTimeout, LOCAL_AUTH,
- "Show Idle timeout value", StrNull},
-#ifdef MSEXT
+ "Show Idle timeout value", "show timeout"},
+#ifndef NOMSEXT
{ "msext", NULL, ShowMSExt, LOCAL_AUTH,
- "Show MS PPP extentions", StrNull},
-#endif /* MSEXT */
+ "Show MS PPP extentions", "show msext"},
+#endif
{ "version", NULL, ShowVersion, LOCAL_NO_AUTH | LOCAL_AUTH,
- "Show version string", StrNull},
+ "Show version string", "show version"},
{ "help", "?", HelpCommand, LOCAL_NO_AUTH | LOCAL_AUTH,
- "Display this message", StrNull, (void *)ShowCommands},
+ "Display this message", "show help|?", (void *)ShowCommands},
{ NULL, NULL, NULL },
};
@@ -499,22 +533,33 @@ struct cmdtab *cmds;
char *str;
int *pmatch;
{
- int nmatch = 0;
- int len = strlen(str);
- struct cmdtab *found = NULL;
+ int nmatch;
+ int len;
+ struct cmdtab *found;
+ found = NULL;
+ len = strlen(str);
+ nmatch = 0;
while (cmds->func) {
if (cmds->name && strncasecmp(str, cmds->name, len) == 0) {
+ if (cmds->name[len] == '\0') {
+ *pmatch = 1;
+ return cmds;
+ }
nmatch++;
found = cmds;
- } else if (cmds->alias && strncasecmp(str, cmds->alias, len) == 0) {
+ } else if(cmds->alias && strncasecmp(str, cmds->alias, len) == 0) {
+ if (cmds->alias[len] == '\0') {
+ *pmatch = 1;
+ return cmds;
+ }
nmatch++;
found = cmds;
}
cmds++;
}
*pmatch = nmatch;
- return(found);
+ return found;
}
int
@@ -529,26 +574,33 @@ char **argv;
cmd = FindCommand(cmdlist, *argv, &nmatch);
if (nmatch > 1)
- printf("Ambiguous.\n");
+ LogPrintf(LogWARN, "%s: Ambiguous command\n", *argv);
else if (cmd && ( cmd->lauth & VarLocalAuth ) )
val = (cmd->func)(cmd, --argc, ++argv, cmd->args);
else
- printf("what?\n");
- return(val);
+ LogPrintf(LogWARN, "%s: Invalid command\n", *argv);
+
+ if (val == -1)
+ LogPrintf(LogWARN, "Usage: %s\n", cmd->syntax);
+ else if(val)
+ LogPrintf(LogCOMMAND, "%s: Failed %d\n", *argv, val);
+
+ return val;
}
int aft_cmd = 1;
+extern int TermMode;
void
Prompt()
{
char *pconnect, *pauth;
- if (!(mode & MODE_INTER))
+ if (!(mode & MODE_INTER) || !VarTerm || TermMode)
return;
if (!aft_cmd)
- printf("\n");
+ fprintf(VarTerm, "\n");
else
aft_cmd = 0;
@@ -560,8 +612,8 @@ Prompt()
pconnect = "PPP";
else
pconnect = "ppp";
- printf("%s%s%s> ", pconnect, pauth, VarShortHost);
- fflush(stdout);
+ fprintf(VarTerm, "%s%s%s> ", pconnect, pauth, VarShortHost);
+ fflush(VarTerm);
}
void
@@ -572,23 +624,20 @@ int prompt;
{
char *vector[20];
char **argv;
- int argc, val;
+ int argc;
char *cp;
- val = 1;
if (nb > 0) {
cp = buff + strcspn(buff, "\r\n");
if (cp)
*cp = '\0';
- {
- argc = MakeArgs(buff, vector, VECSIZE(vector));
- argv = vector;
+ argc = MakeArgs(buff, vector, VECSIZE(vector));
+ argv = vector;
- if (argc > 0)
- val = FindExec(Commands, argc, argv);
- }
+ if (argc > 0)
+ FindExec(Commands, argc, argv);
}
- if (val && prompt)
+ if (prompt)
Prompt();
}
@@ -598,31 +647,36 @@ struct cmdtab *list;
int argc;
char **argv;
{
- int val = 1;
-
if (argc > 0)
- val = FindExec(ShowCommands, argc, argv);
+ FindExec(ShowCommands, argc, argv);
+ else if (VarTerm)
+ fprintf(VarTerm, "Use ``show ?'' to get a list.\n");
else
- printf("Use ``show ?'' to get a list.\n");
- return(val);
+ LogPrintf(LogWARN, "show command must have arguments\n");
+
+ return 0;
}
static int
TerminalCommand()
{
if (LcpFsm.state > ST_CLOSED) {
- printf("LCP state is [%s]\n", StateNames[LcpFsm.state]);
- return(1);
+ if (VarTerm)
+ fprintf(VarTerm, "LCP state is [%s]\n", StateNames[LcpFsm.state]);
+ return 1;
}
if (!IsInteractive())
return(1);
modem = OpenModem(mode);
if (modem < 0) {
- printf("failed to open modem.\n");
+ if (VarTerm)
+ fprintf(VarTerm, "Failed to open modem.\n");
return(1);
}
- printf("Enter to terminal mode.\n");
- printf("Type `~?' for help.\n");
+ if (VarTerm) {
+ fprintf(VarTerm, "Enter to terminal mode.\n");
+ fprintf(VarTerm, "Type `~?' for help.\n");
+ }
TtyTermMode();
return(0);
}
@@ -633,22 +687,31 @@ struct cmdtab *list;
int argc;
char **argv;
{
+ FILE *oVarTerm;
+
if (mode & (MODE_DIRECT|MODE_DEDICATED|MODE_AUTO)) {
if (argc > 0 && (VarLocalAuth & LOCAL_AUTH)) {
Cleanup(EX_NORMAL);
mode &= ~MODE_INTER;
+ oVarTerm = VarTerm;
+ VarTerm = 0;
+ if (oVarTerm && oVarTerm != stdout)
+ fclose(oVarTerm);
} else {
- LogPrintf(LOG_PHASE_BIT, "client connection closed.\n");
+ LogPrintf(LogPHASE, "Client connection closed.\n");
VarLocalAuth = LOCAL_NO_AUTH;
+ mode &= ~MODE_INTER;
+ oVarTerm = VarTerm;
+ VarTerm = 0;
+ if (oVarTerm && oVarTerm != stdout)
+ fclose(oVarTerm);
close(netfd);
- close(1);
- dup2(2, 1); /* Have to have something here or the modem will be 1 */
netfd = -1;
- mode &= ~MODE_INTER;
}
} else
Cleanup(EX_NORMAL);
- return(1);
+
+ return 0;
}
static int
@@ -658,14 +721,14 @@ CloseCommand()
LcpClose();
if (mode & MODE_BACKGROUND)
Cleanup(EX_NORMAL);
- return(1);
+ return 0;
}
static int
DownCommand()
{
LcpDown();
- return(1);
+ return 0;
}
static int
@@ -679,16 +742,16 @@ char **argv;
if (argc > 0) {
if (strcmp(*argv, "sync") == 0) {
VarSpeed = 0;
- return(1);
+ return 0;
}
speed = atoi(*argv);
if (IntToSpeed(speed) != B0) {
VarSpeed = speed;
- return(1);
+ return 0;
}
- printf("invalid speed.\n");
+ LogPrintf(LogWARN, "%s: Invalid speed\n", *argv);
}
- return(1);
+ return -1;
}
static int
@@ -700,9 +763,10 @@ char **argv;
if (argc == 2) {
VarReconnectTimer = atoi(argv[0]);
VarReconnectTries = atoi(argv[1]);
- } else
- printf("Usage: %s %s\n", list->name, list->syntax);
- return(1);
+ return 0;
+ }
+
+ return -1;
}
static int
@@ -719,22 +783,19 @@ char **argv;
if (strncasecmp(argv[0], "random", 6) == 0 &&
(argv[0][6] == '\0' || argv[0][6] == '.')) {
VarRedialTimeout = -1;
- printf("Using random redial timeout.\n");
if (!randinit) {
randinit = 1;
if (srandomdev() < 0)
srandom((unsigned long)(time(NULL) ^ getpid()));
}
- }
- else {
+ } else {
timeout = atoi(argv[0]);
- if (timeout >= 0) {
+ if (timeout >= 0)
VarRedialTimeout = timeout;
- }
else {
- printf("invalid redial timeout\n");
- printf("Usage: %s %s\n", list->name, list->syntax);
+ LogPrintf(LogWARN, "Invalid redial timeout\n");
+ return -1;
}
}
@@ -742,7 +803,6 @@ char **argv;
if (dot) {
if (strcasecmp(++dot, "random") == 0) {
VarRedialNextTimeout = -1;
- printf("Using random next redial timeout.\n");
if (!randinit) {
randinit = 1;
if (srandomdev() < 0)
@@ -751,12 +811,11 @@ char **argv;
}
else {
timeout = atoi(dot);
- if (timeout >= 0) {
+ if (timeout >= 0)
VarRedialNextTimeout = timeout;
- }
else {
- printf("invalid next redial timeout\n");
- printf("Usage: %s %s\n", list->name, list->syntax);
+ LogPrintf(LogWARN, "Invalid next redial timeout\n");
+ return -1;
}
}
}
@@ -767,18 +826,16 @@ char **argv;
tries = atoi(argv[1]);
if (tries >= 0) {
- VarDialTries = tries;
- }
- else {
- printf("invalid retry value\n");
- printf("Usage: %s %s\n", list->name, list->syntax);
+ VarDialTries = tries;
+ } else {
+ LogPrintf(LogWARN, "Invalid retry value\n");
+ return 1;
}
}
+ return 0;
}
- else {
- printf("Usage: %s %s\n", list->name, list->syntax);
- }
- return(1);
+
+ return -1;
}
static int
@@ -792,40 +849,46 @@ char **argv;
if (argc > 0) {
parity = ChangeParity(*argv);
if (parity < 0)
- printf("Invalid parity.\n");
- else
+ LogPrintf(LogWARN, "Invalid parity.\n");
+ else {
VarParity = parity;
+ return 0;
+ }
}
- return(1);
+
+ return -1;
}
static int
-SetDebugLevel(list, argc, argv)
+SetLogLevel(list, argc, argv)
struct cmdtab *list;
int argc;
char **argv;
{
- int level, w;
-
- for (level = 0; argc-- > 0; argv++) {
- if (isdigit(**argv)) {
- w = atoi(*argv);
- if (w < 0 || w >= MAXLOGLEVEL) {
- printf("invalid log level.\n");
+ int i;
+ int res;
+ char *arg;
+
+ res = 0;
+ if (argc == 0 || (argv[0][0] != '+' && argv[0][0] != '-'))
+ LogDiscardAll();
+ while (argc--) {
+ arg = **argv == '+' || **argv == '-' ? *argv + 1 : *argv;
+ for (i = LogMIN; i <= LogMAX; i++)
+ if (strcasecmp(arg, LogName(i)) == 0) {
+ if (**argv == '-')
+ LogDiscard(i);
+ else
+ LogKeep(i);
break;
- } else
- level |= (1 << w);
- } else {
- for (w = 0; w < MAXLOGLEVEL; w++) {
- if (strcasecmp(*argv, LogLevelName[w]) == 0) {
- level |= (1 << w);
- continue;
- }
}
+ if (i > LogMAX) {
+ LogPrintf(LogWARN, "%s: Invalid log value\n", arg);
+ res = -1;
}
+ argv++;
}
- loglevel = level;
- return(1);
+ return res;
}
static int
@@ -844,7 +907,7 @@ char **argv;
EscMap[code >> 3] |= (1 << (code&7));
EscMap[32] = 1;
}
- return(1);
+ return 0;
}
static int
@@ -854,19 +917,22 @@ int argc;
char **argv;
{
long mru;
+ char *err;
if (argc > 0) {
mru = atol(*argv);
if (mru < MIN_MRU)
- printf("Given MRU value (%ld) is too small.\n", mru);
+ err = "Given MRU value (%ld) is too small.\n";
else if (mru > MAX_MRU)
- printf("Given MRU value (%ld) is too big.\n", mru);
- else
+ err = "Given MRU value (%ld) is too big.\n";
+ else {
VarMRU = mru;
- } else
- printf("Usage: %s %s\n", list->name, list->syntax);
+ return 0;
+ }
+ LogPrintf(LogWARN, err, mru);
+ }
- return(1);
+ return -1;
}
static int
@@ -876,21 +942,25 @@ int argc;
char **argv;
{
long mtu;
+ char *err;
if (argc > 0) {
mtu = atol(*argv);
- if (mtu == 0)
+ if (mtu == 0) {
VarPrefMTU = 0;
- else if (mtu < MIN_MTU)
- printf("Given MTU value (%ld) is too small.\n", mtu);
+ return 0;
+ } else if (mtu < MIN_MTU)
+ err = "Given MTU value (%ld) is too small.\n";
else if (mtu > MAX_MTU)
- printf("Given MTU value (%ld) is too big.\n", mtu);
- else
+ err = "Given MTU value (%ld) is too big.\n";
+ else {
VarPrefMTU = mtu;
- } else
- printf("Usage: %s %s\n", list->name, list->syntax);
+ return 0;
+ }
+ LogPrintf(LogWARN, err, mtu);
+ }
- return(1);
+ return -1;
}
static int
@@ -901,6 +971,7 @@ char **argv;
{
if (argc-- > 0) {
VarIdleTimeout = atoi(*argv++);
+ UpdateIdleTimer(); /* If we're connected, restart the idle timer */
if (argc-- > 0) {
VarLqrTimeout = atoi(*argv++);
if (VarLqrTimeout < 1)
@@ -911,8 +982,10 @@ char **argv;
VarRetryTimeout = 3;
}
}
+ return 0;
}
- return(1);
+
+ return -1;
}
struct in_addr
@@ -938,22 +1011,21 @@ char **argv;
{
DefMyAddress.ipaddr.s_addr = DefHisAddress.ipaddr.s_addr = 0L;
- if (argc > 4) {
- printf("set ifaddr: too many arguments (%d > 4)\n", argc);
- return(0);
- }
+ if (argc > 4)
+ return -1;
+
if (argc > 0) {
if (ParseAddr(argc, argv++,
&DefMyAddress.ipaddr,
&DefMyAddress.mask,
&DefMyAddress.width) == 0)
- return(0);
+ return 1;
if (--argc > 0) {
if (ParseAddr(argc, argv++,
&DefHisAddress.ipaddr,
&DefHisAddress.mask,
&DefHisAddress.width) == 0)
- return(0);
+ return 2;
if (--argc > 0) {
ifnetmask = GetIpAddr(*argv);
if (--argc > 0) {
@@ -961,7 +1033,7 @@ char **argv;
&DefTriggerAddress.ipaddr,
&DefTriggerAddress.mask,
&DefTriggerAddress.width) == 0)
- return(0);
+ return 3;
}
}
}
@@ -981,12 +1053,12 @@ char **argv;
if ((mode & MODE_AUTO) ||
((mode & MODE_DEDICATED) && dstsystem)) {
if (OsSetIpaddress(DefMyAddress.ipaddr, DefHisAddress.ipaddr, ifnetmask) < 0)
- return(0);
+ return 4;
}
- return(1);
+ return 0;
}
-#ifdef MSEXT
+#ifndef NOMSEXT
void
SetMSEXT(pri_addr, sec_addr, argc, argv)
@@ -1025,7 +1097,7 @@ int argc;
char **argv;
{
SetMSEXT(&ns_entries[0], &ns_entries[1], argc, argv);
- return(1);
+ return 0;
}
static int
@@ -1035,7 +1107,7 @@ int argc;
char **argv;
{
SetMSEXT(&nbns_entries[0], &nbns_entries[1], argc, argv);
- return(1);
+ return 0;
}
#endif /* MS_EXT */
@@ -1076,6 +1148,7 @@ int param;
VarLoginScript[sizeof(VarLoginScript)-1] = '\0';
break;
case VAR_DEVICE:
+ CloseModem();
strncpy(VarDevice, *argv, sizeof(VarDevice)-1);
VarDevice[sizeof(VarDevice)-1] = '\0';
VarBaseDevice = rindex(VarDevice, '/');
@@ -1093,7 +1166,7 @@ int param;
break;
}
}
- return(1);
+ return 0;
}
static int SetCtsRts(list, argc, argv)
@@ -1107,9 +1180,10 @@ char **argv;
else if (strcmp(*argv, "off") == 0)
VarCtsRts = FALSE;
else
- printf("usage: set ctsrts [on|off].\n");
+ return -1;
+ return 0;
}
- return(1);
+ return -1;
}
@@ -1124,70 +1198,69 @@ char **argv;
else if (strcmp(*argv, "passive") == 0)
VarOpenMode = OPEN_PASSIVE;
else
- printf("Invalid mode.\n");
+ return -1;
+ return 0;
}
- return(1);
+ return -1;
}
-static char StrChatStr[] = "chat-script";
-static char StrValue[] = "value";
extern int SetIfilter(), SetOfilter(), SetDfilter(), SetAfilter();
struct cmdtab const SetCommands[] = {
{ "accmap", NULL, SetVariable, LOCAL_AUTH,
- "Set accmap value", "hex-value", (void *)VAR_ACCMAP},
+ "Set accmap value", "set accmap hex-value", (void *)VAR_ACCMAP},
{ "afilter", NULL, SetAfilter, LOCAL_AUTH,
- "Set keep Alive filter", "..."},
+ "Set keep Alive filter", "set afilter ..."},
{ "authkey", "key", SetVariable, LOCAL_AUTH,
- "Set authentication key", "key", (void *)VAR_AUTHKEY},
+ "Set authentication key", "set authkey|key key", (void *)VAR_AUTHKEY},
{ "authname", NULL, SetVariable, LOCAL_AUTH,
- "Set authentication name", "name", (void *)VAR_AUTHNAME},
+ "Set authentication name", "set authname name", (void *)VAR_AUTHNAME},
{ "ctsrts", NULL, SetCtsRts, LOCAL_AUTH,
- "Use CTS/RTS modem signalling", "[on|off]"},
- { "debug", NULL, SetDebugLevel, LOCAL_AUTH,
- "Set debug level", StrValue},
+ "Use CTS/RTS modem signalling", "set ctsrts [on|off]"},
{ "device", "line", SetVariable, LOCAL_AUTH,
- "Set modem device name", "device-name", (void *)VAR_DEVICE},
+ "Set modem device name", "set device|line device-name", (void *)VAR_DEVICE},
{ "dfilter", NULL, SetDfilter, LOCAL_AUTH,
- "Set demand filter", "..."},
+ "Set demand filter", "set dfilter ..."},
{ "dial", NULL, SetVariable, LOCAL_AUTH,
- "Set dialing script", StrChatStr, (void *)VAR_DIAL},
+ "Set dialing script", "set dial chat-script", (void *)VAR_DIAL},
{ "escape", NULL, SetEscape, LOCAL_AUTH,
- "Set escape characters", "hex-digit ..."},
+ "Set escape characters", "set escape hex-digit ..."},
{ "ifaddr", NULL, SetInterfaceAddr, LOCAL_AUTH,
- "Set destination address", "[src-addr [dst-addr [netmask [trg-addr]]]]"},
+ "Set destination address", "set ifaddr [src-addr [dst-addr [netmask [trg-addr]]]]"},
{ "ifilter", NULL, SetIfilter, LOCAL_AUTH,
- "Set input filter", "..."},
+ "Set input filter", "set ifilter ..."},
+ { "log", NULL, SetLogLevel, LOCAL_AUTH,
+ "Set log level", "set log [+|-]value..."},
{ "login", NULL, SetVariable, LOCAL_AUTH,
- "Set login script", StrChatStr, (void *)VAR_LOGIN },
+ "Set login script", "set login chat-script", (void *)VAR_LOGIN },
{ "mru", NULL, SetInitialMRU, LOCAL_AUTH,
- "Set Initial MRU value", StrValue },
+ "Set Initial MRU value", "set mru value" },
{ "mtu", NULL, SetPreferredMTU, LOCAL_AUTH,
- "Set Preferred MTU value", StrValue },
+ "Set Preferred MTU value", "set mtu value" },
{ "ofilter", NULL, SetOfilter, LOCAL_AUTH,
- "Set output filter", "..." },
+ "Set output filter", "set ofilter ..." },
{ "openmode", NULL, SetOpenMode, LOCAL_AUTH,
- "Set open mode", "[active|passive]"},
+ "Set open mode", "set openmode [active|passive]"},
{ "parity", NULL, SetModemParity, LOCAL_AUTH,
- "Set modem parity", "[odd|even|none]"},
+ "Set modem parity", "set parity [odd|even|none]"},
{ "phone", NULL, SetVariable, LOCAL_AUTH,
- "Set telephone number(s)", "phone1[:phone2[...]]", (void *)VAR_PHONE },
+ "Set telephone number(s)", "set phone phone1[:phone2[...]]", (void *)VAR_PHONE },
{ "reconnect",NULL, SetReconnect, LOCAL_AUTH,
- "Set Reconnect timeout", "value ntries"},
+ "Set Reconnect timeout", "set reconnect value ntries"},
{ "redial", NULL, SetRedialTimeout, LOCAL_AUTH,
- "Set Redial timeout", "value|random[.value|random] [dial_attempts]"},
+ "Set Redial timeout", "set redial value|random[.value|random] [dial_attempts]"},
{ "speed", NULL, SetModemSpeed, LOCAL_AUTH,
- "Set modem speed", "speed"},
+ "Set modem speed", "set speed value"},
{ "timeout", NULL, SetIdleTimeout, LOCAL_AUTH,
- "Set Idle timeout", StrValue},
-#ifdef MSEXT
+ "Set Idle timeout", "set timeout value"},
+#ifndef NOMSEXT
{ "ns", NULL, SetNS, LOCAL_AUTH,
- "Set NameServer", "pri-addr [sec-addr]"},
+ "Set NameServer", "set ns pri-addr [sec-addr]"},
{ "nbns", NULL, SetNBNS, LOCAL_AUTH,
- "Set NetBIOS NameServer", "pri-addr [sec-addr]"},
-#endif /* MSEXT */
+ "Set NetBIOS NameServer", "set nbns pri-addr [sec-addr]"},
+#endif
{ "help", "?", HelpCommand, LOCAL_AUTH | LOCAL_NO_AUTH,
- "Display this message", StrNull, (void *)SetCommands},
+ "Display this message", "set help|?", (void *)SetCommands},
{ NULL, NULL, NULL },
};
@@ -1197,13 +1270,15 @@ struct cmdtab *list;
int argc;
char **argv;
{
- int val = 1;
-
if (argc > 0)
- val = FindExec(SetCommands, argc, argv);
+ FindExec(SetCommands, argc, argv);
+ else if (VarTerm)
+ fprintf(VarTerm, "Use `set ?' to get a list or `set ? <var>' for"
+ " syntax help.\n");
else
- printf("Use `set ?' to get a list or `set ? <var>' for syntax help.\n");
- return(val);
+ LogPrintf(LogWARN, "set command must have arguments\n");
+
+ return 0;
}
@@ -1223,10 +1298,10 @@ char **argv;
else
gateway = GetIpAddr(argv[2]);
OsSetRoute(RTM_ADD, dest, gateway, netmask);
- } else {
- printf("Usage: %s %s\n", list->name, list->syntax);
+ return 0;
}
- return(1);
+
+ return -1;
}
static int
@@ -1245,50 +1320,49 @@ char **argv;
gateway = GetIpAddr(argv[1]);
netmask.s_addr = 0;
if (argc == 3) {
- if (inet_aton(argv[1], &netmask) == 0) {
- printf("bad netmask value.\n");
- return(1);
+ if (inet_aton(argv[2], &netmask) == 0) {
+ LogPrintf(LogWARN, "Bad netmask value.\n");
+ return -1;
}
}
OsSetRoute(RTM_DELETE, dest, gateway, netmask);
- } else if (argc == 1 && strcasecmp(argv[0], "ALL") == 0) {
+ } else if (argc == 1 && strcasecmp(argv[0], "all") == 0) {
DeleteIfRoutes(0);
- } else {
- printf("Usage: %s %s\n", list->name, list->syntax);
- }
- return(1);
-}
+ } else
+ return -1;
+ return 0;
+}
static int AliasEnable();
static int AliasOption();
-
static struct cmdtab const AliasCommands[] =
{
{ "enable", NULL, AliasEnable, LOCAL_AUTH,
- "enable IP aliasing", "[yes|no]"},
+ "enable IP aliasing", "alias enable [yes|no]"},
{ "port", NULL, AliasRedirectPort, LOCAL_AUTH,
- "port redirection", "[proto addr_local:port_local port_alias]"},
+ "port redirection", "alias port [proto addr_local:port_local port_alias]"},
{ "addr", NULL, AliasRedirectAddr, LOCAL_AUTH,
- "static address translation", "[addr_local addr_alias]"},
+ "static address translation", "alias addr [addr_local addr_alias]"},
{ "deny_incoming", NULL, AliasOption, LOCAL_AUTH,
- "stop incoming connections", "[yes|no]",
+ "stop incoming connections", "alias deny_incoming [yes|no]",
(void*)PKT_ALIAS_DENY_INCOMING},
{ "log", NULL, AliasOption, LOCAL_AUTH,
- "log aliasing link creation", "[yes|no]",
+ "log aliasing link creation", "alias log [yes|no]",
(void*)PKT_ALIAS_LOG},
{ "same_ports", NULL, AliasOption, LOCAL_AUTH,
- "try to leave port numbers unchanged", "[yes|no]",
+ "try to leave port numbers unchanged", "alias same_ports [yes|no]",
(void*)PKT_ALIAS_SAME_PORTS},
{ "use_sockets", NULL, AliasOption, LOCAL_AUTH,
- "allocate host sockets", "[yes|no]",
+ "allocate host sockets", "alias use_sockets [yes|no]",
(void*)PKT_ALIAS_USE_SOCKETS },
{ "unregistered_only", NULL, AliasOption, LOCAL_AUTH,
- "alias unregistered (private) IP address space only", "[yes|no]",
+ "alias unregistered (private) IP address space only",
+ "alias unregistered_only [yes|no]",
(void*)PKT_ALIAS_UNREGISTERED_ONLY},
{ "help", "?", HelpCommand, LOCAL_AUTH | LOCAL_NO_AUTH,
- "Display this message", StrNull,
+ "Display this message", "alias help|?",
(void *)AliasCommands},
{ NULL, NULL, NULL },
};
@@ -1300,16 +1374,16 @@ struct cmdtab *list;
int argc;
char **argv;
{
- int val = 1;
-
if (argc > 0)
- val = FindExec(AliasCommands, argc, argv);
+ FindExec(AliasCommands, argc, argv);
+ else if (VarTerm)
+ fprintf(VarTerm, "Use `alias help' to get a list or `alias help <option>'"
+ " for syntax help.\n");
else
- printf("Use `alias help' to get a list or `alias help <option>' for syntax h
-elp.\n");
- return(val);
-}
+ LogPrintf(LogWARN, "alias command must have arguments\n");
+ return 0;
+}
static int
AliasEnable(list, argc, argv)
@@ -1317,21 +1391,26 @@ struct cmdtab *list;
int argc;
char **argv;
{
- if (argc == 1 && strcmp(argv[0], "yes") == 0) {
- if (!(mode & MODE_ALIAS))
- if (loadAliasHandlers(&VarAliasHandlers) == 0)
- mode |= MODE_ALIAS;
- else
- printf("Cannot load alias library\n");
- } else if (argc == 1 && strcmp(argv[0], "no") == 0) {
- if (mode & MODE_ALIAS) {
- unloadAliasHandlers();
- mode &= ~MODE_ALIAS;
+ if (argc == 1)
+ if (strcasecmp(argv[0], "yes") == 0) {
+ if (!(mode & MODE_ALIAS)) {
+ if (loadAliasHandlers(&VarAliasHandlers) == 0) {
+ mode |= MODE_ALIAS;
+ return 0;
}
- } else {
- printf("Usage: alias %s %s\n", list->name, list->syntax);
+ LogPrintf(LogWARN, "Cannot load alias library\n");
+ return 1;
+ }
+ return 0;
+ } else if (strcasecmp(argv[0], "no") == 0) {
+ if (mode & MODE_ALIAS) {
+ unloadAliasHandlers();
+ mode &= ~MODE_ALIAS;
+ }
+ return 0;
}
- return(1);
+
+ return -1;
}
@@ -1342,18 +1421,20 @@ int argc;
char **argv;
void* param;
{
- if (argc == 1 && strcmp(argv[0], "yes") == 0) {
- if (mode & MODE_ALIAS)
+ if (argc == 1)
+ if (strcasecmp(argv[0], "yes") == 0) {
+ if (mode & MODE_ALIAS) {
VarSetPacketAliasMode((unsigned)param, (unsigned)param);
- else
- printf("alias not enabled\n");
- } else if (argc == 1 && strcmp(argv[0], "no") == 0) {
- if (mode & MODE_ALIAS)
+ return 0;
+ }
+ LogPrintf(LogWARN, "alias not enabled\n");
+ } else if (strcmp(argv[0], "no") == 0) {
+ if (mode & MODE_ALIAS) {
VarSetPacketAliasMode(0, (unsigned)param);
- else
- printf("alias not enabled\n");
- } else {
- printf("Usage: alias %s %s\n", list->name, list->syntax);
- }
- return(1);
+ return 0;
+ }
+ LogPrintf(LogWARN, "alias not enabled\n");
+ }
+
+ return -1;
}
diff --git a/usr.sbin/ppp/defs.h b/usr.sbin/ppp/defs.h
index bd5e1ad..a4aefca 100644
--- a/usr.sbin/ppp/defs.h
+++ b/usr.sbin/ppp/defs.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: defs.h,v 1.13 1997/05/04 02:39:03 ache Exp $
+ * $Id: defs.h,v 1.14 1997/05/10 03:39:52 brian Exp $
*
* TODO:
*/
@@ -36,7 +36,6 @@
/*
* Check follwiing definitions for your machine envirinment
*/
-#define LOGFILE "/var/log/ppp.tun%d.log" /* Name of log file */
#ifdef __FreeBSD__
#define MODEM_DEV "/dev/cuaa1" /* name of tty device */
#define BASE_MODEM_DEV "cuaa1" /* name of base tty device */
diff --git a/usr.sbin/ppp/filter.c b/usr.sbin/ppp/filter.c
index 4fd4a67..305573e 100644
--- a/usr.sbin/ppp/filter.c
+++ b/usr.sbin/ppp/filter.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: filter.c,v 1.8 1997/02/22 16:10:12 peter Exp $
+ * $Id: filter.c,v 1.9 1997/05/10 01:22:08 brian Exp $
*
* TODO: Shoud send ICMP error message when we discard packets.
*/
@@ -32,7 +32,11 @@
#include <stdlib.h>
#include <strings.h>
#include "command.h"
+#include "mbuf.h"
+#include "log.h"
#include "filter.h"
+#include "loadalias.h"
+#include "vars.h"
static struct filterent filterdata;
@@ -61,9 +65,7 @@ int *pwidth;
char *cp, *wp;
if (argc < 1) {
-#ifdef notdef
- printf("address/mask is expected.\n");
-#endif
+ LogPrintf(LogWARN, "ParseAddr: address/mask is expected.\n");
return(0);
}
@@ -75,7 +77,7 @@ int *pwidth;
if (cp && *cp) {
bits = strtol(cp, &wp, 0);
if (cp == wp || bits < 0 || bits > 32) {
- printf("bad mask width.\n");
+ LogPrintf(LogWARN, "ParseAddr: bad mask width.\n");
return(0);
}
} else {
@@ -136,7 +138,8 @@ int proto;
port = strtol(service, &cp, 0);
if (cp == service) {
- printf("%s is not a port name or number.\n", service);
+ LogPrintf(LogWARN, "ParsePort: %s is not a port name or number.\n",
+ service);
return(0);
}
return(port);
@@ -159,13 +162,13 @@ char **argv;
filterdata.opt.srcop = OP_NONE;
break;
default:
- printf("bad icmp syntax.\n");
+ LogPrintf(LogWARN, "ParseIcmp: bad icmp syntax.\n");
return(0);
case 3:
if (STREQ(*argv, "src") && STREQ(argv[1], "eq")) {
type = strtol(argv[2], &cp, 0);
if (cp == argv[2]) {
- printf("type is expected.\n");
+ LogPrintf(LogWARN, "ParseIcmp: type is expected.\n");
return(0);
}
filterdata.opt.srcop = OP_EQ;
@@ -207,15 +210,13 @@ int proto;
return(1);
}
if (argc < 3) {
-#ifdef notdef
- printf("bad udp syntax.\n");
-#endif
+ LogPrintf(LogWARN, "ParseUdpOrTcp: bad udp/tcp syntax.\n");
return(0);
}
if (argc >= 3 && STREQ(*argv, "src")) {
filterdata.opt.srcop = ParseOp(argv[1]);
if (filterdata.opt.srcop == OP_NONE) {
- printf("bad operation\n");
+ LogPrintf(LogWARN, "ParseUdpOrTcp: bad operation\n");
return(0);
}
filterdata.opt.srcport = ParsePort(argv[2], proto);
@@ -228,7 +229,7 @@ int proto;
if (argc >= 3 && STREQ(argv[0], "dst")) {
filterdata.opt.dstop = ParseOp(argv[1]);
if (filterdata.opt.dstop == OP_NONE) {
- printf("bad operation\n");
+ LogPrintf(LogWARN, "ParseUdpOrTcp: bad operation\n");
return(0);
}
filterdata.opt.dstport = ParsePort(argv[2], proto);
@@ -243,11 +244,11 @@ int proto;
filterdata.opt.estab = 1;
return(1);
}
- printf("estab is expected: %s\n", *argv);
+ LogPrintf(LogWARN, "ParseUdpOrTcp: estab is expected: %s\n", *argv);
return(0);
}
if (argc > 0)
- printf("bad src/dst port syntax: %s\n", *argv);
+ LogPrintf(LogWARN, "ParseUdpOrTcp: bad src/dst port syntax: %s\n", *argv);
return(0);
}
@@ -266,7 +267,7 @@ struct filterent *ofp;
val = strtol(*argv, &wp, 0);
if (*argv == wp || val > MAXFILTERS) {
- printf("invalid filter number.\n");
+ LogPrintf(LogWARN, "Parse: invalid filter number.\n");
return(0);
}
if (val < 0) {
@@ -274,13 +275,13 @@ struct filterent *ofp;
ofp->action = A_NONE;
ofp++;
}
- printf("filter cleard.\n");
+ LogPrintf(LogWARN, "Parse: filter cleared.\n");
return(1);
}
ofp += val;
if (--argc == 0) {
- printf("missing action.\n");
+ LogPrintf(LogWARN, "Parse: missing action.\n");
return(0);
}
argv++;
@@ -296,7 +297,7 @@ struct filterent *ofp;
ofp->action = A_NONE;
return(1);
} else {
- printf("bad action: %s\n", *argv);
+ LogPrintf(LogWARN, "Parse: bad action: %s\n", *argv);
return(0);
}
fp->action = action;
@@ -328,7 +329,7 @@ struct filterent *ofp;
}
}
} else {
- printf("Address/protocol expected.\n");
+ LogPrintf(LogWARN, "Parse: Address/protocol expected.\n");
return(0);
}
} else {
@@ -350,16 +351,17 @@ struct filterent *ofp;
break;
}
-#ifdef DEBUG
- printf("src: %s/", inet_ntoa(fp->saddr));
- printf("%s ", inet_ntoa(fp->smask));
- printf("dst: %s/", inet_ntoa(fp->daddr));
- printf("%s proto = %d\n", inet_ntoa(fp->dmask), proto);
+ LogPrintf(LogDEBUG, "Parse: Src: %s", inet_ntoa(fp->saddr));
+ LogPrintf(LogDEBUG, "Parse: Src mask: %s ", inet_ntoa(fp->smask));
+ LogPrintf(LogDEBUG, "Parse: Dst: %s", inet_ntoa(fp->daddr));
+ LogPrintf(LogDEBUG, "Parse: Dst mask: %s\n", inet_ntoa(fp->dmask));
+ LogPrintf(LogDEBUG, "Parse: Proto = %d\n", proto);
- printf("src: %s (%d)\n", opname[fp->opt.srcop], fp->opt.srcport);
- printf("dst: %s (%d)\n", opname[fp->opt.dstop], fp->opt.dstport);
- printf("estab: %d\n", fp->opt.estab);
-#endif
+ LogPrintf(LogDEBUG, "Parse: src: %s (%d)\n", opname[fp->opt.srcop],
+ fp->opt.srcport);
+ LogPrintf(LogDEBUG, "Parse: dst: %s (%d)\n", opname[fp->opt.dstop],
+ fp->opt.dstport);
+ LogPrintf(LogDEBUG, "Parse: estab: %d\n", fp->opt.estab);
if (val)
*ofp = *fp;
@@ -372,12 +374,12 @@ struct cmdtab *list;
int argc;
char **argv;
{
- if (argc > 0)
+ if (argc > 0) {
(void) Parse(argc, argv, ifilters);
- else
- printf("syntax error.\n");
+ return 0;
+ }
- return(1);
+ return -1;
}
int
@@ -386,11 +388,12 @@ struct cmdtab *list;
int argc;
char **argv;
{
- if (argc > 0)
+ if (argc > 0) {
(void) Parse(argc, argv, ofilters);
- else
- printf("syntax error.\n");
- return(1);
+ return 0;
+ }
+
+ return -1;
}
int
@@ -399,11 +402,12 @@ struct cmdtab *list;
int argc;
char **argv;
{
- if (argc > 0)
+ if (argc > 0) {
(void) Parse(argc, argv, dfilters);
- else
- printf("syntax error.\n");
- return(1);
+ return 0;
+ }
+
+ return -1;
}
int
@@ -412,11 +416,12 @@ struct cmdtab *list;
int argc;
char **argv;
{
- if (argc > 0)
+ if (argc > 0) {
(void) Parse(argc, argv, afilters);
- else
- printf("syntax error.\n");
- return(1);
+ return 0;
+ }
+
+ return -1;
}
static char *protoname[] = {
@@ -433,24 +438,28 @@ struct filterent *fp;
{
int n;
+ if (!VarTerm)
+ return;
+
for (n = 0; n < MAXFILTERS; n++, fp++) {
if (fp->action != A_NONE) {
- printf("%2d %s", n, actname[fp->action]);
-
- printf("%s/%d ", inet_ntoa(fp->saddr), fp->swidth);
- printf("%s/%d ", inet_ntoa(fp->daddr), fp->dwidth);
+ fprintf(VarTerm, "%2d %s", n, actname[fp->action]);
+ fprintf(VarTerm, "%s/%d ", inet_ntoa(fp->saddr), fp->swidth);
+ fprintf(VarTerm, "%s/%d ", inet_ntoa(fp->daddr), fp->dwidth);
if (fp->proto) {
- printf("%s", protoname[fp->proto]);
+ fprintf(VarTerm, "%s", protoname[fp->proto]);
if (fp->opt.srcop)
- printf(" src %s %d", opname[fp->opt.srcop], fp->opt.srcport);
+ fprintf(VarTerm, " src %s %d", opname[fp->opt.srcop],
+ fp->opt.srcport);
if (fp->opt.dstop)
- printf(" dst %s %d", opname[fp->opt.dstop], fp->opt.dstport);
+ fprintf(VarTerm, " dst %s %d", opname[fp->opt.dstop],
+ fp->opt.dstport);
if (fp->opt.estab)
- printf(" estab");
+ fprintf(VarTerm, " estab");
}
- printf("\n");
+ fprintf(VarTerm, "\n");
}
}
}
@@ -462,7 +471,7 @@ int argc;
char **argv;
{
ShowFilter(ifilters);
- return(1);
+ return 0;
}
int
@@ -472,7 +481,7 @@ int argc;
char **argv;
{
ShowFilter(ofilters);
- return(1);
+ return 0;
}
int
@@ -482,7 +491,7 @@ int argc;
char **argv;
{
ShowFilter(dfilters);
- return(1);
+ return 0;
}
int
@@ -492,5 +501,5 @@ int argc;
char **argv;
{
ShowFilter(afilters);
- return(1);
+ return 0;
}
diff --git a/usr.sbin/ppp/filter.h b/usr.sbin/ppp/filter.h
index 365412b..9653560 100644
--- a/usr.sbin/ppp/filter.h
+++ b/usr.sbin/ppp/filter.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: filter.h,v 1.6 1997/02/22 16:10:12 peter Exp $
+ * $Id: filter.h,v 1.7 1997/05/10 01:22:09 brian Exp $
*
* TODO:
*/
@@ -79,5 +79,5 @@ struct filterent ofilters[MAXFILTERS];
struct filterent dfilters[MAXFILTERS];
struct filterent afilters[MAXFILTERS]; /* keep Alive packet filter */
-extern int ParseAddr __P((int, char **, struct in_addr *, struct in_addr *, int*));
+extern int ParseAddr(int, char **, struct in_addr *, struct in_addr *, int*);
#endif /* _FILTER_H_ */
diff --git a/usr.sbin/ppp/fsm.c b/usr.sbin/ppp/fsm.c
index 27f5566..ec1b2b7 100644
--- a/usr.sbin/ppp/fsm.c
+++ b/usr.sbin/ppp/fsm.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: fsm.c,v 1.11 1997/06/01 14:37:19 brian Exp $
+ * $Id: fsm.c,v 1.12 1997/06/02 00:04:40 brian Exp $
*
* TODO:
* o Refer loglevel for log output
@@ -37,16 +37,14 @@ void FsmTimeout(struct fsm *fp);
char const *StateNames[] = {
"Initial", "Starting", "Closed", "Stopped", "Closing", "Stopping",
- "Req-Sent", "Ack-Rcvd", "Ack-Sent", "Opend",
+ "Req-Sent", "Ack-Rcvd", "Ack-Sent", "Opened",
};
void
FsmInit(fp)
struct fsm *fp;
{
-#ifdef DEBUG
- logprintf("FsmInit\n");
-#endif
+ LogPrintf(LogDEBUG, "FsmInit\n");
fp->state = ST_INITIAL;
fp->reqid = 1;
fp->restart = 1;
@@ -58,8 +56,8 @@ NewState(fp, new)
struct fsm *fp;
int new;
{
- LogPrintf(LOG_LCP_BIT, "%s: state change %s --> %s\n",
- fp->name, StateNames[fp->state], StateNames[new]);
+ LogPrintf(LogLCP, "State change %s --> %s\n",
+ StateNames[fp->state], StateNames[new]);
fp->state = new;
if ((new >= ST_INITIAL && new <= ST_STOPPED) || (new == ST_OPENED))
StopTimer(&fp->FsmTimer);
@@ -84,9 +82,7 @@ int count;
bcopy(&lh, MBUF_CTOP(bp), sizeof(struct fsmheader));
if (count)
bcopy(ptr, MBUF_CTOP(bp) + sizeof(struct fsmheader), count);
-#ifdef DEBUG
- DumpBp(bp);
-#endif
+ LogDumpBp(LogDEBUG, "FsmOutput", bp);
HdlcOutput(PRI_LINK, fp->proto, bp);
}
@@ -137,8 +133,7 @@ struct fsm *fp;
NewState(fp, ST_REQSENT);
break;
default:
- LogPrintf(LOG_LCP_BIT, "%s: Oops, Up at %s\n",
- fp->name, StateNames[fp->state]);
+ LogPrintf(LogLCP, "Oops, Up at %s\n", StateNames[fp->state]);
break;
}
}
@@ -215,7 +210,7 @@ void
FsmSendTerminateReq(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, "%s: SendTerminateReq.\n", fp->name);
+ LogPrintf(LogLCP, "SendTerminateReq.\n");
FsmOutput(fp, CODE_TERMREQ, fp->reqid++, NULL, 0);
(fp->SendTerminateReq)(fp);
StartTimer(&fp->FsmTimer); /* Start restart timer */
@@ -229,7 +224,7 @@ struct fsmheader *lhp;
u_char *option;
int count;
{
- LogPrintf(LOG_LCP_BIT, "%s: SendConfigAck(%s)\n", fp->name, StateNames[fp->state]);
+ LogPrintf(LogLCP, "SendConfigAck(%s)\n", StateNames[fp->state]);
(fp->DecodeConfig)(option, count, MODE_NOP);
FsmOutput(fp, CODE_CONFIGACK, lhp->id, option, count);
}
@@ -241,7 +236,7 @@ struct fsmheader *lhp;
u_char *option;
int count;
{
- LogPrintf(LOG_LCP_BIT, "%s: SendConfigRej(%s)\n", fp->name, StateNames[fp->state]);
+ LogPrintf(LogLCP, "SendConfigRej(%s)\n", StateNames[fp->state]);
(fp->DecodeConfig)(option, count, MODE_NOP);
FsmOutput(fp, CODE_CONFIGREJ, lhp->id, option, count);
}
@@ -253,8 +248,7 @@ struct fsmheader *lhp;
u_char *option;
int count;
{
- LogPrintf(LOG_LCP_BIT, "%s: SendConfigNak(%s)\n",
- fp->name, StateNames[fp->state]);
+ LogPrintf(LogLCP, "SendConfigNak(%s)\n", StateNames[fp->state]);
(fp->DecodeConfig)(option, count, MODE_NOP);
FsmOutput(fp, CODE_CONFIGNAK, lhp->id, option, count);
}
@@ -328,7 +322,7 @@ struct mbuf *bp;
plen = plength(bp);
flen = ntohs(lhp->length) - sizeof(*lhp);
if (plen < flen) {
- logprintf("** plen (%d) < flen (%d)\n", plen, flen);
+ LogPrintf(LogERROR, "FsmRecvConfigReq: plen (%d) < flen (%d)", plen, flen);
pfree(bp);
return;
}
@@ -340,8 +334,7 @@ struct mbuf *bp;
switch (fp->state) {
case ST_INITIAL:
case ST_STARTING:
- LogPrintf(LOG_LCP_BIT, "%s: Oops, RCR in %s.\n",
- fp->name, StateNames[fp->state]);
+ LogPrintf(LogLCP, "Oops, RCR in %s.\n", StateNames[fp->state]);
pfree(bp);
return;
case ST_CLOSED:
@@ -350,7 +343,7 @@ struct mbuf *bp;
return;
case ST_CLOSING:
case ST_STOPPING:
- logprintf("## state = %d\n", fp->state);
+ LogPrintf(LogERROR, "Got ConfigReq while state = %d\n", fp->state);
pfree(bp);
return;
}
@@ -461,8 +454,7 @@ struct mbuf *bp;
switch (fp->state) {
case ST_INITIAL:
case ST_STARTING:
- LogPrintf(LOG_LCP_BIT, "%s: Oops, RCN in %s.\n",
- fp->name, StateNames[fp->state]);
+ LogPrintf(LogLCP, "Oops, RCN in %s.\n", StateNames[fp->state]);
pfree(bp);
return;
case ST_CLOSED:
@@ -505,8 +497,7 @@ struct mbuf *bp;
switch (fp->state) {
case ST_INITIAL:
case ST_STARTING:
- LogPrintf(LOG_LCP_BIT, "%s: Oops, RTR in %s\n", fp->name,
- StateNames[fp->state]);
+ LogPrintf(LogLCP, "Oops, RTR in %s\n", StateNames[fp->state]);
break;
case ST_CLOSED:
case ST_STOPPED:
@@ -572,7 +563,7 @@ struct mbuf *bp;
pfree(bp);
return;
}
- LogPrintf(LOG_LCP_BIT, "%s: RecvConfigRej.\n", fp->name);
+ LogPrintf(LogLCP, "RecvConfigRej.\n");
/*
* Check and process easy case
@@ -580,8 +571,7 @@ struct mbuf *bp;
switch (fp->state) {
case ST_INITIAL:
case ST_STARTING:
- LogPrintf(LOG_LCP_BIT, "%s: Oops, RCJ in %s.\n",
- fp->name, StateNames[fp->state]);
+ LogPrintf(LogLCP, "Oops, RCJ in %s.\n", StateNames[fp->state]);
pfree(bp);
return;
case ST_CLOSED:
@@ -620,7 +610,7 @@ struct fsm *fp;
struct fsmheader *lhp;
struct mbuf *bp;
{
- LogPrintf(LOG_LCP_BIT, "%s: RecvCodeRej\n", fp->name);
+ LogPrintf(LogLCP, "RecvCodeRej\n");
pfree(bp);
}
@@ -634,7 +624,7 @@ struct mbuf *bp;
sp = (u_short *)MBUF_CTOP(bp);
proto = ntohs(*sp);
- LogPrintf(LOG_LCP_BIT, "-- Protocol (%04x) was rejected.\n", proto);
+ LogPrintf(LogLCP, "-- Protocol (%04x) was rejected.\n", proto);
switch (proto) {
case PROTO_LQR:
@@ -669,13 +659,13 @@ struct mbuf *bp;
lp = (u_long *)cp;
magic = ntohl(*lp);
if (magic != LcpInfo.his_magic) {
- logprintf("RecvEchoReq: his magic is bad!!\n");
+ LogPrintf(LogERROR, "RecvEchoReq: his magic is bad!!\n");
/* XXX: We should send terminate request */
}
if (fp->state == ST_OPENED) {
*lp = htonl(LcpInfo.want_magic); /* Insert local magic number */
- LogPrintf(LOG_LCP_BIT, "%s: SendEchoRep(%s)\n", fp->name, StateNames[fp->state]);
+ LogPrintf(LogLCP, "SendEchoRep(%s)\n", StateNames[fp->state]);
FsmOutput(fp, CODE_ECHOREP, lhp->id, cp, plength(bp));
}
pfree(bp);
@@ -695,7 +685,7 @@ struct mbuf *bp;
* Tolerate echo replies with either magic number
*/
if (magic != 0 && magic != LcpInfo.his_magic && magic != LcpInfo.want_magic) {
- logprintf("RecvEchoRep: his magic is wrong! expect: %x got: %x\n",
+ LogPrintf(LogERROR, "RecvEchoRep: his magic is wrong! expect: %x got: %x\n",
LcpInfo.his_magic, magic);
/*
* XXX: We should send terminate request. But poor implementation
@@ -712,7 +702,7 @@ struct fsm *fp;
struct fsmheader *lhp;
struct mbuf *bp;
{
- LogPrintf(LOG_LCP_BIT, "%s: RecvDiscReq\n", fp->name);
+ LogPrintf(LogLCP, "RecvDiscReq\n");
pfree(bp);
}
@@ -722,7 +712,7 @@ struct fsm *fp;
struct fsmheader *lhp;
struct mbuf *bp;
{
- LogPrintf(LOG_LCP_BIT, "%s: RecvIdent\n", fp->name);
+ LogPrintf(LogLCP, "RecvIdent\n");
pfree(bp);
}
@@ -732,7 +722,7 @@ struct fsm *fp;
struct fsmheader *lhp;
struct mbuf *bp;
{
- LogPrintf(LOG_LCP_BIT, "%s: RecvTimeRemain\n", fp->name);
+ LogPrintf(LogLCP, "RecvTimeRemain\n");
pfree(bp);
}
@@ -742,9 +732,9 @@ struct fsm *fp;
struct fsmheader *lhp;
struct mbuf *bp;
{
- LogPrintf(LOG_LCP_BIT, "%s: RecvResetReq\n", fp->name);
+ LogPrintf(LogLCP, "RecvResetReq\n");
CcpRecvResetReq(fp);
- LogPrintf(LOG_LCP_BIT, "%s: SendResetAck\n", fp->name);
+ LogPrintf(LogLCP, "SendResetAck\n");
FsmOutput(fp, CODE_RESETACK, fp->reqid, NULL, 0);
pfree(bp);
}
@@ -755,7 +745,7 @@ struct fsm *fp;
struct fsmheader *lhp;
struct mbuf *bp;
{
- LogPrintf(LOG_LCP_BIT, "%s: RecvResetAck\n", fp->name);
+ LogPrintf(LogLCP, "RecvResetAck\n");
fp->reqid++;
pfree(bp);
}
@@ -802,13 +792,11 @@ struct mbuf *bp;
bp->cnt -= sizeof(struct fsmheader);
codep = FsmCodes + lhp->code - 1;
- LogPrintf(LOG_LCP_BIT, "%s: Received %s (%d) state = %s (%d)\n",
- fp->name, codep->name, lhp->id, StateNames[fp->state], fp->state);
-#ifdef DEBUG
- LogMemory();
-#endif
+ LogPrintf(LogLCP, "Received %s (%d) state = %s (%d)\n",
+ codep->name, lhp->id, StateNames[fp->state], fp->state);
+ if (LogIsKept(LogDEBUG))
+ LogMemory();
(codep->action)(fp, lhp, bp);
-#ifdef DEBUG
- LogMemory();
-#endif
+ if (LogIsKept(LogDEBUG))
+ LogMemory();
}
diff --git a/usr.sbin/ppp/fsm.h b/usr.sbin/ppp/fsm.h
index 1709a41..0b55a89 100644
--- a/usr.sbin/ppp/fsm.h
+++ b/usr.sbin/ppp/fsm.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: fsm.h,v 1.7 1997/02/22 16:10:14 peter Exp $
*
* TODO:
*/
@@ -26,7 +26,6 @@
#include "defs.h"
#include <netinet/in.h>
#include "timeout.h"
-#include "cdefs.h"
/*
* State of machine
@@ -66,15 +65,15 @@ struct fsm {
int reqcode; /* Request code sent */
struct pppTimer FsmTimer; /* Restart Timer */
- void (*LayerUp) __P((struct fsm *));
- void (*LayerDown) __P((struct fsm *));
- void (*LayerStart) __P((struct fsm *));
- void (*LayerFinish) __P((struct fsm *));
- void (*InitRestartCounter) __P((struct fsm *));
- void (*SendConfigReq) __P((struct fsm *));
- void (*SendTerminateReq) __P((struct fsm *));
- void (*SendTerminateAck) __P((struct fsm *));
- void (*DecodeConfig) __P((u_char *, int, int));
+ void (*LayerUp)(struct fsm *);
+ void (*LayerDown)(struct fsm *);
+ void (*LayerStart)(struct fsm *);
+ void (*LayerFinish)(struct fsm *);
+ void (*InitRestartCounter)(struct fsm *);
+ void (*SendConfigReq)(struct fsm *);
+ void (*SendTerminateReq)(struct fsm *);
+ void (*SendTerminateAck)(struct fsm *);
+ void (*DecodeConfig)(u_char *, int, int);
};
struct fsmheader {
@@ -100,7 +99,7 @@ struct fsmheader {
#define CODE_RESETACK 15 /* Used in CCP */
struct fsmcodedesc {
- void (*action) __P((struct fsm *, struct fsmheader *, struct mbuf *));
+ void (*action)(struct fsm *, struct fsmheader *, struct mbuf *);
char *name;
};
@@ -117,20 +116,20 @@ u_char ReqBuff[200];
u_char *ackp, *nakp, *rejp;
extern char const *StateNames[];
-extern void FsmInit __P((struct fsm *));
-extern void NewState __P((struct fsm *, int));
-extern void FsmOutput __P((struct fsm *, u_int, u_int, u_char *, int));
-extern void FsmOpen __P((struct fsm *));
-extern void FsmUp __P((struct fsm *));
-extern void FsmDown __P((struct fsm *));
-extern void FsmInput __P((struct fsm *, struct mbuf *));
-
-extern void FsmRecvConfigReq __P((struct fsm *, struct fsmheader *, struct mbuf *));
-extern void FsmRecvConfigAck __P((struct fsm *, struct fsmheader *, struct mbuf *));
-extern void FsmRecvConfigNak __P((struct fsm *, struct fsmheader *, struct mbuf *));
-extern void FsmRecvTermReq __P((struct fsm *, struct fsmheader *, struct mbuf *));
-extern void FsmRecvTermAck __P((struct fsm *, struct fsmheader *, struct mbuf *));
-extern void FsmClose __P((struct fsm *fp));
+extern void FsmInit(struct fsm *);
+extern void NewState(struct fsm *, int);
+extern void FsmOutput(struct fsm *, u_int, u_int, u_char *, int);
+extern void FsmOpen(struct fsm *);
+extern void FsmUp(struct fsm *);
+extern void FsmDown(struct fsm *);
+extern void FsmInput(struct fsm *, struct mbuf *);
+
+extern void FsmRecvConfigReq(struct fsm *, struct fsmheader *, struct mbuf *);
+extern void FsmRecvConfigAck(struct fsm *, struct fsmheader *, struct mbuf *);
+extern void FsmRecvConfigNak(struct fsm *, struct fsmheader *, struct mbuf *);
+extern void FsmRecvTermReq(struct fsm *, struct fsmheader *, struct mbuf *);
+extern void FsmRecvTermAck(struct fsm *, struct fsmheader *, struct mbuf *);
+extern void FsmClose(struct fsm *fp);
extern struct fsm LcpFsm, IpcpFsm, CcpFsm;
diff --git a/usr.sbin/ppp/hdlc.c b/usr.sbin/ppp/hdlc.c
index a7a37c8..814981c 100644
--- a/usr.sbin/ppp/hdlc.c
+++ b/usr.sbin/ppp/hdlc.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: hdlc.c,v 1.14 1997/05/10 01:22:10 brian Exp $
+ * $Id: hdlc.c,v 1.15 1997/05/26 00:43:59 brian Exp $
*
* TODO:
*/
@@ -186,7 +186,7 @@ HdlcOutput(int pri, u_short proto, struct mbuf *bp)
*cp++ = fcs >> 8;
}
- LogDumpBp(LOG_HDLC, "HdlcOutput", mhp);
+ LogDumpBp(LogHDLC, "HdlcOutput", mhp);
for (statp = ProtocolStat; statp->number; statp++)
if (statp->number == proto)
break;
@@ -200,11 +200,10 @@ HdlcOutput(int pri, u_short proto, struct mbuf *bp)
void
DecodePacket(u_short proto, struct mbuf *bp)
{
-#ifdef DEBUG
- logprintf("proto = %04x\n", proto);
-#endif
u_char *cp;
+ LogPrintf(LogDEBUG, "DecodePacket: proto = %04x\n", proto);
+
switch (proto) {
case PROTO_LCP:
LcpInput(bp);
@@ -239,7 +238,7 @@ DecodePacket(u_short proto, struct mbuf *bp)
Pred1Input(bp);
break;
default:
- LogPrintf(LOG_PHASE_BIT, "Unknown protocol 0x%04x\n", proto);
+ LogPrintf(LogPHASE, "Unknown protocol 0x%04x\n", proto);
bp->offset -= 2;
bp->cnt += 2;
cp = MBUF_CTOP(bp);
@@ -260,18 +259,18 @@ ReportProtStatus()
statp = ProtocolStat;
statp--;
cnt = 0;
- printf(" Protocol in out Protocol in out\n");
+ fprintf(VarTerm, " Protocol in out Protocol in out\n");
do {
statp++;
- printf(" %-9s: %8lu, %8lu",
+ fprintf(VarTerm, " %-9s: %8lu, %8lu",
statp->name, statp->in_count, statp->out_count);
if (++cnt == 2) {
- printf("\n");
+ fprintf(VarTerm, "\n");
cnt = 0;
}
} while (statp->number);
if (cnt)
- printf("\n");
+ fprintf(VarTerm, "\n");
return(1);
}
@@ -280,10 +279,12 @@ ReportHdlcStatus()
{
struct hdlcstat *hp = &HdlcStat;
- printf("HDLC level errors\n\n");
- printf("FCS: %u ADDR: %u COMMAND: %u PROTO: %u\n",
- hp->badfcs, hp->badaddr, hp->badcommand, hp->unknownproto);
- return(1);
+ if (VarTerm) {
+ fprintf(VarTerm, "HDLC level errors\n\n");
+ fprintf(VarTerm, "FCS: %u ADDR: %u COMMAND: %u PROTO: %u\n",
+ hp->badfcs, hp->badaddr, hp->badcommand, hp->unknownproto);
+ }
+ return 0;
}
static struct hdlcstat laststat;
@@ -295,7 +296,7 @@ HdlcErrorCheck()
struct hdlcstat *op = &laststat;
if (bcmp(hp, op, sizeof(laststat))) {
- LogPrintf(LOG_PHASE_BIT, "HDLC errors -> FCS: %u ADDR: %u COMD: %u PROTO: %u\n",
+ LogPrintf(LogPHASE, "HDLC errors -> FCS: %u ADDR: %u COMD: %u PROTO: %u\n",
hp->badfcs - op->badfcs, hp->badaddr - op->badaddr,
hp->badcommand - op->badcommand, hp->unknownproto - op->unknownproto);
}
@@ -309,21 +310,18 @@ HdlcInput(struct mbuf *bp)
u_char *cp, addr, ctrl;
struct protostat *statp;
- LogDumpBp(LOG_HDLC, "HdlcInput:", bp);
+ LogDumpBp(LogHDLC, "HdlcInput:", bp);
if (DEV_IS_SYNC)
fcs = GOODFCS;
else
fcs = HdlcFcs(INITFCS, MBUF_CTOP(bp), bp->cnt);
HisLqrSave.SaveInOctets += bp->cnt + 1;
-#ifdef DEBUG
- logprintf("fcs = %04x (%s)\n", fcs, (fcs == GOODFCS)? "good" : "bad");
-#endif
+ LogPrintf(LogDEBUG, "HdlcInput: fcs = %04x (%s)\n",
+ fcs, (fcs == GOODFCS)? "good" : "bad");
if (fcs != GOODFCS) {
HisLqrSave.SaveInErrors++;
-#ifdef DEBUG
- logprintf("Bad FCS\n");
-#endif
+ LogPrintf(LogDEBUG, "HdlcInput: Bad FCS\n");
HdlcStat.badfcs++;
pfree(bp);
return;
@@ -349,9 +347,7 @@ HdlcInput(struct mbuf *bp)
if (addr != HDLC_ADDR) {
HisLqrSave.SaveInErrors++;
HdlcStat.badaddr++;
-#ifdef DEBUG
- logprintf("addr %02x\n", *cp);
-#endif
+ LogPrintf(LogDEBUG, "HdlcInput: addr %02x\n", *cp);
pfree(bp);
return;
}
@@ -360,9 +356,7 @@ HdlcInput(struct mbuf *bp)
if (ctrl != HDLC_UI) {
HisLqrSave.SaveInErrors++;
HdlcStat.badcommand++;
-#ifdef DEBUG
- logprintf("command %02x\n", *cp);
-#endif
+ LogPrintf(LogDEBUG, "HdlcInput: %02x\n", *cp);
pfree(bp);
return;
}
diff --git a/usr.sbin/ppp/hdlc.h b/usr.sbin/ppp/hdlc.h
index c0789b0..4f3ff02 100644
--- a/usr.sbin/ppp/hdlc.h
+++ b/usr.sbin/ppp/hdlc.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: hdlc.h,v 1.7 1997/06/01 01:13:02 brian Exp $
+ * $Id: hdlc.h,v 1.8 1997/06/01 11:35:02 brian Exp $
*
* TODO:
*/
@@ -60,11 +60,11 @@
unsigned char EscMap[33];
-void HdlcInit __P((void));
-void HdlcErrorCheck __P((void));
-void HdlcInput __P((struct mbuf *bp));
-void HdlcOutput __P((int pri, u_short proto, struct mbuf *bp));
-void AsyncOutput __P((int pri, struct mbuf *bp, int proto));
-u_short HdlcFcs __P((u_short, u_char *, int));
-void DecodePacket __P((u_short, struct mbuf *));
+void HdlcInit(void);
+void HdlcErrorCheck(void);
+void HdlcInput(struct mbuf *bp);
+void HdlcOutput(int pri, u_short proto, struct mbuf *bp);
+void AsyncOutput(int pri, struct mbuf *bp, int proto);
+u_short HdlcFcs(u_short, u_char *, int);
+void DecodePacket(u_short, struct mbuf *);
#endif
diff --git a/usr.sbin/ppp/ip.c b/usr.sbin/ppp/ip.c
index 72b7a11..baa7bca 100644
--- a/usr.sbin/ppp/ip.c
+++ b/usr.sbin/ppp/ip.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: ip.c,v 1.19 1997/05/24 17:32:35 brian Exp $
+ * $Id: ip.c,v 1.20 1997/05/26 00:44:01 brian Exp $
*
* TODO:
* o Return ICMP message for filterd packet
@@ -36,6 +36,8 @@
#include "loadalias.h"
#include "vars.h"
#include "filter.h"
+#include "mbuf.h"
+#include "log.h"
extern void SendPppFrame();
extern void LcpClose();
@@ -44,7 +46,7 @@ static struct pppTimer IdleTimer;
static void IdleTimeout()
{
- LogPrintf(LOG_PHASE_BIT, "Idle timer expired.\n");
+ LogPrintf(LogPHASE, "Idle timer expired.\n");
reconnect(RECON_FALSE);
LcpClose();
}
@@ -66,6 +68,13 @@ StartIdleTimer()
}
void
+UpdateIdleTimer()
+{
+ if (IdleTimer.state == TIMER_RUNNING)
+ StartIdleTimer();
+}
+
+void
StopIdleTimer()
{
StopTimer(&IdleTimer);
@@ -140,9 +149,7 @@ int direction;
(ntohs(pip->ip_off) & IP_OFFMASK) != 0) {
return(A_PERMIT);
}
-#ifdef DEBUG
-logprintf("rule = %d\n", n);
-#endif
+ LogPrintf(LogDEBUG, "rule = %d\n", n);
if ((pip->ip_src.s_addr & fp->smask.s_addr) == fp->saddr.s_addr
&& (pip->ip_dst.s_addr & fp->dmask.s_addr) == fp->daddr.s_addr) {
if (fp->proto) {
@@ -163,25 +170,23 @@ logprintf("rule = %d\n", n);
cproto = P_TCP; th = (struct tcphdr *)ptop;
sport = ntohs(th->th_sport); dport = ntohs(th->th_dport);
estab = (th->th_flags & TH_ACK);
-#ifdef DEBUG
-if (estab == 0)
-logprintf("flag = %02x, sport = %d, dport = %d\n", th->th_flags, sport, dport);
-#endif
+ if (estab == 0)
+ LogPrintf(LogDEBUG, "flag = %02x, sport = %d, dport = %d\n",
+ th->th_flags, sport, dport);
break;
default:
return(A_DENY); /* We'll block unknown type of packet */
}
gotinfo = 1;
-#ifdef DEBUG
-logprintf("dir = %d, proto = %d, srcop = %d, dstop = %d, estab = %d\n",
-direction, cproto, fp->opt.srcop, fp->opt.dstop, estab);
-#endif
+ LogPrintf(LogDEBUG, "dir = %d, proto = %d, srcop = %d,"
+ " dstop = %d, estab = %d\n", direction, cproto,
+ fp->opt.srcop, fp->opt.dstop, estab);
}
-#ifdef DEBUG
- logprintf("check0: rule = %d, proto = %d, sport = %d, dport = %d\n",
- n, cproto, sport, dport);
- logprintf("check0: action = %d\n", fp->action);
-#endif
+
+ LogPrintf(LogDEBUG, "check0: rule = %d, proto = %d, sport = %d,"
+ " dport = %d\n", n, cproto, sport, dport);
+ LogPrintf(LogDEBUG, "check0: action = %d\n", fp->action);
+
if (cproto == fp->proto) {
if ((fp->opt.srcop == OP_NONE ||
PortMatch(fp->opt.srcop, sport, fp->opt.srcport))
@@ -195,9 +200,7 @@ direction, cproto, fp->opt.srcop, fp->opt.dstop, estab);
}
} else {
/* Address is mached. Make a decision. */
-#ifdef DEBUG
- logprintf("check1: action = %d\n", fp->action);
-#endif
+ LogPrintf(LogDEBUG, "check1: action = %d\n", fp->action);
return(fp->action);
}
}
@@ -245,11 +248,11 @@ int direction;
int logit;
int pri = PRI_NORMAL;
- logit = (loglevel & (1 << LOG_TCPIP));
+ logit = LogIsKept(LogTCPIP);
pip = (struct ip *)cp;
- if (logit) logprintf("%s ", Direction[direction]);
+ if (logit) LogPrintf(LogTCPIP, "%s ", Direction[direction]);
ptop = (cp + (pip->ip_hl << 2));
@@ -257,15 +260,15 @@ int direction;
case IPPROTO_ICMP:
if (logit) {
icmph = (struct icmp *)ptop;
- logprintf("ICMP: %s:%d ---> ", inet_ntoa(pip->ip_src), icmph->icmp_type);
- logprintf("%s:%d\n", inet_ntoa(pip->ip_dst), icmph->icmp_type);
+ LogPrintf(LogTCPIP, "ICMP: %s:%d ---> ", inet_ntoa(pip->ip_src), icmph->icmp_type);
+ LogPrintf(LogTCPIP, "%s:%d\n", inet_ntoa(pip->ip_dst), icmph->icmp_type);
}
break;
case IPPROTO_UDP:
if (logit) {
uh = (struct udphdr *)ptop;
- logprintf("UDP: %s:%d ---> ", inet_ntoa(pip->ip_src), ntohs(uh->uh_sport));
- logprintf("%s:%d\n", inet_ntoa(pip->ip_dst), ntohs(uh->uh_dport));
+ LogPrintf(LogTCPIP, "UDP: %s:%d ---> ", inet_ntoa(pip->ip_src), ntohs(uh->uh_sport));
+ LogPrintf(LogTCPIP, "%s:%d\n", inet_ntoa(pip->ip_dst), ntohs(uh->uh_dport));
}
break;
case IPPROTO_TCP:
@@ -279,15 +282,15 @@ int direction;
if (logit) {
len = ntohs(pip->ip_len) - (pip->ip_hl << 2) - (th->th_off << 2);
- logprintf("TCP: %s:%d ---> ", inet_ntoa(pip->ip_src), ntohs(th->th_sport));
- logprintf("%s:%d", inet_ntoa(pip->ip_dst), ntohs(th->th_dport));
+ LogPrintf(LogTCPIP, "TCP: %s:%d ---> ", inet_ntoa(pip->ip_src), ntohs(th->th_sport));
+ LogPrintf(LogTCPIP, "%s:%d", inet_ntoa(pip->ip_dst), ntohs(th->th_dport));
n = 0;
for (mask = TH_FIN; mask != 0x40; mask <<= 1) {
if (th->th_flags & mask)
- logprintf(" %s", TcpFlags[n]);
+ LogPrintf(LogTCPIP, " %s", TcpFlags[n]);
n++;
}
- logprintf(" seq:%x ack:%x (%d/%d)\n",
+ LogPrintf(LogTCPIP, " seq:%x ack:%x (%d/%d)\n",
ntohl(th->th_seq), ntohl(th->th_ack), len, nb);
if ((th->th_flags & TH_SYN) && nb > 40) {
u_short *sp;
@@ -295,16 +298,14 @@ int direction;
ptop += 20;
sp = (u_short *)ptop;
if (ntohs(sp[0]) == 0x0204)
- logprintf(" MSS = %d\n", ntohs(sp[1]));
+ LogPrintf(LogTCPIP, " MSS = %d\n", ntohs(sp[1]));
}
}
break;
}
if ((FilterCheck(pip, direction) & A_DENY)) {
-#ifdef DEBUG
- logprintf("blocked.\n");
-#endif
+ LogPrintf(LogDEBUG, "blocked.\n");
if (direction == 0) IcmpError(pip, pri);
return(-1);
} else {
@@ -328,7 +329,7 @@ struct mbuf *bp; /* IN: Pointer to IP pakcet */
cp = tunbuff;
nb = 0;
- for (wp = bp; wp; wp = wp->next) { /* Copy to continuois region */
+ for (wp = bp; wp; wp = wp->next) { /* Copy to contiguous region */
bcopy(MBUF_CTOP(wp), cp, wp->cnt);
cp += wp->cnt;
nb += wp->cnt;
@@ -342,7 +343,7 @@ struct mbuf *bp; /* IN: Pointer to IP pakcet */
nb = ntohs(((struct ip *) tunbuff)->ip_len);
if (nb > MAX_MRU) {
- fprintf(stderr, "Problem with IP header length\n");
+ LogPrintf(LogERROR, "IpInput: Problem with IP header length\n");
pfree(bp);
return;
}
@@ -359,7 +360,7 @@ struct mbuf *bp; /* IN: Pointer to IP pakcet */
nb = ntohs(((struct ip *) tunbuff)->ip_len);
nw = write(tun_out, tunbuff, nb);
if (nw != nb)
- fprintf(stderr, "wrote %d, got %d\r\n", nb, nw);
+ LogPrintf(LogERROR, "IpInput: wrote %d, got %d\n", nb, nw);
if (iresult == PKT_ALIAS_FOUND_HEADER_FRAGMENT) {
while ((fptr = VarGetNextFragmentPtr(tunbuff)) != NULL) {
@@ -367,7 +368,7 @@ struct mbuf *bp; /* IN: Pointer to IP pakcet */
nb = ntohs(((struct ip *) fptr)->ip_len);
nw = write(tun_out, fptr, nb);
if (nw != nb)
- fprintf(stderr, "wrote %d, got %d\r\n", nb, nw);
+ LogPrintf(LogERROR, "IpInput: wrote %d, got %d\n", nb, nw);
free(fptr);
}
}
@@ -375,9 +376,8 @@ struct mbuf *bp; /* IN: Pointer to IP pakcet */
else if (iresult == PKT_ALIAS_UNRESOLVED_FRAGMENT) {
nb = ntohs(((struct ip *) tunbuff)->ip_len);
fptr = malloc(nb);
- if (fptr == NULL) {
- fprintf(stderr, "Cannot allocate memory for fragment\n");
- }
+ if (fptr == NULL)
+ LogPrintf(LogALERT, "IpInput: Cannot allocate memory for fragment\n");
else {
memcpy(fptr, tunbuff, nb);
VarSaveFragmentPtr(fptr);
@@ -395,7 +395,7 @@ struct mbuf *bp; /* IN: Pointer to IP pakcet */
ipInOctets += nb;
nw = write(tun_out, tunbuff, nb);
if (nw != nb)
- fprintf(stderr, "wrote %d, got %d\r\n", nb, nw);
+ LogPrintf(LogERROR, "IpInput: wrote %d, got %d\n", nb, nw);
}
pfree(bp);
diff --git a/usr.sbin/ppp/ip.h b/usr.sbin/ppp/ip.h
index 710fffa..ab4b4a0 100644
--- a/usr.sbin/ppp/ip.h
+++ b/usr.sbin/ppp/ip.h
@@ -17,13 +17,13 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: ip.h,v 1.3 1997/02/22 16:10:19 peter Exp $
*
*/
#ifndef _IP_H_
#define _IP_H_
-extern void IpStartOutput __P((void));
-extern int PacketCheck __P((char *, int , int));
-extern void IpEnqueue __P((int, char *, int));
+extern void IpStartOutput(void);
+extern int PacketCheck(char *, int , int);
+extern void IpEnqueue(int, char *, int);
#endif
diff --git a/usr.sbin/ppp/ipcp.c b/usr.sbin/ppp/ipcp.c
index 2df6e87..da19707 100644
--- a/usr.sbin/ppp/ipcp.c
+++ b/usr.sbin/ppp/ipcp.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: ipcp.c,v 1.19 1997/05/24 17:32:35 brian Exp $
+ * $Id: ipcp.c,v 1.20 1997/05/26 00:44:01 brian Exp $
*
* TODO:
* o More RFC1772 backwoard compatibility
@@ -44,19 +44,19 @@ extern struct in_addr ifnetmask;
struct ipcpstate IpcpInfo;
struct in_range DefMyAddress, DefHisAddress, DefTriggerAddress;
-#ifdef MSEXT
+#ifndef NOMSEXT
struct in_addr ns_entries[2], nbns_entries[2];
-#endif /* MSEXT */
-
-static void IpcpSendConfigReq __P((struct fsm *));
-static void IpcpSendTerminateAck __P((struct fsm *));
-static void IpcpSendTerminateReq __P((struct fsm *));
-static void IpcpDecodeConfig __P((u_char *, int, int));
-static void IpcpLayerStart __P((struct fsm *));
-static void IpcpLayerFinish __P((struct fsm *));
-static void IpcpLayerUp __P((struct fsm *));
-static void IpcpLayerDown __P((struct fsm *));
-static void IpcpInitRestartCounter __P((struct fsm *));
+#endif
+
+static void IpcpSendConfigReq(struct fsm *);
+static void IpcpSendTerminateAck(struct fsm *);
+static void IpcpSendTerminateReq(struct fsm *);
+static void IpcpDecodeConfig(u_char *, int, int);
+static void IpcpLayerStart(struct fsm *);
+static void IpcpLayerFinish(struct fsm *);
+static void IpcpLayerUp(struct fsm *);
+static void IpcpLayerDown(struct fsm *);
+static void IpcpInitRestartCounter(struct fsm *);
struct pppTimer IpcpReportTimer;
@@ -124,20 +124,23 @@ ReportIpcpStatus()
struct ipcpstate *icp = &IpcpInfo;
struct fsm *fp = &IpcpFsm;
- printf("%s [%s]\n", fp->name, StateNames[fp->state]);
- printf(" his side: %s, %lx\n",
+ if (!VarTerm)
+ return 1;
+ fprintf(VarTerm, "%s [%s]\n", fp->name, StateNames[fp->state]);
+ fprintf(VarTerm, " his side: %s, %lx\n",
inet_ntoa(icp->his_ipaddr), icp->his_compproto);
- printf(" my side: %s, %lx\n",
+ fprintf(VarTerm, " my side: %s, %lx\n",
inet_ntoa(icp->want_ipaddr), icp->want_compproto);
- printf("connected: %d secs, idle: %d secs\n\n", ipConnectSecs, ipIdleSecs);
- printf("Defaults:\n");
- printf(" My Address: %s/%d\n",
+ fprintf(VarTerm, "connected: %d secs, idle: %d secs\n\n", ipConnectSecs, ipIdleSecs);
+ fprintf(VarTerm, "Defaults:\n");
+ fprintf(VarTerm, " My Address: %s/%d\n",
inet_ntoa(DefMyAddress.ipaddr), DefMyAddress.width);
- printf(" His Address: %s/%d\n",
+ fprintf(VarTerm, " His Address: %s/%d\n",
inet_ntoa(DefHisAddress.ipaddr), DefHisAddress.width);
- printf(" Negotiation: %s/%d\n",
+ fprintf(VarTerm, " Negotiation: %s/%d\n",
inet_ntoa(DefTriggerAddress.ipaddr), DefTriggerAddress.width);
- return 1;
+
+ return 0;
}
void
@@ -205,7 +208,7 @@ struct fsm *fp;
struct ipcpstate *icp = &IpcpInfo;
cp = ReqBuff;
- LogPrintf(LOG_LCP_BIT, "%s: SendConfigReq\n", fp->name);
+ LogPrintf(LogLCP, "IpcpSendConfigReq\n");
if (!DEV_IS_SYNC || !REJECTED(icp, TY_IPADDR))
PutConfValue(&cp, cftypes, TY_IPADDR, 6, ntohl(icp->want_ipaddr.s_addr));
if (icp->want_compproto && !REJECTED(icp, TY_COMPPROTO)) {
@@ -228,7 +231,7 @@ static void
IpcpSendTerminateAck(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, " %s: SendTerminateAck\n", fp->name);
+ LogPrintf(LogLCP, "IpcpSendTerminateAck\n");
FsmOutput(fp, CODE_TERMACK, fp->reqid++, NULL, 0);
}
@@ -236,14 +239,14 @@ static void
IpcpLayerStart(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, "%s: LayerStart.\n", fp->name);
+ LogPrintf(LogLCP, "IpcpLayerStart.\n");
}
static void
IpcpLayerFinish(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, "%s: LayerFinish.\n", fp->name);
+ LogPrintf(LogLCP, "IpcpLayerFinish.\n");
reconnect(RECON_FALSE);
LcpClose();
NewPhase(PHASE_TERMINATE);
@@ -253,7 +256,7 @@ static void
IpcpLayerDown(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, "%s: LayerDown.\n", fp->name);
+ LogPrintf(LogLCP, "IpcpLayerDown.\n");
StopTimer(&IpcpReportTimer);
}
@@ -266,17 +269,16 @@ struct fsm *fp;
{
char tbuff[100];
-#ifdef VERBOSE
- fprintf(stderr, "%s: LayerUp(%d).\r\n", fp->name, fp->state);
-#endif
Prompt();
- LogPrintf(LOG_LCP_BIT, "%s: LayerUp.\n", fp->name);
+ LogPrintf(LogLCP, "IpcpLayerUp(%d).\n", fp->state);
snprintf(tbuff, sizeof(tbuff), "myaddr = %s ",
inet_ntoa(IpcpInfo.want_ipaddr));
- LogPrintf(LOG_LCP_BIT|LOG_LINK_BIT, " %s hisaddr = %s\n", tbuff, inet_ntoa(IpcpInfo.his_ipaddr));
+ LogPrintf(LogIsKept(LogLCP) ? LogLCP : LogLINK, " %s hisaddr = %s\n",
+ tbuff, inet_ntoa(IpcpInfo.his_ipaddr));
if (OsSetIpaddress(IpcpInfo.want_ipaddr, IpcpInfo.his_ipaddr, ifnetmask) < 0) {
- printf("unable to set ip address\n");
- return;
+ if (VarTerm)
+ LogPrintf(LogERROR, "IpcpLayerUp: unable to set ip address\n");
+ return;
}
OsLinkup();
IpcpStartReport();
@@ -289,7 +291,7 @@ void
IpcpUp()
{
FsmUp(&IpcpFsm);
- LogPrintf(LOG_LCP_BIT, "IPCP Up event!!\n");
+ LogPrintf(LogLCP, "IPCP Up event!!\n");
}
void
@@ -303,13 +305,11 @@ AcceptableAddr(prange, ipaddr)
struct in_range *prange;
struct in_addr ipaddr;
{
-#ifdef DEBUG
- logprintf("requested = %x ", htonl(ipaddr.s_addr));
- logprintf("range = %x", htonl(prange->ipaddr.s_addr));
- logprintf("/%x\n", htonl(prange->mask.s_addr));
- logprintf("%x, %x\n", htonl(prange->ipaddr.s_addr & prange->mask.s_addr),
- htonl(ipaddr.s_addr & prange->mask.s_addr));
-#endif
+ LogPrintf(LogDEBUG, "requested = %x ", htonl(ipaddr.s_addr));
+ LogPrintf(LogDEBUG, "range = %x", htonl(prange->ipaddr.s_addr));
+ LogPrintf(LogDEBUG, "/%x\n", htonl(prange->mask.s_addr));
+ LogPrintf(LogDEBUG, "%x, %x\n", htonl(prange->ipaddr.s_addr & prange->
+ mask.s_addr), htonl(ipaddr.s_addr & prange->mask.s_addr));
return (prange->ipaddr.s_addr & prange->mask.s_addr) ==
(ipaddr.s_addr & prange->mask.s_addr) && ipaddr.s_addr;
}
@@ -345,7 +345,7 @@ int mode;
case TY_IPADDR: /* RFC1332 */
lp = (u_long *)(cp + 2);
ipaddr.s_addr = *lp;
- LogPrintf(LOG_LCP_BIT, "%s %s\n", tbuff, inet_ntoa(ipaddr));
+ LogPrintf(LogLCP, "%s %s\n", tbuff, inet_ntoa(ipaddr));
switch (mode) {
case MODE_REQ:
@@ -370,7 +370,7 @@ int mode;
* Use address suggested by peer.
*/
snprintf(tbuff2, sizeof(tbuff2), "%s changing address: %s ", tbuff, inet_ntoa(IpcpInfo.want_ipaddr));
- LogPrintf(LOG_LCP_BIT, "%s --> %s\n", tbuff2, inet_ntoa(ipaddr));
+ LogPrintf(LogLCP, "%s --> %s\n", tbuff2, inet_ntoa(ipaddr));
IpcpInfo.want_ipaddr = ipaddr;
}
break;
@@ -382,7 +382,7 @@ int mode;
case TY_COMPPROTO:
lp = (u_long *)(cp + 2);
compproto = htonl(*lp);
- LogPrintf(LOG_LCP_BIT, "%s %08x\n", tbuff, compproto);
+ LogPrintf(LogLCP, "%s %08x\n", tbuff, compproto);
switch (mode) {
case MODE_REQ:
@@ -394,7 +394,7 @@ int mode;
switch (length) {
case 4: /* RFC1172 */
if (ntohs(pcomp->proto) == PROTO_VJCOMP) {
- logprintf("** Peer is speaking RFC1172 compression protocol **\n");
+ LogPrintf(LogWARN, "Peer is speaking RFC1172 compression protocol !n");
IpcpInfo.heis1172 = 1;
IpcpInfo.his_compproto = compproto;
bcopy(cp, ackp, length);
@@ -430,7 +430,7 @@ int mode;
}
break;
case MODE_NAK:
- LogPrintf(LOG_LCP_BIT, "%s changing compproto: %08x --> %08x\n",
+ LogPrintf(LogLCP, "%s changing compproto: %08x --> %08x\n",
tbuff, IpcpInfo.want_compproto, compproto);
IpcpInfo.want_compproto = compproto;
break;
@@ -444,8 +444,8 @@ int mode;
ipaddr.s_addr = *lp;
lp = (u_long *)(cp + 6);
dstipaddr.s_addr = *lp;
- LogPrintf(LOG_LCP_BIT, "%s %s, ", tbuff, inet_ntoa(ipaddr));
- LogPrintf(LOG_LCP_BIT, "%s\n", inet_ntoa(dstipaddr));
+ LogPrintf(LogLCP, "%s %s, ", tbuff, inet_ntoa(ipaddr));
+ LogPrintf(LogLCP, "%s\n", inet_ntoa(dstipaddr));
switch (mode) {
case MODE_REQ:
@@ -455,9 +455,9 @@ int mode;
ackp += length;
break;
case MODE_NAK:
- LogPrintf(LOG_LCP_BIT, "%s changing address: %s ",
+ LogPrintf(LogLCP, "%s changing address: %s ",
tbuff, inet_ntoa(IpcpInfo.want_ipaddr));
- LogPrintf(LOG_LCP_BIT, "--> %s\n", inet_ntoa(ipaddr));
+ LogPrintf(LogLCP, "--> %s\n", inet_ntoa(ipaddr));
IpcpInfo.want_ipaddr = ipaddr;
IpcpInfo.his_ipaddr = dstipaddr;
break;
@@ -471,11 +471,11 @@ int mode;
* MS extensions for MS's PPP
*/
-#ifdef MSEXT
+#ifndef NOMSEXT
case TY_PRIMARY_DNS: /* MS PPP DNS negotiation hack */
case TY_SECONDARY_DNS:
if( !Enabled( ConfMSExt ) ) {
- LogPrintf( LOG_LCP, "MS NS req - rejected - msext disabled\n" );
+ LogPrintf(LogLCP, "MS NS req - rejected - msext disabled\n");
IpcpInfo.my_reject |= ( 1 << type );
bcopy(cp, rejp, length);
rejp += length;
@@ -493,7 +493,7 @@ int mode;
so well tell 'em how it is
*/
bcopy( cp, nakp, 2 ); /* copy first two (type/length) */
- LogPrintf( LOG_LCP, "MS NS req %d:%s->%s - nak\n",
+ LogPrintf( LogLCP, "MS NS req %d:%s->%s - nak\n",
type,
inet_ntoa( dnsstuff ),
inet_ntoa( ms_info_req ));
@@ -505,17 +505,17 @@ int mode;
Otherwise they have it right (this time) so we send
a ack packet back confirming it... end of story
*/
- LogPrintf( LOG_LCP, "MS NS req %d:%s ok - ack\n",
+ LogPrintf( LogLCP, "MS NS req %d:%s ok - ack\n",
type,
inet_ntoa( ms_info_req ));
bcopy( cp, ackp, length );
ackp += length;
break;
case MODE_NAK: /* what does this mean?? */
- LogPrintf(LOG_LCP, "MS NS req %d - NAK??\n", type );
+ LogPrintf(LogLCP, "MS NS req %d - NAK??\n", type );
break;
case MODE_REJ: /* confused?? me to :) */
- LogPrintf(LOG_LCP, "MS NS req %d - REJ??\n", type );
+ LogPrintf(LogLCP, "MS NS req %d - REJ??\n", type );
break;
}
break;
@@ -523,7 +523,7 @@ int mode;
case TY_PRIMARY_NBNS: /* MS PPP NetBIOS nameserver hack */
case TY_SECONDARY_NBNS:
if( !Enabled( ConfMSExt ) ) {
- LogPrintf( LOG_LCP, "MS NBNS req - rejected - msext disabled\n" );
+ LogPrintf( LogLCP, "MS NBNS req - rejected - msext disabled\n" );
IpcpInfo.my_reject |= ( 1 << type );
bcopy( cp, rejp, length );
rejp += length;
@@ -538,29 +538,29 @@ int mode;
{
bcopy( cp, nakp, 2 );
bcopy( &ms_info_req.s_addr , nakp+2, length );
- LogPrintf( LOG_LCP, "MS NBNS req %d:%s->%s - nak\n",
+ LogPrintf( LogLCP, "MS NBNS req %d:%s->%s - nak\n",
type,
inet_ntoa( dnsstuff ),
inet_ntoa( ms_info_req ));
nakp += length;
break;
}
- LogPrintf( LOG_LCP, "MS NBNS req %d:%s ok - ack\n",
+ LogPrintf( LogLCP, "MS NBNS req %d:%s ok - ack\n",
type,
inet_ntoa( ms_info_req ));
bcopy( cp, ackp, length );
ackp += length;
break;
case MODE_NAK:
- LogPrintf( LOG_LCP, "MS NBNS req %d - NAK??\n", type );
+ LogPrintf( LogLCP, "MS NBNS req %d - NAK??\n", type );
break;
case MODE_REJ:
- LogPrintf( LOG_LCP, "MS NBNS req %d - REJ??\n", type );
+ LogPrintf( LogLCP, "MS NBNS req %d - REJ??\n", type );
break;
}
break;
-#endif /* MSEXT */
+#endif
default:
IpcpInfo.my_reject |= (1 << type);
diff --git a/usr.sbin/ppp/ipcp.h b/usr.sbin/ppp/ipcp.h
index ab42143..864d974 100644
--- a/usr.sbin/ppp/ipcp.h
+++ b/usr.sbin/ppp/ipcp.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: ipcp.h,v 1.6 1997/02/22 16:10:22 peter Exp $
*
* TODO:
*/
@@ -31,14 +31,12 @@
/* MS PPP NameServer and NetBIOS NameServer stuff */
-#ifdef MSEXT
-
+#ifndef NOMSEXT
#define TY_PRIMARY_DNS 129
#define TY_PRIMARY_NBNS 130
#define TY_SECONDARY_DNS 131
#define TY_SECONDARY_NBNS 132
-
-#endif /* MSEXT */
+#endif
struct ipcpstate {
struct in_addr his_ipaddr; /* IP address he is willing to use */
@@ -69,11 +67,11 @@ extern struct in_range DefMyAddress;
extern struct in_range DefHisAddress;
extern struct in_range DefTriggerAddress;
-#ifdef MSEXT
+#ifndef NOMSEXT
extern struct in_addr ns_entries[2];
extern struct in_addr nbns_entries[2];
-#endif /* MSEXT */
+#endif
-extern void IpcpInit __P((void));
-extern void IpcpDefAddress __P((void));
+extern void IpcpInit(void);
+extern void IpcpDefAddress(void);
#endif
diff --git a/usr.sbin/ppp/lcp.c b/usr.sbin/ppp/lcp.c
index 8134329..522dbbee 100644
--- a/usr.sbin/ppp/lcp.c
+++ b/usr.sbin/ppp/lcp.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: lcp.c,v 1.21 1997/05/26 00:44:03 brian Exp $
+ * $Id: lcp.c,v 1.22 1997/06/01 03:43:22 brian Exp $
*
* TODO:
* o Validate magic number received from peer.
@@ -52,15 +52,15 @@ extern int randinit;
struct lcpstate LcpInfo;
-static void LcpSendConfigReq __P((struct fsm *));
-static void LcpSendTerminateReq __P((struct fsm *fp));
-static void LcpSendTerminateAck __P((struct fsm *fp));
-static void LcpDecodeConfig __P((u_char *cp, int flen,int mode));
-static void LcpInitRestartCounter __P((struct fsm *));
-static void LcpLayerUp __P((struct fsm *));
-static void LcpLayerDown __P((struct fsm *));
-static void LcpLayerStart __P((struct fsm *));
-static void LcpLayerFinish __P((struct fsm *));
+static void LcpSendConfigReq(struct fsm *);
+static void LcpSendTerminateReq(struct fsm *fp);
+static void LcpSendTerminateAck(struct fsm *fp);
+static void LcpDecodeConfig(u_char *cp, int flen,int mode);
+static void LcpInitRestartCounter(struct fsm *);
+static void LcpLayerUp(struct fsm *);
+static void LcpLayerDown(struct fsm *);
+static void LcpLayerStart(struct fsm *);
+static void LcpLayerFinish(struct fsm *);
extern int ModemSpeed();
@@ -106,13 +106,13 @@ int new;
struct lcpstate *lcp = &LcpInfo;
phase = new;
- LogPrintf(LOG_PHASE_BIT, "Phase: %s\n", PhaseNames[phase]);
+ LogPrintf(LogPHASE, "NewPhase: %s\n", PhaseNames[phase]);
switch (phase) {
case PHASE_AUTHENTICATE:
lcp->auth_ineed = lcp->want_auth;
lcp->auth_iwait = lcp->his_auth;
if (lcp->his_auth || lcp->want_auth) {
- LogPrintf(LOG_PHASE_BIT, " his = %x, mine = %x\n", lcp->his_auth, lcp->want_auth);
+ LogPrintf(LogPHASE, " his = %x, mine = %x\n", lcp->his_auth, lcp->want_auth);
if (lcp->his_auth == PROTO_PAP)
StartAuthChallenge(&AuthPapInfo);
if (lcp->want_auth == PROTO_CHAP)
@@ -138,12 +138,12 @@ int new;
static void
LcpReportTime()
{
-#ifdef VERBOSE
- time_t t;
+ if (LogIsKept(LogDEBUG)) {
+ time_t t;
- time(&t);
- logprintf("%s", ctime(&t));
-#endif
+ time(&t);
+ LogPrintf(LogDEBUG, "LcpReportTime: %s", ctime(&t));
+ }
StopTimer(&LcpReportTimer);
LcpReportTimer.state = TIMER_STOPPED;
StartTimer(&LcpReportTimer);
@@ -156,20 +156,23 @@ ReportLcpStatus()
struct lcpstate *lcp = &LcpInfo;
struct fsm *fp = &LcpFsm;
- printf("%s [%s]\n", fp->name, StateNames[fp->state]);
- printf(
+ if (!VarTerm)
+ return 1;
+
+ fprintf(VarTerm, "%s [%s]\n", fp->name, StateNames[fp->state]);
+ fprintf(VarTerm,
" his side: MRU %ld, ACCMAP %08lx, PROTOCOMP %d, ACFCOMP %d, MAGIC %08lx,\n"
" REJECT %04lx\n",
lcp->his_mru, lcp->his_accmap, lcp->his_protocomp, lcp->his_acfcomp,
lcp->his_magic, lcp->his_reject);
- printf(
+ fprintf(VarTerm,
" my side: MRU %ld, ACCMAP %08lx, PROTOCOMP %d, ACFCOMP %d, MAGIC %08lx,\n"
" REJECT %04lx\n",
lcp->want_mru, lcp->want_accmap, lcp->want_protocomp, lcp->want_acfcomp,
lcp->want_magic, lcp->my_reject);
- printf("\nDefaults: MRU = %ld, ACCMAP = %08x\t", VarMRU, VarAccmap);
- printf("Open Mode: %s\n", (VarOpenMode == OPEN_ACTIVE)? "active" : "passive");
- return(1);
+ fprintf(VarTerm, "\nDefaults: MRU = %ld, ACCMAP = %08x\t", VarMRU, VarAccmap);
+ fprintf(VarTerm, "Open Mode: %s\n", (VarOpenMode == OPEN_ACTIVE)? "active" : "passive");
+ return 0;
}
/*
@@ -236,15 +239,15 @@ u_long val;
if (len == 6) {
if (type == TY_IPADDR) {
ina.s_addr = htonl(val);
- LogPrintf(LOG_LCP_BIT, " %s [%d] %s\n",
+ LogPrintf(LogLCP, " %s [%d] %s\n",
types[type], len, inet_ntoa(ina));
} else {
- LogPrintf(LOG_LCP_BIT, " %s [%d] %08x\n", types[type], len, val);
+ LogPrintf(LogLCP, " %s [%d] %08x\n", types[type], len, val);
}
*cp++ = (val >> 24) & 0377;
*cp++ = (val >> 16) & 0377;
} else
- LogPrintf(LOG_LCP_BIT, " %s [%d] %d\n", types[type], len, val);
+ LogPrintf(LogLCP, " %s [%d] %d\n", types[type], len, val);
*cp++ = (val >> 8) & 0377;
*cp++ = val & 0377;
*cpp = cp;
@@ -258,16 +261,16 @@ struct fsm *fp;
struct lcpstate *lcp = &LcpInfo;
struct lqrreq *req;
- LogPrintf(LOG_LCP_BIT, "%s: SendConfigReq\n", fp->name);
+ LogPrintf(LogLCP, "LcpSendConfigReq\n");
cp = ReqBuff;
if (!DEV_IS_SYNC) {
if (lcp->want_acfcomp && !REJECTED(lcp, TY_ACFCOMP)) {
*cp++ = TY_ACFCOMP; *cp++ = 2;
- LogPrintf(LOG_LCP_BIT, " %s\n", cftypes[TY_ACFCOMP]);
+ LogPrintf(LogLCP, " %s\n", cftypes[TY_ACFCOMP]);
}
if (lcp->want_protocomp && !REJECTED(lcp, TY_PROTOCOMP)) {
*cp++ = TY_PROTOCOMP; *cp++ = 2;
- LogPrintf(LOG_LCP_BIT, " %s\n", cftypes[TY_PROTOCOMP]);
+ LogPrintf(LogLCP, " %s\n", cftypes[TY_PROTOCOMP]);
}
if (!REJECTED(lcp, TY_ACCMAP))
PutConfValue(&cp, cftypes, TY_ACCMAP, 6, lcp->want_accmap);
@@ -282,7 +285,7 @@ struct fsm *fp;
req->proto = htons(PROTO_LQR);
req->period = htonl(lcp->want_lqrperiod);
cp += sizeof(struct lqrreq);
- LogPrintf(LOG_LCP_BIT, " %s (%d)\n", cftypes[TY_QUALPROTO], lcp->want_lqrperiod);
+ LogPrintf(LogLCP, " %s (%d)\n", cftypes[TY_QUALPROTO], lcp->want_lqrperiod);
}
switch (lcp->want_auth) {
case PROTO_PAP:
@@ -303,7 +306,7 @@ int count;
{
struct fsm *fp = &LcpFsm;
- LogPrintf(LOG_LCP_BIT, "%s: SendProtoRej\n", fp->name);
+ LogPrintf(LogLCP, "LcpSendProtoRej\n");
FsmOutput(fp, CODE_PROTOREJ, fp->reqid, option, count);
}
@@ -318,7 +321,7 @@ static void
LcpSendTerminateAck(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, "%s: SendTerminateAck.\n", fp->name);
+ LogPrintf(LogLCP, "LcpSendTerminateAck.\n");
FsmOutput(fp, CODE_TERMACK, fp->reqid++, NULL, 0);
}
@@ -326,7 +329,7 @@ static void
LcpLayerStart(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, "%s: LayerStart\n", fp->name);
+ LogPrintf(LogLCP, "LcpLayerStart\n");
NewPhase(PHASE_ESTABLISH);
}
@@ -345,26 +348,19 @@ static void
LcpLayerFinish(fp)
struct fsm *fp;
{
-#ifdef VERBOSE
- fprintf(stderr, "%s: LayerFinish\r\n", fp->name);
-#endif
- Prompt();
- LogPrintf(LOG_LCP_BIT, "%s: LayerFinish\n", fp->name);
-#ifdef notdef
- OsCloseLink(0);
-#else
+ LogPrintf(LogLCP, "LcpLayerFinish\n");
OsCloseLink(1);
-#endif
NewPhase(PHASE_DEAD);
StopAllTimers();
(void)OsInterfaceDown(0);
+ Prompt();
}
static void
LcpLayerUp(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, "%s: LayerUp\n", fp->name);
+ LogPrintf(LogLCP, "LcpLayerUp\n");
OsSetInterfaceParams(23, LcpInfo.his_mru, ModemSpeed());
SetLinkParams(&LcpInfo);
@@ -382,11 +378,10 @@ static void
LcpLayerDown(fp)
struct fsm *fp;
{
- LogPrintf(LOG_LCP_BIT, "%s: LayerDown\n", fp->name);
+ LogPrintf(LogLCP, "LcpLayerDown\n");
StopAllTimers();
OsLinkdown();
NewPhase(PHASE_TERMINATE);
- Prompt();
}
void
@@ -448,7 +443,7 @@ int mode;
case TY_MRU:
sp = (u_short *)(cp + 2);
mru = htons(*sp);
- LogPrintf(LOG_LCP_BIT, " %s %d\n", request, mru);
+ LogPrintf(LogLCP, " %s %d\n", request, mru);
switch (mode) {
case MODE_REQ:
@@ -475,7 +470,7 @@ int mode;
case TY_ACCMAP:
lp = (u_long *)(cp + 2);
accmap = htonl(*lp);
- LogPrintf(LOG_LCP_BIT, " %s %08x\n", request, accmap);
+ LogPrintf(LogLCP, " %s %08x\n", request, accmap);
switch (mode) {
case MODE_REQ:
@@ -493,14 +488,14 @@ int mode;
case TY_AUTHPROTO:
sp = (u_short *)(cp + 2);
proto = ntohs(*sp);
- LogPrintf(LOG_LCP_BIT, " %s proto = %04x\n", request, proto);
+ LogPrintf(LogLCP, " %s proto = %04x\n", request, proto);
switch (mode) {
case MODE_REQ:
switch (proto) {
case PROTO_PAP:
if (length != 4) {
- LogPrintf(LOG_LCP_BIT, " %s bad length (%d)\n", request, length);
+ LogPrintf(LogLCP, " %s bad length (%d)\n", request, length);
goto reqreject;
}
if (Acceptable(ConfPap)) {
@@ -516,7 +511,7 @@ int mode;
break;
case PROTO_CHAP:
if (length < 5) {
- LogPrintf(LOG_LCP_BIT, " %s bad length (%d)\n", request, length);
+ LogPrintf(LogLCP, " %s bad length (%d)\n", request, length);
goto reqreject;
}
if (Acceptable(ConfChap) && cp[4] == 5) {
@@ -530,7 +525,7 @@ int mode;
goto reqreject;
break;
default:
- LogPrintf(LOG_LCP_BIT, " %s not implemented, NAK.\n", request);
+ LogPrintf(LogLCP, " %s not implemented, NAK.\n", request);
bcopy(cp, nakp, length);
nakp += length;
break;
@@ -545,7 +540,7 @@ int mode;
break;
case TY_QUALPROTO:
req = (struct lqrreq *)cp;
- LogPrintf(LOG_LCP_BIT, " %s proto: %x, interval: %dms\n",
+ LogPrintf(LogLCP, " %s proto: %x, interval: %dms\n",
request, ntohs(req->proto), ntohl(req->period)*10);
switch (mode) {
case MODE_REQ:
@@ -569,14 +564,14 @@ int mode;
case TY_MAGICNUM:
lp = (u_long *)(cp + 2);
magic = ntohl(*lp);
- LogPrintf(LOG_LCP_BIT, " %s %08x\n", request, magic);
+ LogPrintf(LogLCP, " %s %08x\n", request, magic);
switch (mode) {
case MODE_REQ:
if (LcpInfo.want_magic) {
/* Validate magic number */
if (magic == LcpInfo.want_magic) {
- LogPrintf(LOG_LCP_BIT, "Magic is same (%08x)\n", magic);
+ LogPrintf(LogLCP, "Magic is same (%08x)\n", magic);
LcpInfo.want_magic = GenerateMagic();
bcopy(cp, nakp, 6);
nakp += 6;
@@ -590,18 +585,18 @@ int mode;
}
break;
case MODE_NAK:
- LogPrintf(LOG_LCP_BIT, " %s magic %08x has NAKed\n", request, magic);
+ LogPrintf(LogLCP, " %s magic %08x has NAKed\n", request, magic);
LcpInfo.want_magic = GenerateMagic();
break;
case MODE_REJ:
- LogPrintf(LOG_LCP_BIT, " %s magic has REJected\n", request);
+ LogPrintf(LogLCP, " %s magic has REJected\n", request);
LcpInfo.want_magic = 0;
LcpInfo.his_reject |= (1 << type);
break;
}
break;
case TY_PROTOCOMP:
- LogPrintf(LOG_LCP_BIT, " %s\n", request);
+ LogPrintf(LogLCP, " %s\n", request);
switch (mode) {
case MODE_REQ:
@@ -628,7 +623,7 @@ int mode;
}
break;
case TY_ACFCOMP:
- LogPrintf(LOG_LCP_BIT, " %s\n", request);
+ LogPrintf(LogLCP, " %s\n", request);
switch (mode) {
case MODE_REQ:
if (Acceptable(ConfAcfcomp)) {
@@ -657,7 +652,7 @@ int mode;
}
break;
case TY_SDP:
- LogPrintf(LOG_LCP_BIT, " %s\n", request);
+ LogPrintf(LogLCP, " %s\n", request);
switch (mode) {
case MODE_REQ:
case MODE_NAK:
@@ -666,7 +661,7 @@ int mode;
}
break;
default:
- LogPrintf(LOG_LCP_BIT, " ???[%02x]\n", type);
+ LogPrintf(LogLCP, " ???[%02x]\n", type);
if (mode == MODE_REQ) {
reqreject:
bcopy(cp, rejp, length);
@@ -677,7 +672,7 @@ reqreject:
}
/* to avoid inf. loop */
if (length == 0) {
- LogPrintf(LOG_LCP, "LCP size zero\n");
+ LogPrintf(LogLCP, "LCP size zero\n");
break;
}
diff --git a/usr.sbin/ppp/lcp.h b/usr.sbin/ppp/lcp.h
index d9a4f54..6995878 100644
--- a/usr.sbin/ppp/lcp.h
+++ b/usr.sbin/ppp/lcp.h
@@ -15,14 +15,13 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: lcp.h,v 1.6 1997/02/22 16:10:24 peter Exp $
*
* TODO:
*/
#ifndef _LCP_H_
#define _LPC_H_
-#include "cdefs.h"
struct lcpstate {
u_long his_mru;
@@ -75,10 +74,10 @@ struct lqrreq {
extern struct lcpstate LcpInfo;
-extern void LcpInit __P((void));
-extern void LcpUp __P((void));
-extern void LcpSendProtoRej __P((u_char *, int));
-extern void LcpOpen __P((int mode));
-extern void LcpClose __P((void));
-extern void LcpDown __P((void));
+extern void LcpInit(void);
+extern void LcpUp(void);
+extern void LcpSendProtoRej(u_char *, int);
+extern void LcpOpen(int mode);
+extern void LcpClose(void);
+extern void LcpDown(void);
#endif
diff --git a/usr.sbin/ppp/lcpproto.h b/usr.sbin/ppp/lcpproto.h
index f4ddadf..f918893 100644
--- a/usr.sbin/ppp/lcpproto.h
+++ b/usr.sbin/ppp/lcpproto.h
@@ -15,14 +15,13 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: lcpproto.h,v 1.6 1997/02/22 16:10:25 peter Exp $
*
* TODO:
*/
#ifndef _LCPPROTO_H_
#define _LCPPROTO_H_
-#include "cdefs.h"
/*
* Definition of protocol numbers
@@ -42,12 +41,12 @@
#define PROTO_LQR 0xc025
#define PROTO_CHAP 0xc223
-extern void LcpInput __P((struct mbuf *bp));
-extern void PapInput __P((struct mbuf *bp));
-extern void LqpInput __P((struct mbuf *bp));
-extern void ChapInput __P((struct mbuf *bp));
-extern void IpInput __P((struct mbuf *bp));
-extern struct mbuf *VjCompInput __P((struct mbuf *bp, int proto));
-extern void IpcpInput __P((struct mbuf *bp));
-extern void LqrInput __P((struct mbuf *bp));
+extern void LcpInput(struct mbuf *bp);
+extern void PapInput(struct mbuf *bp);
+extern void LqpInput(struct mbuf *bp);
+extern void ChapInput(struct mbuf *bp);
+extern void IpInput(struct mbuf *bp);
+extern struct mbuf *VjCompInput(struct mbuf *bp, int proto);
+extern void IpcpInput(struct mbuf *bp);
+extern void LqrInput(struct mbuf *bp);
#endif
diff --git a/usr.sbin/ppp/loadalias.c b/usr.sbin/ppp/loadalias.c
index 5e26bd4..e0acf5e 100644
--- a/usr.sbin/ppp/loadalias.c
+++ b/usr.sbin/ppp/loadalias.c
@@ -41,7 +41,6 @@ int loadAliasHandlers(struct aliasHandlers *h)
{
char *path;
char *env;
- char *err;
int i;
path = _PATH_ALIAS;
@@ -49,25 +48,22 @@ int loadAliasHandlers(struct aliasHandlers *h)
if (env)
if (OrigUid() == 0)
path = env;
- else {
- logprintf("Ignoring environment _PATH_ALIAS value (%s)\n", env);
- printf("Ignoring environment _PATH_ALIAS value (%s)\n", env);
- }
+ else
+ LogPrintf(LogALERT, "Ignoring environment _PATH_ALIAS value (%s)",
+ env);
dl = dlopen(path, RTLD_LAZY);
if (dl == (void *)0) {
- err = dlerror();
- logprintf("_PATH_ALIAS (%s): Invalid lib: %s\n", path, err);
- printf("_PATH_ALIAS (%s): Invalid lib: %s\n", path, err);
+ LogPrintf(LogWARN, "_PATH_ALIAS (%s): Invalid lib: %s\n",
+ path, dlerror());
return -1;
}
for (i = 0; map[i].name; i++) {
*(void **)((char *)h + map[i].offset) = dlsym(dl, map[i].name);
if (*(void **)((char *)h + map[i].offset) == (void *)0) {
- err = dlerror();
- logprintf("_PATH_ALIAS (%s): %s: %s\n", path, map[i].name, err);
- printf("_PATH_ALIAS (%s): %s: %s\n", path, map[i].name, err);
+ LogPrintf(LogWARN, "_PATH_ALIAS (%s): %s: %s\n", path,
+ map[i].name, dlerror());
(void)dlclose(dl);
dl = (void *)0;
return -1;
diff --git a/usr.sbin/ppp/log.c b/usr.sbin/ppp/log.c
index 7cd4332..a9ec54a 100644
--- a/usr.sbin/ppp/log.c
+++ b/usr.sbin/ppp/log.c
@@ -1,317 +1,148 @@
-/*
- * PPP logging facility
- *
- * Written by Toshiharu OHNO (tony-o@iij.ad.jp)
- *
- * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
- *
- * 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 Internet Initiative Japan, Inc. The name of the
- * IIJ 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.
- *
- * $Id: log.c,v 1.11 1997/05/26 00:44:05 brian Exp $
- *
- */
-#include "defs.h"
-#include <time.h>
-#include <netdb.h>
-#ifdef __STDC__
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/param.h>
+#include <netinet/in.h>
+#include <syslog.h>
#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-#ifdef NO_VSPRINTF
#include <stdio.h>
-#endif
-
-#include "hdlc.h"
-
-#define MAXLOG 70
-
-#define USELOGFILE
-
-#ifdef USELOGFILE
-static FILE *logfile;
-#endif
-static char logbuff[MAX_MRU*3+(MAX_MRU/16+1)*22+80];
-char *logptr;
-static struct mbuf *logtop;
-static struct mbuf *lognext;
-static int logcnt;
-static int mypid;
-
-int loglevel = LOG_LINK_BIT | LOG_CARRIER_BIT | LOG_PHASE_BIT;
-
-void
-ListLog()
+#include "mbuf.h"
+#include "log.h"
+#include "loadalias.h"
+#include "vars.h"
+
+static char *LogNames[] = {
+ "Async",
+ "Carrier",
+ "Chat",
+ "Command",
+ "Connect",
+ "Debug",
+ "HDLC",
+ "LCP",
+ "Link",
+ "LQM",
+ "Phase",
+ "TCP/IP",
+ "Tun",
+ "Warning",
+ "Error",
+ "Alert"
+};
+
+#define MSK(n) (1<<((n)-1))
+
+static u_long LogMask = MSK(LogLINK) | MSK(LogCARRIER) | MSK(LogPHASE);
+static int LogTunno = -1;
+
+static int
+syslogLevel(int lev)
{
- struct mbuf *bp;
-
- for (bp = logtop; bp; bp = bp->next) {
- write(1, MBUF_CTOP(bp), bp->cnt);
- usleep(10);
- }
+ switch (lev) {
+ case LogDEBUG: return LOG_DEBUG;
+ case LogWARN: return LOG_WARNING;
+ case LogERROR: return LOG_ERR;
+ case LogALERT: return LOG_ALERT;
+ }
+ return lev >= LogMIN && lev <= LogMAX ? LOG_INFO : 0;
}
-int
-LogOpen(tunno)
-int tunno;
+const char *
+LogName(int id)
{
-#ifdef USELOGFILE
- char buf[80];
-
- sprintf(buf, LOGFILE, tunno);
- logfile = fopen(buf, "a");
- if (logfile == NULL) {
- fprintf(stderr, "can't open %s.\r\n", buf);
- return(1);
- }
-#endif
- if (!(mode & MODE_DIRECT))
- fprintf(stderr, "Log level is %02x\r\n", loglevel);
- logptr = logbuff;
- logcnt = 0;
- logtop = lognext = NULL;
- return(0);
+ return id < LogMIN || id > LogMAX ? "Unknown" : LogNames[id-1];
}
void
-LogFlush()
+LogKeep(int id)
{
- struct mbuf *bp;
- int cnt;
-
-#ifdef USELOGFILE
- *logptr = 0;
- fprintf(logfile, "%s", logbuff);
- fflush(logfile);
-#endif
- cnt = logptr - logbuff + 1;
- bp = mballoc(cnt, MB_LOG);
- bcopy(logbuff, MBUF_CTOP(bp), cnt);
- bp->cnt = cnt;
- if (lognext) {
- lognext->next = bp;
- lognext = bp;
- if (++logcnt > MAXLOG) {
- logcnt--;
- logtop = mbfree(logtop);
- }
- } else {
- lognext = logtop = bp;
- }
- logptr = logbuff;
+ if (id >= LogMIN && id <= LogMAXCONF)
+ LogMask |= MSK(id);
}
void
-DupLog()
+LogDiscard(int id)
{
- mypid = 0;
-#ifdef USELOGFILE
- dup2(fileno(logfile), 2);
-#endif
+ if (id >= LogMIN && id <= LogMAXCONF)
+ LogMask &= ~MSK(id);
}
void
-LogClose()
+LogDiscardAll()
{
- LogFlush();
-#ifdef USELOGFILE
- fclose(logfile);
-#endif
- logptr = NULL;
+ LogMask = 0;
}
-#ifdef NO_VSPRINTF
-void
-vsprintf(buf, fmt, av)
-char *buf;
-char *fmt;
-va_list av;
-{
- FILE foo;
-
- foo._cnt = BUFSIZ;
- foo._base = foo._ptr = buf; /* may have to cast(unsigned char *) */
- foo._flag = _IOWRT+_IOSTRG;
- (void) _doprnt(fmt, (va_list)av, &foo);
- *foo._ptr = '\0'; /* plant terminating null character */
-}
-#endif
-
-static void
-vlogprintf(format, ap)
-char *format;
-va_list ap;
+int
+LogIsKept(int id)
{
- if (logptr) {
- vsnprintf(logptr, sizeof(logbuff)-(logptr-logbuff), format, ap);
- logptr += strlen(logptr);
- LogFlush();
- }
+ if (id < LogMIN)
+ return 0;
+ if (id <= LogMAXCONF)
+ return LogMask & MSK(id);
+ return id <= LogMAX;
}
void
-#ifdef __STDC__
-logprintf(char *format, ...)
-#else
-logprintf(va_alist)
-va_dcl
-#endif
+LogOpen(const char *Name)
{
- va_list ap;
-#ifdef __STDC__
- va_start(ap, format);
-#else
- char *format;
-
- va_start(ap);
- format = va_arg(ap, char *);
-#endif
- vlogprintf(format, ap);
- va_end(ap);
+ openlog(Name, LOG_PID, LOG_DAEMON);
}
void
-LogDumpBp(level, header, bp)
-int level;
-char *header;
-struct mbuf *bp;
+LogSetTun(int tunno)
{
- u_char *cp;
- int cnt, loc;
-
- if (!(loglevel & (1 << level)))
- return;
- LogTimeStamp();
- snprintf(logptr, sizeof(logbuff)-(logptr-logbuff), "%s\n", header);
- logptr += strlen(logptr);
- loc = 0;
- LogTimeStamp();
- while (bp) {
- cp = MBUF_CTOP(bp);
- cnt = bp->cnt;
- while (cnt-- > 0) {
- snprintf(logptr, sizeof(logbuff)-(logptr-logbuff), " %02x", *cp++);
- logptr += strlen(logptr);
- if (++loc == 16) {
- loc = 0;
- *logptr++ = '\n';
- if (logptr - logbuff > 1500)
- LogFlush();
- if (cnt) LogTimeStamp();
- }
- }
- bp = bp->next;
- }
- if (loc) *logptr++ = '\n';
- LogFlush();
+ LogTunno = tunno;
}
void
-LogDumpBuff(level, header, ptr, cnt)
-int level;
-char *header;
-u_char *ptr;
-int cnt;
+LogClose()
{
- int loc;
-
- if (cnt < 1) return;
- if (!(loglevel & (1 << level)))
- return;
- LogTimeStamp();
- snprintf(logptr, sizeof(logbuff)-(logptr-logbuff), "%s\n", header);
- logptr += strlen(logptr);
- LogTimeStamp();
- loc = 0;
- while (cnt-- > 0) {
- snprintf(logptr, sizeof(logbuff)-(logptr-logbuff), " %02x", *ptr++);
- logptr += strlen(logptr);
- if (++loc == 16) {
- loc = 0;
- *logptr++ = '\n';
- if (cnt) LogTimeStamp();
- }
- }
- if (loc) *logptr++ = '\n';
- LogFlush();
+ closelog();
+ LogTunno = -1;
}
void
-LogTimeStamp()
+LogPrintf(int lev, char *fmt, ...)
{
- struct tm *ptm;
- time_t ltime;
-
- if (mypid == 0)
- mypid = getpid();
- ltime = time(0);
- ptm = localtime(&ltime);
- snprintf(logptr, sizeof(logbuff)-(logptr-logbuff),
- "%02d-%02d %02d:%02d:%02d [%d] ",
- ptm->tm_mon + 1, ptm->tm_mday,
- ptm->tm_hour, ptm->tm_min, ptm->tm_sec, mypid);
- logptr += strlen(logptr);
+ va_list ap;
+ va_start(ap, fmt);
+ if (LogIsKept(lev)) {
+ static char nfmt[200];
+
+ if (LogIsKept(LogTUN) && LogTunno != -1)
+ snprintf(nfmt, sizeof nfmt, "tun%d: %s: %s",
+ LogTunno, LogName(lev), fmt);
+ else
+ snprintf(nfmt, sizeof nfmt, "%s: %s", LogName(lev), fmt);
+ if ((lev == LogERROR || lev == LogALERT || lev == LogWARN) && VarTerm)
+ vfprintf(VarTerm, fmt, ap);
+ if (lev != LogWARN || !VarTerm)
+ vsyslog(syslogLevel(lev), nfmt, ap);
+ }
+ va_end(ap);
}
void
-#ifdef __STDC__
-LogPrintf(int level, char *format, ...)
-#else
-LogPrintf(va_alist)
-va_dcl
-#endif
+LogDumpBp(int lev, char *hdr, struct mbuf *bp)
{
- va_list ap;
-#ifdef __STDC__
- va_start(ap, format);
-#else
- int level;
- char *format;
-
- va_start(ap);
- int = va_arg(ap, int);
- format = va_arg(ap, char *);
-#endif
- if (!(loglevel & level))
- return;
- LogTimeStamp();
- vlogprintf(format, ap);
- va_end(ap);
+ LogDumpBuff(lev, hdr, MBUF_CTOP(bp), bp->cnt);
}
void
-LogReOpen( sig )
-int sig;
+LogDumpBuff(int lev, char *hdr, u_char *ptr, int n)
{
-#ifdef USELOGFILE
- FILE *nlogfile;
- char buf[80];
-
- sprintf(buf, LOGFILE, tunno);
- nlogfile = fopen(buf, "a");
- if (nlogfile == NULL) {
- LogPrintf(~0,"can't re-open %s.\r\n", buf);
- }
- else {
- LogPrintf(~0,"log file closed due to signal %d.\r\n",sig);
- LogFlush();
- fclose(logfile);
- logfile = nlogfile;
- logptr = logbuff;
- logcnt = 0;
- logtop = lognext = NULL;
- LogPrintf(~0,"log file opened due to signal %d.\r\n",sig);
- }
-#endif
- LogFlush();
+ if (LogIsKept(lev)) {
+ char buf[49];
+ char *b;
+ int f;
+
+ if (hdr && *hdr)
+ LogPrintf(lev, "%s", hdr);
+ while (n > 0) {
+ b = buf;
+ for (f = 0; f < 16 && n--; f++, b += 3)
+ sprintf(b, " %02x", (int)*ptr++);
+ LogPrintf(lev, buf);
+ }
+ }
}
diff --git a/usr.sbin/ppp/log.h b/usr.sbin/ppp/log.h
index 31ae57d..3a68cbf 100644
--- a/usr.sbin/ppp/log.h
+++ b/usr.sbin/ppp/log.h
@@ -1,73 +1,32 @@
-/*
- * Written by Toshiharu OHNO (tony-o@iij.ad.jp)
- *
- * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
- *
- * 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 Internet Initiative Japan. The name of the
- * IIJ 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.
- *
- * $Id: log.h,v 1.9 1997/03/13 14:53:54 brian Exp $
- *
- * TODO:
- */
+#define LogMIN (1)
+#define LogASYNC (1) /* syslog(LOG_INFO, ....) */
+#define LogCARRIER (2)
+#define LogCHAT (3)
+#define LogCOMMAND (4)
+#define LogCONNECT (5)
+#define LogDEBUG (6) /* syslog(LOG_DEBUG, ....) */
+#define LogHDLC (7)
+#define LogLCP (8)
+#define LogLINK (9)
+#define LogLQM (10)
+#define LogPHASE (11)
+#define LogTCPIP (12)
+#define LogTUN (13) /* If set, tun%d is output with each message */
+#define LogMAXCONF (13)
+#define LogWARN (14) /* Sent to VarTerm else syslog(LOG_WARNING, ) */
+#define LogERROR (15) /* syslog(LOG_ERR, ....), + sent to VarTerm */
+#define LogALERT (16) /* syslog(LOG_ALERT, ....) */
+#define LogMAX (16)
-#ifndef _LOG_H_
-#define _LOG_H_
-#include "cdefs.h"
-/*
- * Definition of log level
- */
-#define LOG_PHASE 0
-#define LOG_PHASE_BIT (1 << LOG_PHASE)
-# define LM_PHASE "Phase"
-#define LOG_CHAT 1
-#define LOG_CHAT_BIT (1 << LOG_CHAT)
-# define LM_CHAT "Chat"
-#define LOG_LQM 2
-#define LOG_LQM_BIT (1 << LOG_LQM)
-# define LM_LQM "LQM"
-#define LOG_LCP 3
-#define LOG_LCP_BIT (1 << LOG_LCP)
-# define LM_LCP "LCP"
-#define LOG_TCPIP 4
-#define LOG_TCPIP_BIT (1 << LOG_TCPIP)
-# define LM_TCPIP "TCP/IP"
-#define LOG_HDLC 5
-#define LOG_HDLC_BIT (1 << LOG_HDLC)
-# define LM_HDLC "HDLC"
-#define LOG_ASYNC 6
-#define LOG_ASYNC_BIT (1 << LOG_ASYNC)
-# define LM_ASYNC "Async"
-#define LOG_LINK 7
-#define LOG_LINK_BIT (1 << LOG_LINK)
-# define LM_LINK "Link"
-#define LOG_CONNECT 8
-#define LOG_CONNECT_BIT (1 << LOG_CONNECT)
-# define LM_CONNECT "Connect"
-#define LOG_CARRIER 9
-#define LOG_CARRIER_BIT (1 << LOG_CARRIER)
-# define LM_CARRIER "Carrier"
-#define MAXLOGLEVEL 10
-
-extern int loglevel, tunno;
-extern char *logptr;
-
-extern void LogTimeStamp __P((void));
-extern int LogOpen __P((int));
-extern void LogReOpen __P((int));
-extern void DupLog __P((void));
-extern void LogClose __P((void));
-extern void logprintf __P((char *, ...)), LogPrintf __P((int, char *, ...));
-extern void LogDumpBp __P((int level, char *header, struct mbuf *bp));
-extern void LogDumpBuff __P((int level, char *header, u_char *ptr, int cnt));
-extern void ListLog __P((void));
-#endif
+/* The first int arg for all of the following is one of the above values */
+extern const char *LogName(int);
+extern void LogKeep(int);
+extern void LogDiscard(int);
+extern void LogDiscardAll();
+extern int LogIsKept(int);
+extern void LogOpen(const char *);
+extern void LogSetTun(int);
+extern void LogClose();
+extern void LogPrintf(int, char *, ...);
+extern void LogDumpBp(int, char *hdr, struct mbuf *bp);
+extern void LogDumpBuff(int, char *hdr, u_char *ptr, int n);
diff --git a/usr.sbin/ppp/lqr.c b/usr.sbin/ppp/lqr.c
index 77713de..798bcf9 100644
--- a/usr.sbin/ppp/lqr.c
+++ b/usr.sbin/ppp/lqr.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: lqr.c,v 1.13 1997/05/24 17:32:39 brian Exp $
+ * $Id: lqr.c,v 1.14 1997/05/26 00:44:05 brian Exp $
*
* o LQR based on RFC1333
*
@@ -61,7 +61,7 @@ SendEchoReq()
lqr = &lqrdata;
lqr->magic = htonl(LcpInfo.want_magic);
lqr->signature = htonl(SIGNATURE);
- LogPrintf(LOG_LQM_BIT, "Send echo LQR [%d]\n", echoseq);
+ LogPrintf(LogLQM, "Send echo LQR [%d]\n", echoseq);
lqr->sequence = htonl(echoseq++);
FsmOutput(fp, CODE_ECHOREQ, fp->reqid++,
(u_char *)lqr, sizeof(struct echolqr));
@@ -79,7 +79,7 @@ struct mbuf *bp;
lqr = (struct echolqr *)MBUF_CTOP(bp);
if (htonl(lqr->signature) == SIGNATURE) {
seq = ntohl(lqr->sequence);
- LogPrintf(LOG_LQM_BIT, "Got echo LQR [%d]\n", ntohl(lqr->sequence));
+ LogPrintf(LogLQM, "Got echo LQR [%d]\n", ntohl(lqr->sequence));
gotseq = seq;
}
}
@@ -109,7 +109,7 @@ SendLqrReport()
/*
* XXX: Should implement LQM strategy
*/
- LogPrintf(LOG_PHASE_BIT, "** 1 Too many ECHO packets are lost. **\n");
+ LogPrintf(LogPHASE, "** 1 Too many ECHO packets are lost. **\n");
lqmmethod = 0; /* Prevent rcursion via LcpClose() */
reconnect(RECON_TRUE);
LcpClose();
@@ -120,7 +120,7 @@ SendLqrReport()
}
} else if (lqmmethod & LQM_ECHO) {
if (echoseq - gotseq > 5) {
- LogPrintf(LOG_PHASE_BIT, "** 2 Too many ECHO packets are lost. **\n");
+ LogPrintf(LogPHASE, "** 2 Too many ECHO packets are lost. **\n");
lqmmethod = 0; /* Prevent rcursion via LcpClose() */
reconnect(RECON_TRUE);
LcpClose();
@@ -155,9 +155,8 @@ LqrInput(struct mbuf *bp)
cp = MBUF_CTOP(bp);
lqr = (struct lqrdata *)cp;
if (ntohl(lqr->MagicNumber) != LcpInfo.his_magic) {
-#ifdef notdef
-logprintf("*** magic %x != expecting %x\n", ntohl(lqr->MagicNumber), LcpInfo.his_magic);
-#endif
+ LogPrintf(LogERROR, "LqrInput: magic %x != expecting %x\n",
+ ntohl(lqr->MagicNumber), LcpInfo.his_magic);
pfree(bp);
return;
}
@@ -197,7 +196,7 @@ StartLqm()
if (Enabled(ConfLqr))
lqmmethod |= LQM_LQR;
StopTimer(&LqrTimer);
- LogPrintf(LOG_LQM_BIT, "LQM method = %d\n", lqmmethod);
+ LogPrintf(LogLQM, "LQM method = %d\n", lqmmethod);
if (lcp->his_lqrperiod || lcp->want_lqrperiod) {
/*
@@ -210,10 +209,10 @@ StartLqm()
LqrTimer.func = SendLqrReport;
SendLqrReport();
StartTimer(&LqrTimer);
- LogPrintf(LOG_LQM_BIT, "Will send LQR every %d.%d secs\n",
+ LogPrintf(LogLQM, "Will send LQR every %d.%d secs\n",
period/100, period % 100);
} else {
- LogPrintf(LOG_LQM_BIT, "LQR is not activated.\n");
+ LogPrintf(LogLQM, "LQR is not activated.\n");
}
}
@@ -227,12 +226,12 @@ void
StopLqr(method)
int method;
{
- LogPrintf(LOG_LQM_BIT, "StopLqr method = %x\n", method);
+ LogPrintf(LogLQM, "StopLqr method = %x\n", method);
if (method == LQM_LQR)
- LogPrintf(LOG_LQM_BIT, "Stop sending LQR, Use LCP ECHO instead.\n");
+ LogPrintf(LogLQM, "Stop sending LQR, Use LCP ECHO instead.\n");
if (method == LQM_ECHO)
- LogPrintf(LOG_LQM_BIT, "Stop sending LCP ECHO.\n");
+ LogPrintf(LogLQM, "Stop sending LCP ECHO.\n");
lqmmethod &= ~method;
if (lqmmethod)
SendLqrReport();
@@ -245,26 +244,19 @@ LqrDump(message, lqr)
char *message;
struct lqrdata *lqr;
{
- if (loglevel & (1 << LOG_LQM)) {
- LogTimeStamp();
- logprintf("%s:\n", message);
- LogTimeStamp();
- logprintf(" Magic: %08x LastOutLQRs: %08x\n",
- lqr->MagicNumber, lqr->LastOutLQRs);
- LogTimeStamp();
- logprintf(" LastOutPackets: %08x LastOutOctets: %08x\n",
- lqr->LastOutPackets, lqr->LastOutOctets);
- LogTimeStamp();
- logprintf(" PeerInLQRs: %08x PeerInPackets: %08x\n",
- lqr->PeerInLQRs, lqr->PeerInPackets);
- LogTimeStamp();
- logprintf(" PeerInDiscards: %08x PeerInErrors: %08x\n",
- lqr->PeerInDiscards, lqr->PeerInErrors);
- LogTimeStamp();
- logprintf(" PeerInOctets: %08x PeerOutLQRs: %08x\n",
- lqr->PeerInOctets, lqr->PeerOutLQRs);
- LogTimeStamp();
- logprintf(" PeerOutPackets: %08x PeerOutOctets: %08x\n",
- lqr->PeerOutPackets, lqr->PeerOutOctets);
+ if (LogIsKept(LogLQM)) {
+ LogPrintf(LogLQM, "%s:", message);
+ LogPrintf(LogLQM, " Magic: %08x LastOutLQRs: %08x\n",
+ lqr->MagicNumber, lqr->LastOutLQRs);
+ LogPrintf(LogLQM, " LastOutPackets: %08x LastOutOctets: %08x\n",
+ lqr->LastOutPackets, lqr->LastOutOctets);
+ LogPrintf(LogLQM, " PeerInLQRs: %08x PeerInPackets: %08x\n",
+ lqr->PeerInLQRs, lqr->PeerInPackets);
+ LogPrintf(LogLQM, " PeerInDiscards: %08x PeerInErrors: %08x\n",
+ lqr->PeerInDiscards, lqr->PeerInErrors);
+ LogPrintf(LogLQM, " PeerInOctets: %08x PeerOutLQRs: %08x\n",
+ lqr->PeerInOctets, lqr->PeerOutLQRs);
+ LogPrintf(LogLQM, " PeerOutPackets: %08x PeerOutOctets: %08x\n",
+ lqr->PeerOutPackets, lqr->PeerOutOctets);
}
}
diff --git a/usr.sbin/ppp/lqr.h b/usr.sbin/ppp/lqr.h
index d668bef..3b649e6 100644
--- a/usr.sbin/ppp/lqr.h
+++ b/usr.sbin/ppp/lqr.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: lqr.h,v 1.5 1997/02/22 16:10:29 peter Exp $
*
* TODO:
*/
@@ -58,10 +58,10 @@ struct lqrsave HisLqrSave;
#define LQM_LQR 1
#define LQM_ECHO 2
-extern void LqrDump __P((char *, struct lqrdata *));
-extern void LqrChangeOrder __P((struct lqrdata *, struct lqrdata *));
-extern void StartLqm __P((void));
-extern void StopLqr __P((int));
-extern void StopLqrTimer __P((void));
-extern void RecvEchoLqr __P((struct mbuf *));
+extern void LqrDump(char *, struct lqrdata *);
+extern void LqrChangeOrder(struct lqrdata *, struct lqrdata *);
+extern void StartLqm(void);
+extern void StopLqr(int);
+extern void StopLqrTimer(void);
+extern void RecvEchoLqr(struct mbuf *);
#endif
diff --git a/usr.sbin/ppp/main.c b/usr.sbin/ppp/main.c
index ec01a47..ad423a5 100644
--- a/usr.sbin/ppp/main.c
+++ b/usr.sbin/ppp/main.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: main.c,v 1.58 1997/05/29 02:29:12 brian Exp $
+ * $Id: main.c,v 1.59 1997/06/01 03:43:25 brian Exp $
*
* TODO:
* o Add commands for traffic summary, version display, etc.
@@ -52,7 +52,7 @@
#include "sig.h"
#define LAUTH_M1 "Warning: No password entry for this host in ppp.secret\n"
-#define LAUTH_M2 "Warning: All manipulation is allowed by anyone in the world\n"
+#define LAUTH_M2 "Warning: Manipulation is allowed by anyone\n"
#ifndef O_NONBLOCK
#ifdef O_NDELAY
@@ -177,12 +177,12 @@ int excode;
if (mode & MODE_BACKGROUND && BGFiledes[1] != -1) {
char c = EX_ERRDEAD;
if (write(BGFiledes[1],&c,1) == 1)
- LogPrintf(LOG_PHASE_BIT,"Parent notified of failure.\n");
+ LogPrintf(LogPHASE,"Parent notified of failure.\n");
else
- LogPrintf(LOG_PHASE_BIT,"Failed to notify parent of failure.\n");
+ LogPrintf(LogPHASE,"Failed to notify parent of failure.\n");
close(BGFiledes[1]);
}
- LogPrintf(LOG_PHASE_BIT, "PPP Terminated (%s).\n",ex_desc(excode));
+ LogPrintf(LogPHASE, "PPP Terminated (%s).\n",ex_desc(excode));
LogClose();
if (server >= 0) {
close(server);
@@ -198,17 +198,19 @@ static void
Hangup(signo)
int signo;
{
+#ifdef TRAPSEGV
if (signo == SIGSEGV) {
- LogPrintf(LOG_PHASE_BIT, "Signal %d, core dump.\n", signo);
+ LogPrintf(LogPHASE, "Signal %d, core dump.\n", signo);
LogClose();
abort();
}
+#endif
if (BGPid) {
kill (BGPid, SIGTERM);
exit (EX_HANGUP);
}
else {
- LogPrintf(LOG_PHASE_BIT, "Signal %d, hangup.\n", signo);
+ LogPrintf(LogPHASE, "Signal %d, hangup.\n", signo);
Cleanup(EX_HANGUP);
}
}
@@ -221,12 +223,10 @@ int signo;
kill (BGPid, SIGINT);
exit (EX_TERM);
}
- else {
- LogPrintf(LOG_PHASE_BIT, "Signal %d, terminate.\n", signo);
- reconnect(RECON_FALSE);
- LcpClose();
- Cleanup(EX_TERM);
- }
+ LogPrintf(LogPHASE, "Signal %d, terminate.\n", signo);
+ reconnect(RECON_FALSE);
+ LcpClose();
+ Cleanup(EX_TERM);
}
static void
@@ -292,7 +292,7 @@ ProcessArgs(int argc, char **argv)
if (loadAliasHandlers(&VarAliasHandlers) == 0)
mode |= MODE_ALIAS;
else
- printf("Cannot load alias library\n");
+ LogPrintf(LogWARN, "Cannot load alias library\n");
optc--; /* this option isn't exclusive */
}
else
@@ -315,8 +315,10 @@ ProcessArgs(int argc, char **argv)
static void
Greetings()
{
- printf("User Process PPP. Written by Toshiharu OHNO.\r\n");
- fflush(stdout);
+ if (VarTerm) {
+ fprintf(VarTerm, "User Process PPP. Written by Toshiharu OHNO.\n");
+ fflush(VarTerm);
+ }
}
void
@@ -325,8 +327,13 @@ int argc;
char **argv;
{
FILE *lockfile;
- argc--; argv++;
+ char *name;
+
+ VarTerm = stdout;
+ name = rindex(argv[0], '/');
+ LogOpen(name ? name+1 : argv[0]);
+ argc--; argv++;
mode = MODE_INTER; /* default operation is interactive mode */
netfd = server = modem = tun_in = -1;
ProcessArgs(argc, argv);
@@ -335,16 +342,14 @@ char **argv;
GetUid();
IpcpDefAddress();
- if (SelectSystem("default", CONFFILE) < 0) {
- fprintf(stderr, "Warning: No default entry is given in config file.\n");
- }
+ if (SelectSystem("default", CONFFILE) < 0 && VarTerm)
+ fprintf(VarTerm, "Warning: No default entry is given in config file.\n");
switch ( LocalAuthInit() ) {
case NOT_FOUND:
- if (!(mode & MODE_DIRECT)) {
- fprintf(stderr,LAUTH_M1);
- fprintf(stderr,LAUTH_M2);
- fflush (stderr);
+ if (VarTerm) {
+ fprintf(VarTerm,LAUTH_M1);
+ fprintf(VarTerm,LAUTH_M2);
}
/* Fall down */
case VALID:
@@ -355,19 +360,20 @@ char **argv;
}
if (OpenTunnel(&tunno) < 0) {
- perror("open_tun");
+ LogPrintf(LogWARN, "open_tun: %s", strerror(errno));
exit(EX_START);
}
if (mode & (MODE_AUTO|MODE_DIRECT|MODE_DEDICATED))
mode &= ~MODE_INTER;
if (mode & MODE_INTER) {
- printf("Interactive mode\n");
+ fprintf(VarTerm, "Interactive mode\n");
netfd = STDIN_FILENO;
} else if (mode & MODE_AUTO) {
- printf("Automatic Dialer mode\n");
+ fprintf(VarTerm, "Automatic Dialer mode\n");
if (dstsystem == NULL) {
- fprintf(stderr, "Destination system must be specified in"
+ if (VarTerm)
+ fprintf(VarTerm, "Destination system must be specified in"
" auto, background or ddial mode.\n");
exit(EX_START);
}
@@ -375,11 +381,11 @@ char **argv;
tcgetattr(0, &oldtio); /* Save original tty mode */
- pending_signal(SIGHUP, LogReOpen);
+ pending_signal(SIGHUP, Hangup);
pending_signal(SIGTERM, CloseSession);
pending_signal(SIGINT, CloseSession);
pending_signal(SIGQUIT, CloseSession);
-#ifdef SIGSEGV
+#ifdef TRAPSEGV
signal(SIGSEGV, Hangup);
#endif
#ifdef SIGPIPE
@@ -403,24 +409,26 @@ char **argv;
if (dstsystem) {
if (SelectSystem(dstsystem, CONFFILE) < 0) {
- fprintf(stderr, "Destination system not found in conf file.\n");
+ if (VarTerm)
+ fprintf(VarTerm, "Destination system not found in conf file.\n");
Cleanup(EX_START);
}
if ((mode & MODE_AUTO) && DefHisAddress.ipaddr.s_addr == INADDR_ANY) {
- fprintf(stderr, "Must specify dstaddr with"
+ if (VarTerm)
+ fprintf(VarTerm, "Must specify dstaddr with"
" auto, background or ddial mode.\n");
Cleanup(EX_START);
}
}
if (mode & MODE_DIRECT)
- printf("Packet mode enabled.\n");
+ fprintf(VarTerm, "Packet mode enabled.\n");
if (!(mode & MODE_INTER)) {
int port = SERVER_PORT + tunno;
if (mode & MODE_BACKGROUND) {
if (pipe (BGFiledes)) {
- perror("pipe");
+ LogPrintf(LogERROR, "pipe: %s", strerror(errno));
Cleanup(EX_SOCK);
}
}
@@ -428,7 +436,7 @@ char **argv;
/* Create server socket and listen at there. */
server = socket(PF_INET, SOCK_STREAM, 0);
if (server < 0) {
- perror("socket");
+ LogPrintf(LogERROR, "socket: %s", strerror(errno));
Cleanup(EX_SOCK);
}
ifsin.sin_family = AF_INET;
@@ -436,22 +444,22 @@ char **argv;
ifsin.sin_port = htons(port);
setsockopt(server, SOL_SOCKET, SO_REUSEADDR, &server, sizeof server);
if (bind(server, (struct sockaddr *) &ifsin, sizeof(ifsin)) < 0) {
- perror("bind");
- if (errno == EADDRINUSE)
- fprintf(stderr, "Wait for a while, then try again.\n");
+ LogPrintf(LogERROR, "bind: %s", strerror(errno));
+ if (errno == EADDRINUSE && VarTerm)
+ fprintf(VarTerm, "Wait for a while, then try again.\n");
Cleanup(EX_SOCK);
}
if (listen(server, 5) != 0) {
- fprintf(stderr, "Unable to listen to socket - OS overload?\n");
+ LogPrintf(LogERROR, "Unable to listen to socket - OS overload?\n");
+ Cleanup(EX_SOCK);
}
- DupLog();
if (!(mode & MODE_DIRECT)) {
pid_t bgpid;
bgpid = fork ();
if (bgpid == -1) {
- perror ("fork");
+ LogPrintf(LogERROR, "fork: %s", strerror(errno));
Cleanup (EX_SOCK);
}
if (bgpid) {
@@ -460,19 +468,19 @@ char **argv;
if (mode & MODE_BACKGROUND) {
/* Wait for our child to close its pipe before we exit. */
BGPid = bgpid;
- close (BGFiledes[1]);
+ close(BGFiledes[1]);
if (read(BGFiledes[0], &c, 1) != 1) {
- printf("Child exit, no status.\n");
- LogPrintf (LOG_PHASE_BIT, "Parent: Child exit, no status.\n");
+ fprintf(VarTerm, "Child exit, no status.\n");
+ LogPrintf (LogPHASE, "Parent: Child exit, no status.\n");
} else if (c == EX_NORMAL) {
- printf("PPP enabled.\n");
- LogPrintf (LOG_PHASE_BIT, "Parent: PPP enabled.\n");
+ fprintf(VarTerm, "PPP enabled.\n");
+ LogPrintf (LogPHASE, "Parent: PPP enabled.\n");
} else {
- printf("Child failed (%s).\n",ex_desc((int)c));
- LogPrintf(LOG_PHASE_BIT, "Parent: Child failed (%s).\n",
+ fprintf(VarTerm, "Child failed (%s).\n",ex_desc((int)c));
+ LogPrintf(LogPHASE, "Parent: Child failed (%s).\n",
ex_desc((int)c));
}
- close (BGFiledes[0]);
+ close(BGFiledes[0]);
}
exit(c);
} else if (mode & MODE_BACKGROUND)
@@ -487,7 +495,8 @@ char **argv;
fprintf(lockfile, "%d\n", (int)getpid());
fclose(lockfile);
} else
- logprintf("Warning: Can't create %s: %s\n", pid_filename, strerror(errno));
+ LogPrintf(LogALERT, "Warning: Can't create %s: %s\n",
+ pid_filename, strerror(errno));
snprintf(if_filename, sizeof if_filename, "%s%s.if",
_PATH_VARRUN, VarBaseDevice);
@@ -497,33 +506,24 @@ char **argv;
fprintf(lockfile, "tun%d\n", tunno);
fclose(lockfile);
} else
- logprintf("Warning: Can't create %s: %s\n", if_filename, strerror(errno));
+ LogPrintf(LogALERT, "Warning: Can't create %s: %s\n",
+ if_filename, strerror(errno));
if (server >= 0)
- LogPrintf(LOG_PHASE_BIT, "Listening at %d.\n", port);
+ LogPrintf(LogPHASE, "Listening at %d.\n", port);
#ifdef DOTTYINIT
- if (mode & (MODE_DIRECT|MODE_DEDICATED)) { /* } */
+ if (mode & (MODE_DIRECT|MODE_DEDICATED))
#else
- if (mode & MODE_DIRECT) {
+ if (mode & MODE_DIRECT)
#endif
TtyInit();
- } else {
- int fd;
-
- setsid(); /* detach control tty */
- if ((fd = open(_PATH_DEVNULL, O_RDWR, 0)) != -1) {
- (void)dup2(fd, STDIN_FILENO);
- (void)dup2(fd, STDOUT_FILENO);
- (void)dup2(fd, STDERR_FILENO);
- if (fd > 2)
- (void)close (fd);
- }
- }
+ else
+ daemon(0,0);
} else {
TtyInit();
TtyCommandMode(1);
}
- LogPrintf(LOG_PHASE_BIT, "PPP Started.\n");
+ LogPrintf(LogPHASE, "PPP Started.\n");
do
@@ -540,7 +540,7 @@ void
PacketMode()
{
if (RawModem(modem) < 0) {
- fprintf(stderr, "Not connected.\r\n");
+ LogPrintf(LogWARN, "PacketMode: Not connected.\n");
return;
}
@@ -554,20 +554,24 @@ PacketMode()
LcpOpen(VarOpenMode);
if ((mode & (MODE_INTER|MODE_AUTO)) == MODE_INTER) {
TtyCommandMode(1);
- fprintf(stderr, "Packet mode.\r\n");
- aft_cmd = 1;
+ if (VarTerm) {
+ fprintf(VarTerm, "Packet mode.\n");
+ aft_cmd = 1;
+ }
}
}
static void
ShowHelp()
{
- fprintf(stderr, "The following commands are available:\r\n");
- fprintf(stderr, " ~p\tEnter to Packet mode\r\n");
- fprintf(stderr, " ~-\tDecrease log level\r\n");
- fprintf(stderr, " ~+\tIncrease log level\r\n");
- fprintf(stderr, " ~.\tTerminate program\r\n");
- fprintf(stderr, " ~?\tThis help\r\n");
+ fprintf(stderr, "The following commands are available:\n");
+ fprintf(stderr, " ~p\tEnter Packet mode\n");
+ fprintf(stderr, " ~-\tDecrease log level\n");
+ fprintf(stderr, " ~+\tIncrease log level\n");
+ fprintf(stderr, " ~t\tShow timers (only in \"log debug\" mode)\n");
+ fprintf(stderr, " ~m\tShow memory map (only in \"log debug\" mode)\n");
+ fprintf(stderr, " ~.\tTerminate program\n");
+ fprintf(stderr, " ~?\tThis help\n");
}
static void
@@ -576,25 +580,27 @@ ReadTty()
int n;
char ch;
static int ttystate;
+ FILE *oVarTerm;
#define MAXLINESIZE 200
char linebuff[MAXLINESIZE];
-#ifdef DEBUG
- logprintf("termode = %d, netfd = %d, mode = %d\n", TermMode, netfd, mode);
-#endif
+ LogPrintf(LogDEBUG, "termode = %d, netfd = %d, mode = %d\n",
+ TermMode, netfd, mode);
if (!TermMode) {
n = read(netfd, linebuff, sizeof(linebuff)-1);
- aft_cmd = 1;
if (n > 0) {
+ aft_cmd = 1;
DecodeCommand(linebuff, n, 1);
} else {
- LogPrintf(LOG_PHASE_BIT, "client connection closed.\n");
+ LogPrintf(LogPHASE, "client connection closed.\n");
VarLocalAuth = LOCAL_NO_AUTH;
+ mode &= ~MODE_INTER;
+ oVarTerm = VarTerm;
+ VarTerm = 0;
+ if (oVarTerm && oVarTerm != stdout)
+ fclose(oVarTerm);
close(netfd);
- close(1);
- dup2(2, 1); /* Have to have something here or the modem will be 1 */
netfd = -1;
- mode &= ~MODE_INTER;
}
return;
}
@@ -602,10 +608,8 @@ ReadTty()
/*
* We are in terminal mode, decode special sequences
*/
- n = read(0, &ch, 1);
-#ifdef DEBUG
- logprintf("got %d bytes\n", n);
-#endif
+ n = read(fileno(VarTerm), &ch, 1);
+ LogPrintf(LogDEBUG, "Got %d bytes (reading from the terminal)", n);
if (n > 0) {
switch (ttystate) {
@@ -620,21 +624,6 @@ ReadTty()
case '?':
ShowHelp();
break;
- case '-':
- if (loglevel > 0) {
- loglevel--;
- fprintf(stderr, "New loglevel is %d\r\n", loglevel);
- }
- break;
- case '+':
- loglevel++;
- fprintf(stderr, "New loglevel is %d\r\n", loglevel);
- break;
-#ifdef DEBUG
- case 'm':
- ShowMemMap();
- break;
-#endif
case 'p':
/*
* XXX: Should check carrier.
@@ -644,18 +633,24 @@ ReadTty()
PacketMode();
}
break;
-#ifdef DEBUG
- case 't':
- ShowTimers();
- break;
-#endif
case '.':
TermMode = 1;
+ aft_cmd = 1;
TtyCommandMode(1);
break;
+ case 't':
+ if (LogIsKept(LogDEBUG)) {
+ ShowTimers();
+ break;
+ }
+ case 'm':
+ if (LogIsKept(LogDEBUG)) {
+ ShowMemMap();
+ break;
+ }
default:
if (write(modem, &ch, n) < 0)
- fprintf(stderr, "err in write.\r\n");
+ LogPrintf(LogERROR, "error writing to modem.\n");
break;
}
ttystate = 0;
@@ -704,7 +699,7 @@ static void
RedialTimeout()
{
StopTimer(&RedialTimer);
- LogPrintf(LOG_PHASE_BIT, "Redialing timer expired.\n");
+ LogPrintf(LogPHASE, "Redialing timer expired.\n");
}
static void
@@ -721,7 +716,7 @@ StartRedialTimer(Timeout)
else
RedialTimer.load = (random() % REDIAL_PERIOD) * SECTICKS;
- LogPrintf(LOG_PHASE_BIT, "Enter pause (%d) for redialing.\n",
+ LogPrintf(LogPHASE, "Enter pause (%d) for redialing.\n",
RedialTimer.load / SECTICKS);
RedialTimer.func = RedialTimeout;
@@ -749,15 +744,14 @@ DoLoop()
if (mode & MODE_DIRECT) {
modem = OpenModem(mode);
- LogPrintf(LOG_PHASE_BIT, "Packet mode enabled\n");
- fflush(stderr);
+ LogPrintf(LogPHASE, "Packet mode enabled\n");
PacketMode();
} else if (mode & MODE_DEDICATED) {
if (modem < 0)
modem = OpenModem(mode);
}
- fflush(stdout);
+ fflush(VarTerm);
timeout.tv_sec = 0;
timeout.tv_usec = 0;
@@ -787,13 +781,13 @@ DoLoop()
if (LcpFsm.state <= ST_CLOSED) {
if (dial_up != TRUE && reconnectState == RECON_TRUE) {
if (++reconnectCount <= VarReconnectTries) {
- LogPrintf(LOG_PHASE_BIT, "Connection lost, re-establish (%d/%d)\n",
+ LogPrintf(LogPHASE, "Connection lost, re-establish (%d/%d)\n",
reconnectCount, VarReconnectTries);
StartRedialTimer(VarReconnectTimer);
dial_up = TRUE;
} else {
if (VarReconnectTries)
- LogPrintf(LOG_PHASE_BIT, "Connection lost, maximum (%d) times\n",
+ LogPrintf(LogPHASE, "Connection lost, maximum (%d) times\n",
VarReconnectTries);
reconnectCount = 0;
if (mode & MODE_BACKGROUND)
@@ -808,19 +802,17 @@ DoLoop()
* Just do it!
*/
if ( dial_up && RedialTimer.state != TIMER_RUNNING ) {
-#ifdef DEBUG
- logprintf("going to dial: modem = %d\n", modem);
-#endif
+ LogPrintf(LogDEBUG, "going to dial: modem = %d\n", modem);
modem = OpenModem(mode);
if (modem < 0) {
StartRedialTimer(VarRedialTimeout);
} else {
tries++; /* Tries are per number, not per list of numbers. */
if (VarDialTries)
- LogPrintf(LOG_CHAT_BIT, "Dial attempt %u of %d\n", tries,
+ LogPrintf(LogCHAT, "Dial attempt %u of %d\n", tries,
VarDialTries);
else
- LogPrintf(LOG_CHAT_BIT, "Dial attempt %u\n", tries);
+ LogPrintf(LogCHAT, "Dial attempt %u\n", tries);
if (DialModem() == EX_DONE) {
sleep(1); /* little pause to allow peer starts */
ModemTimeout();
@@ -928,20 +920,20 @@ DoLoop()
handle_signals();
continue;
}
- perror("select");
+ LogPrintf(LogERROR, "select: %s", strerror(errno));
break;
}
if ((netfd >= 0 && FD_ISSET(netfd, &efds)) || (modem >= 0 && FD_ISSET(modem, &efds))) {
- logprintf("Exception detected.\n");
+ LogPrintf(LogALERT, "Exception detected.\n");
break;
}
if (server >= 0 && FD_ISSET(server, &rfds)) {
- LogPrintf(LOG_PHASE_BIT, "connected to client.\n");
+ LogPrintf(LogPHASE, "connected to client.\n");
wfd = accept(server, (struct sockaddr *)&hisaddr, &ssize);
if (wfd < 0) {
- perror("accept");
+ LogPrintf(LogERROR, "accept: %s", strerror(errno));
continue;
}
if (netfd >= 0) {
@@ -950,19 +942,16 @@ DoLoop()
continue;
} else
netfd = wfd;
- if (dup2(netfd, 1) < 0) {
- perror("dup2");
- close(netfd);
- netfd = -1;
- continue;
- }
+ VarTerm = fdopen(netfd, "a+");
mode |= MODE_INTER;
Greetings();
switch ( LocalAuthInit() ) {
case NOT_FOUND:
- fprintf(stdout,LAUTH_M1);
- fprintf(stdout,LAUTH_M2);
- fflush(stdout);
+ if (VarTerm) {
+ fprintf(VarTerm,LAUTH_M1);
+ fprintf(VarTerm,LAUTH_M2);
+ fflush(VarTerm);
+ }
/* Fall down */
case VALID:
VarLocalAuth = LOCAL_AUTH;
@@ -990,7 +979,7 @@ DoLoop()
if ((mode & MODE_DIRECT) && n <= 0) {
DownConnection();
} else
- LogDumpBuff(LOG_ASYNC, "ReadFromModem", rbuff, n);
+ LogDumpBuff(LogASYNC, "ReadFromModem", rbuff, n);
if (LcpFsm.state <= ST_CLOSED) {
/*
@@ -1003,12 +992,12 @@ DoLoop()
* LCP packet is detected. Turn ourselves into packet mode.
*/
if (cp != rbuff) {
- write(1, rbuff, cp - rbuff);
- write(1, "\r\n", 2);
+ write(modem, rbuff, cp - rbuff);
+ write(modem, "\r\n", 2);
}
PacketMode();
} else
- write(1, rbuff, n);
+ write(fileno(VarTerm), rbuff, n);
}
} else {
if (n > 0)
@@ -1020,7 +1009,7 @@ DoLoop()
if (tun_in >= 0 && FD_ISSET(tun_in, &rfds)) { /* something to read from tun */
n = read(tun_in, rbuff, sizeof(rbuff));
if (n < 0) {
- perror("read from tun");
+ LogPrintf(LogERROR, "read from tun: %s", strerror(errno));
continue;
}
/*
@@ -1049,5 +1038,5 @@ DoLoop()
}
}
}
- logprintf("job done.\n");
+ LogPrintf(LogDEBUG, "Job (DoLoop) done.\n");
}
diff --git a/usr.sbin/ppp/main.h b/usr.sbin/ppp/main.h
index a6e591d..bc4e6f3 100644
--- a/usr.sbin/ppp/main.h
+++ b/usr.sbin/ppp/main.h
@@ -17,11 +17,11 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: main.h,v 1.3 1997/02/22 16:10:33 peter Exp $
*
*/
#ifndef _MAIN_H_
#define _MAIN_H_
-void Cleanup __P((int));
+void Cleanup(int);
#endif
diff --git a/usr.sbin/ppp/mbuf.c b/usr.sbin/ppp/mbuf.c
index 7454726..3fbaebe 100644
--- a/usr.sbin/ppp/mbuf.c
+++ b/usr.sbin/ppp/mbuf.c
@@ -17,10 +17,16 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: mbuf.c,v 1.5 1997/02/22 16:10:34 peter Exp $
+ * $Id: mbuf.c,v 1.6 1997/05/10 01:22:15 brian Exp $
*
*/
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/param.h>
+#include <netinet/in.h>
#include "defs.h"
+#include "loadalias.h"
+#include "vars.h"
struct memmap {
struct mbuf *queue;
@@ -49,19 +55,17 @@ int type;
struct mbuf *bp;
if (type > MB_MAX)
- logprintf("bad type %d\n", type);
+ LogPrintf(LogERROR, "Bad mbuf type %d\n", type);
bp = (struct mbuf *)malloc(sizeof(struct mbuf));
if (bp == NULL) {
- logprintf("failed to allocate memory: %u\n", sizeof(struct mbuf));
- fprintf(stderr,"failed to allocate memory: %u\n", sizeof(struct mbuf));
- exit(0);
+ LogPrintf(LogALERT, "failed to allocate memory: %u\n", sizeof(struct mbuf));
+ exit(1);
}
bzero(bp, sizeof(struct mbuf));
p = (u_char *)malloc(cnt);
if (p == NULL) {
- logprintf("failed to allocate memory: %d\n", cnt);
- fprintf(stderr,"failed to allocate memory: %d\n", cnt);
- exit(0);
+ LogPrintf(LogALERT, "failed to allocate memory: %d\n", cnt);
+ exit(1);
}
MemMap[type].count += cnt;
totalalloced += cnt;
@@ -144,53 +148,27 @@ int cnt;
}
}
-void
-DumpBp(bp)
-struct mbuf *bp;
-{
- u_char *cp;
- int cnt, loc;
-
- logprintf("dump bp = %x (%d)\n", bp, plength(bp));
- loc = 0;
- while (bp) {
- cp = MBUF_CTOP(bp);
- cnt = bp->cnt;
- while (cnt > 0) {
- logprintf("%02x", *cp++);
- loc++;
- if (loc == 16) {
- loc = 0;
- logprintf("\n");
- } else
- logprintf(" ");
- cnt--;
- }
- bp = bp->next;
- }
- if (loc) logprintf("\n");
-}
-
int
ShowMemMap()
{
int i;
- for (i = 0; i <= MB_MAX; i += 2) {
- printf("%d: %d %d: %d\r\n",
+ if (!VarTerm)
+ return 1;
+
+ for (i = 0; i <= MB_MAX; i += 2)
+ fprintf(VarTerm, "%d: %d %d: %d\n",
i, MemMap[i].count, i+1, MemMap[i+1].count);
- }
- return(1);
+
+ return 0;
}
void
LogMemory()
{
-#ifdef DEBUG
- logprintf("mem alloced: %d\n", totalalloced);
- logprintf(" 1: %d 2: %d 3: %d 4: %d\n",
+ LogPrintf(LogDEBUG, "LogMemory: mem alloced: %d\n", totalalloced);
+ LogPrintf(LogDEBUG, "LogMemory: 1: %d 2: %d 3: %d 4: %d\n",
MemMap[1].count, MemMap[2].count, MemMap[3].count, MemMap[4].count);
- logprintf(" 5: %d 6: %d 7: %d 8: %d\n",
+ LogPrintf(LogDEBUG, "LogMemory: 5: %d 6: %d 7: %d 8: %d\n",
MemMap[5].count, MemMap[6].count, MemMap[7].count, MemMap[8].count);
-#endif
}
diff --git a/usr.sbin/ppp/mbuf.h b/usr.sbin/ppp/mbuf.h
index 9ec0e53..f7f7b7b 100644
--- a/usr.sbin/ppp/mbuf.h
+++ b/usr.sbin/ppp/mbuf.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: mbuf.h,v 1.4 1997/02/22 16:10:35 peter Exp $
*
* TODO:
*/
@@ -55,13 +55,15 @@ struct mqueue {
#define MB_IPQ 10
#define MB_MAX MB_IPQ
-extern int plength __P((struct mbuf *bp));
-extern struct mbuf *mballoc __P((int cnt, int type));
-extern struct mbuf *mbfree __P((struct mbuf *bp));
-extern void pfree __P((struct mbuf *bp));
-extern void mbwrite __P((struct mbuf *bp, u_char *ptr, int cnt));
-extern struct mbuf *mbread __P((struct mbuf *bp, u_char *ptr, int cnt));
-extern void DumpBp __P((struct mbuf *bp));
-extern void Enqueue __P((struct mqueue *queue, struct mbuf *bp));
-extern struct mbuf *Dequeue __P((struct mqueue *queue));
+extern int plength(struct mbuf *bp);
+extern struct mbuf *mballoc(int cnt, int type);
+extern struct mbuf *mbfree(struct mbuf *bp);
+extern void pfree(struct mbuf *bp);
+extern void mbwrite(struct mbuf *bp, u_char *ptr, int cnt);
+extern struct mbuf *mbread(struct mbuf *bp, u_char *ptr, int cnt);
+extern void DumpBp(struct mbuf *bp);
+extern void Enqueue(struct mqueue *queue, struct mbuf *bp);
+extern struct mbuf *Dequeue(struct mqueue *queue);
+extern void LogMemory();
+extern int ShowMemMap();
#endif
diff --git a/usr.sbin/ppp/modem.c b/usr.sbin/ppp/modem.c
index e4cbecd..d5dc70f 100644
--- a/usr.sbin/ppp/modem.c
+++ b/usr.sbin/ppp/modem.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: modem.c,v 1.40 1997/05/26 00:44:06 brian Exp $
+ * $Id: modem.c,v 1.41 1997/05/29 02:29:13 brian Exp $
*
* TODO:
*/
@@ -26,6 +26,9 @@
#include <termios.h>
#include <sys/ioctl.h>
#include <sys/tty.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netdb.h>
#include <errno.h>
#include <time.h>
#include <libutil.h>
@@ -57,8 +60,6 @@ static struct mbuf *modemout;
static struct mqueue OutputQueues[PRI_LINK+1];
static int dev_is_modem;
-#undef QDEBUG
-
void
Enqueue(queue, bp)
struct mqueue *queue;
@@ -70,9 +71,7 @@ struct mbuf *bp;
} else
queue->last = queue->top = bp;
queue->qlen++;
-#ifdef QDEBUG
- logprintf("Enqueue: len = %d\n", queue->qlen);
-#endif
+ LogPrintf(LogDEBUG, "Enqueue: len = %d\n", queue->qlen);
}
struct mbuf *
@@ -81,19 +80,15 @@ struct mqueue *queue;
{
struct mbuf *bp;
-#ifdef QDEBUG
- logprintf("Dequeue: len = %d\n", queue->qlen);
-#endif
+ LogPrintf(LogDEBUG, "Dequeue: len = %d\n", queue->qlen);
bp = queue->top;
if (bp) {
queue->top = queue->top->pnext;
queue->qlen--;
if (queue->top == NULL) {
queue->last = queue->top;
-#ifdef QDEBUG
if (queue->qlen)
- logprintf("!!! not zero (%d)!!!\n", queue->qlen);
-#endif
+ LogPrintf(LogDEBUG, "Dequeue: Not zero (%d)!!!\n", queue->qlen);
}
}
return(bp);
@@ -211,8 +206,8 @@ static time_t uptime;
void
DownConnection()
{
- LogPrintf(LOG_PHASE_BIT, "Disconnected!\n");
- LogPrintf(LOG_PHASE_BIT, "Connect time: %d secs\n", time(NULL) - uptime);
+ LogPrintf(LogPHASE, "Disconnected!\n");
+ LogPrintf(LogPHASE, "Connect time: %d secs\n", time(NULL) - uptime);
if (!TermMode) {
CloseModem();
LcpDown();
@@ -235,7 +230,7 @@ ModemTimeout()
if (dev_is_modem) {
if (modem >= 0) {
if (ioctl(modem, TIOCMGET, &mbits) < 0) {
- LogPrintf(LOG_PHASE_BIT, "ioctl error (%s)!\n", strerror(errno));
+ LogPrintf(LogPHASE, "ioctl error (%s)!\n", strerror(errno));
DownConnection();
return;
}
@@ -245,7 +240,7 @@ ModemTimeout()
if (change & TIOCM_CD) {
if (Online) {
time(&uptime);
- LogPrintf(LOG_PHASE_BIT, "*Connected!\n");
+ LogPrintf(LogPHASE, "*Connected!\n");
connect_count++;
/*
* In dedicated mode, start packet mode immediate
@@ -261,7 +256,7 @@ ModemTimeout()
} else {
if (!Online) {
time(&uptime);
- LogPrintf(LOG_PHASE_BIT, "Connected!\n");
+ LogPrintf(LogPHASE, "Connected!\n");
mbits = TIOCM_CD;
connect_count++;
} else if (uptime == 0) {
@@ -298,8 +293,7 @@ char *str;
for (pp = validparity; pp->name; pp++) {
if (strcasecmp(pp->name, str) == 0 ||
strcasecmp(pp->name1, str) == 0) {
- VarParity = pp->set;
- return(pp->set);
+ return VarParity = pp->set;
}
}
return(-1);
@@ -319,14 +313,12 @@ char *str;
rstio.c_cflag &= ~(CSIZE|PARODD|PARENB);
rstio.c_cflag |= val;
tcsetattr(modem, TCSADRAIN, &rstio);
+ return 0;
}
- return(val);
+ LogPrintf(LogWARN, "ChangeParity: %s: Invalid parity\n", str);
+ return -1;
}
-#include <sys/socket.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-
int
OpenConnection(host, port)
char *host, *port;
@@ -343,7 +335,7 @@ char *host, *port;
if (hp) {
bcopy(hp->h_addr_list[0], &dest.sin_addr.s_addr, 4);
} else {
- printf("unknown host: %s\n", host);
+ LogPrintf(LogWARN, "OpenConnection: unknown host: %s\n", host);
return(-1);
}
}
@@ -353,18 +345,18 @@ char *host, *port;
if (sp) {
dest.sin_port = sp->s_port;
} else {
- printf("unknown service: %s\n", port);
+ LogPrintf(LogWARN, "OpenConnection: unknown service: %s\n", port);
return(-1);
}
}
- LogPrintf(LOG_PHASE_BIT, "Connected to %s:%s\n", host, port);
+ LogPrintf(LogPHASE, "Connected to %s:%s\n", host, port);
sock = socket(PF_INET, SOCK_STREAM, 0);
if (sock < 0) {
return(sock);
}
if (connect(sock, (struct sockaddr *)&dest, sizeof(dest)) < 0) {
- printf("connection failed.\n");
+ LogPrintf(LogWARN, "OpenConnection: connection failed.\n");
return(-1);
}
return(sock);
@@ -386,7 +378,7 @@ int mode;
if (isatty(0)) {
modem = open(ctermid(NULL), O_RDWR|O_NONBLOCK);
if (modem < 0) {
- LogPrintf(LOG_PHASE_BIT, "Open Failed %s\n", ctermid(NULL));
+ LogPrintf(LogPHASE, "Open Failed %s\n", ctermid(NULL));
return(modem);
}
} else if (modem < 0)
@@ -395,15 +387,15 @@ int mode;
if (strncmp(VarDevice, "/dev/", 5) == 0) {
if ((res = uu_lock(VarBaseDevice)) != UU_LOCK_OK) {
if (res == UU_LOCK_INUSE)
- LogPrintf(LOG_PHASE_BIT, "Modem %s is in use\n", VarDevice);
+ LogPrintf(LogPHASE, "Modem %s is in use\n", VarDevice);
else
- LogPrintf(LOG_PHASE_BIT, "Modem %s is in use: uu_lock: %s\n",
+ LogPrintf(LogPHASE, "Modem %s is in use: uu_lock: %s\n",
VarDevice, uu_lockerr(res));
return(-1);
}
modem = open(VarDevice, O_RDWR|O_NONBLOCK);
if (modem < 0) {
- LogPrintf(LOG_PHASE_BIT, "Open Failed %s\n", VarDevice);
+ LogPrintf(LogPHASE, "Open Failed %s\n", VarDevice);
(void) uu_unlock(VarBaseDevice);
return(modem);
}
@@ -427,21 +419,6 @@ int mode;
}
}
- /* This code gets around the problem of closing descriptor 0
- * when it should not have been closed and closing descriptor 1
- * when the telnet connection dies. Since this program always
- * opens a descriptor for the modem in auto and direct mode,
- * having to dup the descriptor here is a fatal error.
- *
- * With the other changes I have made this should no longer happen.
- * JC
- */
- while (modem < 3)
- {
- logprintf("Duping modem fd %d\n", modem);
- modem = dup(modem);
- }
-
/*
* If we are working on tty device, change it's mode into
* the one desired for further operation. In this implementation,
@@ -453,11 +430,9 @@ int mode;
if (dev_is_modem && !DEV_IS_SYNC) {
tcgetattr(modem, &rstio);
modemios = rstio;
-#ifdef DEBUG
- logprintf("## modem = %d\n", modem);
- logprintf("modem (get): iflag = %x, oflag = %x, cflag = %x\n",
- rstio.c_iflag, rstio.c_oflag, rstio.c_cflag);
-#endif
+ LogPrintf(LogDEBUG, "OpenModem: modem = %d\n", modem);
+ LogPrintf(LogDEBUG, "OpenModem: modem (get): iflag = %x, oflag = %x,"
+ " cflag = %x\n", rstio.c_iflag, rstio.c_oflag, rstio.c_cflag);
cfmakeraw(&rstio);
if (VarCtsRts)
rstio.c_cflag |= CLOCAL | CCTS_OFLOW|CRTS_IFLOW;
@@ -475,22 +450,18 @@ int mode;
rstio.c_cflag &= ~(CSIZE|PARODD|PARENB);
rstio.c_cflag |= VarParity;
if (cfsetspeed(&rstio, IntToSpeed(VarSpeed)) == -1) {
- logprintf("Unable to set modem speed (modem %d to %d)\n",
+ LogPrintf(LogWARN, "Unable to set modem speed (modem %d to %d)\n",
modem, VarSpeed);
}
}
tcsetattr(modem, TCSADRAIN, &rstio);
-#ifdef DEBUG
- logprintf("modem (put): iflag = %x, oflag = %x, cflag = %x\n",
- rstio.c_iflag, rstio.c_oflag, rstio.c_cflag);
-#endif
+ LogPrintf(LogDEBUG, "modem (put): iflag = %x, oflag = %x, cflag = %x\n",
+ rstio.c_iflag, rstio.c_oflag, rstio.c_cflag);
if (!(mode & MODE_DIRECT))
if (ioctl(modem, TIOCMGET, &mbits))
return(-1);
-#ifdef DEBUG
- fprintf(stderr, "modem control = %o\n", mbits);
-#endif
+ LogPrintf(LogDEBUG, "OpenModem: modem control = %o\n", mbits);
oldflag = fcntl(modem, F_GETFL, 0);
if (oldflag < 0)
@@ -524,12 +495,7 @@ int modem;
if (!isatty(modem) || DEV_IS_SYNC)
return(0);
if (!(mode & MODE_DIRECT) && modem >= 0 && !Online) {
-#ifdef DEBUG
- logprintf("mode = %d, modem = %d, mbits = %x\n", mode, modem, mbits);
-#endif
-#ifdef notdef
- return(-1);
-#endif
+ LogPrintf(LogDEBUG, "RawModem: mode = %d, modem = %d, mbits = %x\n", mode, modem, mbits);
}
tcgetattr(modem, &rstio);
cfmakeraw(&rstio);
@@ -545,12 +511,6 @@ int modem;
if (oldflag < 0)
return(-1);
(void)fcntl(modem, F_SETFL, oldflag | O_NONBLOCK);
-#ifdef DEBUG
- oldflag = fcntl(modem, F_GETFL, 0);
- logprintf("modem (put2): iflag = %x, oflag = %x, cflag = %x\n",
- rstio.c_iflag, rstio.c_oflag, rstio.c_cflag);
- logprintf("flag = %x\n", oldflag);
-#endif
return(0);
}
@@ -589,14 +549,11 @@ int flag;
#else
tcgetattr(modem, &tio);
if (cfsetspeed(&tio, B0) == -1) {
- logprintf("Unable to set modem to speed 0\n");
+ LogPrintf(LogWARN, "Unable to set modem to speed 0\n");
}
tcsetattr(modem, TCSANOW, &tio);
#endif
sleep(1);
-#ifdef notdef
- mbits &= ~TIOCM_CD;
-#endif
}
/*
* If we are working as dedicated mode, never close it
@@ -697,33 +654,27 @@ int fd;
{
struct mqueue *queue;
int nb, nw;
-#ifdef QDEBUG
int i;
-#endif
if (modemout == NULL && ModemQlen() == 0)
IpStartOutput();
if (modemout == NULL) {
-#ifdef QDEBUG
i = PRI_LINK;
-#endif
for (queue = &OutputQueues[PRI_LINK]; queue >= OutputQueues; queue--) {
if (queue->top) {
modemout = Dequeue(queue);
-#ifdef QDEBUG
- if (i > PRI_NORMAL) {
- struct mqueue *q;
-
- q = &OutputQueues[0];
- logprintf("output from queue %d, normal has %d\n", i, q->qlen);
- }
- logprintf("Dequeue(%d): ", i);
-#endif
+ if (LogIsKept(LogDEBUG)) {
+ if (i > PRI_NORMAL) {
+ struct mqueue *q;
+ q = &OutputQueues[0];
+ LogPrintf(LogDEBUG, "ModemStartOutput: Output from queue %d,"
+ " normal has %d\n", i, q->qlen);
+ }
+ LogPrintf(LogDEBUG, "ModemStartOutput: Dequeued %d\n", i);
+ }
break;
}
-#ifdef QDEBUG
i--;
-#endif
}
}
if (modemout) {
@@ -731,22 +682,19 @@ int fd;
if (nb > 1600) nb = 1600;
if (fd == 0) fd = 1; /* XXX WTFO! This is bogus */
nw = write(fd, MBUF_CTOP(modemout), nb);
-#ifdef QDEBUG
- logprintf("wrote: %d(%d)\n", nw, nb);
- LogDumpBuff(LOG_HDLC, "modem write", MBUF_CTOP(modemout), nb);
-#endif
+ LogPrintf(LogDEBUG, "ModemStartOutput: wrote: %d(%d)\n", nw, nb);
+ LogDumpBuff(LogDEBUG, "ModemStartOutput: modem write",
+ MBUF_CTOP(modemout), nb);
if (nw > 0) {
modemout->cnt -= nw;
modemout->offset += nw;
if (modemout->cnt == 0) {
modemout = mbfree(modemout);
-#ifdef QDEBUG
- logprintf(" mbfree\n");
-#endif
+ LogPrintf(LogDEBUG, "ModemStartOutput: mbfree\n");
}
} else if (nw < 0) {
if (errno != EAGAIN)
- perror("modem write");
+ LogPrintf(LogERROR, "modem write: %s", strerror(errno));
}
}
}
@@ -760,22 +708,20 @@ DialModem()
strncpy(ScriptBuffer, VarDialScript,sizeof(ScriptBuffer)-1);
ScriptBuffer[sizeof(ScriptBuffer)-1] = '\0';
if (DoChat(ScriptBuffer) > 0) {
- if ((mode & (MODE_INTER|MODE_AUTO)) == MODE_INTER)
- fprintf(stderr, "dial OK!\n");
+ if (VarTerm)
+ fprintf(VarTerm, "dial OK!\n");
strncpy(ScriptBuffer, VarLoginScript,sizeof(ScriptBuffer)-1);
if (DoChat(ScriptBuffer) > 0) {
- if ((mode & (MODE_INTER|MODE_AUTO)) == MODE_INTER)
- fprintf(stderr, "login OK!\n");
+ if (VarTerm)
+ fprintf(VarTerm, "login OK!\n");
return EX_DONE;
}
- if ((mode & (MODE_INTER|MODE_AUTO)) == MODE_INTER)
- fprintf(stderr, "login failed.\n");
+ LogPrintf(LogWARN, "DialModem: login failed.\n");
ModemTimeout(); /* Dummy call to check modem status */
excode = EX_NOLOGIN;
}
else {
- if ((mode & (MODE_INTER|MODE_AUTO)) == MODE_INTER)
- fprintf(stderr, "dial failed.\n");
+ LogPrintf(LogWARN, "DialModem: dial failed.\n");
excode = EX_NODIAL;
}
HangupModem(0);
@@ -789,43 +735,46 @@ ShowModemStatus()
int nb;
#endif
- printf("device: %s speed: ", VarDevice);
+ if (!VarTerm)
+ return 1;
+
+ fprintf(VarTerm, "device: %s speed: ", VarDevice);
if (DEV_IS_SYNC)
- printf("sync\n");
+ fprintf(VarTerm, "sync\n");
else
- printf("%d\n", VarSpeed);
+ fprintf(VarTerm, "%d\n", VarSpeed);
switch (VarParity & CSIZE) {
case CS7:
- printf("cs7, ");
+ fprintf(VarTerm, "cs7, ");
break;
case CS8:
- printf("cs8, ");
+ fprintf(VarTerm, "cs8, ");
break;
}
if (VarParity & PARENB) {
if (VarParity & PARODD)
- printf("odd parity, ");
+ fprintf(VarTerm, "odd parity, ");
else
- printf("even parity, ");
+ fprintf(VarTerm, "even parity, ");
} else
- printf("no parity, ");
+ fprintf(VarTerm, "no parity, ");
- printf("CTS/RTS %s.\n", (VarCtsRts? "on" : "off"));
+ fprintf(VarTerm, "CTS/RTS %s.\n", (VarCtsRts? "on" : "off"));
-#ifdef DEBUG
- printf("fd = %d, modem control = %o\n", modem, mbits);
-#endif
- printf("connect count: %d\n", connect_count);
+ if (LogIsKept(LogDEBUG))
+ fprintf(VarTerm, "fd = %d, modem control = %o\n", modem, mbits);
+ fprintf(VarTerm, "connect count: %d\n", connect_count);
#ifdef TIOCOUTQ
if (ioctl(modem, TIOCOUTQ, &nb) > 0)
- printf("outq: %d\n", nb);
+ fprintf(VarTerm, "outq: %d\n", nb);
else
- printf("outq: ioctl probe failed.\n");
+ fprintf(VarTerm, "outq: ioctl probe failed.\n");
#endif
- printf("outqlen: %d\n", ModemQlen());
- printf("DialScript = %s\n", VarDialScript);
- printf("LoginScript = %s\n", VarLoginScript);
- printf("PhoneNumber(s) = %s\n", VarPhoneList);
- return(1);
+ fprintf(VarTerm, "outqlen: %d\n", ModemQlen());
+ fprintf(VarTerm, "DialScript = %s\n", VarDialScript);
+ fprintf(VarTerm, "LoginScript = %s\n", VarLoginScript);
+ fprintf(VarTerm, "PhoneNumber(s) = %s\n", VarPhoneList);
+
+ return 0;
}
diff --git a/usr.sbin/ppp/modem.h b/usr.sbin/ppp/modem.h
index b4befe0..1cdace7 100644
--- a/usr.sbin/ppp/modem.h
+++ b/usr.sbin/ppp/modem.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: modem.h,v 1.7 1997/02/22 16:10:37 peter Exp $
*
* TODO:
*/
@@ -24,22 +24,21 @@
#define _MODEM_H_
#include <termios.h>
#include "mbuf.h"
-#include "cdefs.h"
-extern int RawModem __P((int));
-extern void UnrawModem __P((int));
-extern void UpModem __P((int));
-extern void DownModem __P((int));
-extern void WriteModem __P((int, char *, int));
-extern void ModemStartOutput __P((int));
-extern int OpenModem __P((int));
-extern void CloseModem __P((void));
-extern int ModemSpeed __P((void));
-extern int ModemQlen __P((void));
-extern int DialModem __P((void));
-extern int SpeedToInt __P((speed_t));
-extern speed_t IntToSpeed __P((int));
-extern void ModemTimeout __P((void));
-extern void DownConnection __P((void));
-extern void ModemOutput __P((int, struct mbuf *));
+extern int RawModem(int);
+extern void UnrawModem(int);
+extern void UpModem(int);
+extern void DownModem(int);
+extern void WriteModem(int, char *, int);
+extern void ModemStartOutput(int);
+extern int OpenModem(int);
+extern void CloseModem(void);
+extern int ModemSpeed(void);
+extern int ModemQlen(void);
+extern int DialModem(void);
+extern int SpeedToInt(speed_t);
+extern speed_t IntToSpeed(int);
+extern void ModemTimeout(void);
+extern void DownConnection(void);
+extern void ModemOutput(int, struct mbuf *);
#endif
diff --git a/usr.sbin/ppp/nat_cmd.c b/usr.sbin/ppp/nat_cmd.c
index 0603c7a..f6aa1be 100644
--- a/usr.sbin/ppp/nat_cmd.c
+++ b/usr.sbin/ppp/nat_cmd.c
@@ -30,9 +30,10 @@ AliasRedirectPort (struct cmdtab *list,
char **argv,
void *param)
{
- if (!(mode & MODE_ALIAS))
- printf("alias not enabled\n");
- else if (argc == 3) {
+ if (!(mode & MODE_ALIAS)) {
+ if (VarTerm)
+ fprintf(VarTerm, "Alias not enabled\n");
+ } else if (argc == 3) {
char proto_constant;
char *proto;
u_short local_port;
@@ -48,23 +49,30 @@ AliasRedirectPort (struct cmdtab *list,
} else if (strcmp(proto, "udp") == 0) {
proto_constant = IPPROTO_UDP;
} else {
- printf("port redirect: protocol must be tcp or udp\n");
- printf("Usage: alias %s %s\n", list->name, list->syntax);
+ if (VarTerm) {
+ fprintf(VarTerm, "port redirect: protocol must be tcp or udp\n");
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name,
+ list->syntax);
+ }
return 1;
}
error = StrToAddrAndPort(argv[1], &local_addr, &local_port, proto);
if (error) {
- printf("port redirect: error reading local addr:port\n");
- printf("Usage: alias %s %s\n", list->name, list->syntax);
- return 1;
+ if (VarTerm) {
+ fprintf(VarTerm, "port redirect: error reading local addr:port\n");
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name, list->syntax);
+ }
+ return 1;
}
error = StrToPort(argv[2], &alias_port, proto);
if (error) {
- printf("port redirect: error reading alias port\n");
- printf("Usage: alias %s %s\n", list->name, list->syntax);
- return 1;
+ if (VarTerm) {
+ fprintf(VarTerm, "port redirect: error reading alias port\n");
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name, list->syntax);
+ }
+ return 1;
}
null_addr.s_addr = 0;
@@ -74,11 +82,11 @@ AliasRedirectPort (struct cmdtab *list,
null_addr, alias_port,
proto_constant);
- if (link == NULL)
- printf("port redirect: error returned by packed aliasing engine"
- "(code=%d)\n", error);
- } else
- printf("Usage: alias %s %s\n", list->name, list->syntax);
+ if (link == NULL && VarTerm)
+ fprintf(VarTerm, "port redirect: error returned by packed"
+ " aliasing engine (code=%d)\n", error);
+ } else if (VarTerm)
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name, list->syntax);
return 1;
}
@@ -90,9 +98,10 @@ AliasRedirectAddr(struct cmdtab *list,
char **argv,
void *param)
{
- if (!(mode & MODE_ALIAS))
- printf("alias not enabled\n");
- else if (argc == 2) {
+ if (!(mode & MODE_ALIAS)) {
+ if (VarTerm)
+ fprintf(VarTerm, "alias not enabled\n");
+ } else if (argc == 2) {
int error;
struct in_addr local_addr;
struct in_addr alias_addr;
@@ -100,25 +109,27 @@ AliasRedirectAddr(struct cmdtab *list,
error = StrToAddr(argv[0], &local_addr);
if (error) {
- printf("address redirect: invalid local address\n");
+ if (VarTerm)
+ fprintf(VarTerm, "address redirect: invalid local address\n");
return 1;
}
error = StrToAddr(argv[1], &alias_addr);
if (error) {
- printf("address redirect: invalid alias address\n");
- printf("Usage: alias %s %s\n", list->name, list->syntax);
- return 1;
+ if (VarTerm) {
+ fprintf(VarTerm, "address redirect: invalid alias address\n");
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name, list->syntax);
+ }
+ return 1;
}
link = VarPacketAliasRedirectAddr(local_addr, alias_addr);
- if (link == NULL) {
- printf("address redirect: packet aliasing engine error\n");
- printf("Usage: alias %s %s\n", list->name, list->syntax);
+ if (link == NULL && VarTerm) {
+ fprintf(VarTerm, "address redirect: packet aliasing engine error\n");
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name, list->syntax);
}
-
- } else
- printf("Usage: alias %s %s\n", list->name, list->syntax);
+ } else if (VarTerm)
+ fprintf(VarTerm, "Usage: alias %s %s\n", list->name, list->syntax);
return 1;
}
@@ -136,7 +147,7 @@ StrToAddr (char* str,
hp = gethostbyname (str);
if (!hp)
{
- fprintf (stderr, "Unknown host %s.\n", str);
+ LogPrintf(LogWARN, "StrToAddr: Unknown host %s.\n", str);
return -1;
}
@@ -164,8 +175,8 @@ StrToPort (char *str,
sp = getservbyname (str, proto);
if (!sp)
{
- fprintf (stderr, "Unknown port or service %s/%s.\n",
- str, proto);
+ LogPrintf(LogWARN, "StrToAddr: Unknown port or service %s/%s.\n",
+ str, proto);
return -1;
}
@@ -185,7 +196,8 @@ StrToAddrAndPort (char* str,
ptr = strchr (str, ':');
if (!ptr)
{
- fprintf (stderr, "%s is missing port number.\n", str);
+ LogPrintf(LogWARN, "StrToAddrAndPort: %s is missing port number.\n",
+ str);
return -1;
}
diff --git a/usr.sbin/ppp/os.c b/usr.sbin/ppp/os.c
index d2a161a..2c384ef 100644
--- a/usr.sbin/ppp/os.c
+++ b/usr.sbin/ppp/os.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: os.c,v 1.20 1997/06/01 01:13:03 brian Exp $
+ * $Id: os.c,v 1.21 1997/06/01 03:43:26 brian Exp $
*
*/
#include "fsm.h"
@@ -70,7 +70,7 @@ int updown;
s = socket(AF_INET, SOCK_DGRAM, 0);
if (s < 0) {
- perror("socket");
+ LogPrintf(LogERROR, "socket: %s", strerror(errno));
return(-1);
}
@@ -84,11 +84,8 @@ int updown;
bzero(&ifra.ifra_addr, sizeof(ifra.ifra_addr));
bzero(&ifra.ifra_broadaddr, sizeof(ifra.ifra_addr));
bzero(&ifra.ifra_mask, sizeof(ifra.ifra_addr));
-#ifdef DEBUG
- logprintf("DIFADDR\n");
-#endif
if (ioctl(s, SIOCDIFADDR, &ifra) < 0) {
- perror("SIOCDIFADDR");
+ LogPrintf(LogERROR, "ioctl(SIOCDIFADDR): %s", strerror(errno));
close(s);
return(-1);
}
@@ -148,17 +145,17 @@ int updown;
*/
bcopy(&ifra.ifra_addr, &ifrq.ifr_addr, sizeof(struct sockaddr));
if (ioctl(s, SIOCSIFADDR, &ifra) < 0)
- perror("SIFADDR");;
+ LogPrintf(LogERROR, "ioctl(SIFADDR): %s", strerror(errno));
bcopy(&ifra.ifra_broadaddr, &ifrq.ifr_dstaddr, sizeof(struct sockaddr));
if (ioctl(s, SIOCSIFDSTADDR, &ifrq) < 0)
- perror("SIFDSTADDR");;
+ LogPrintf(LogERROR, "ioctl(SIFDSTADDR): %s", strerror(errno));
#ifdef notdef
bcopy(&ifra.ifra_mask, &ifrq.ifr_broadaddr, sizeof(struct sockaddr));
if (ioctl(s, SIOCSIFBRDADDR, &ifrq) < 0)
- perror("SIFBRDADDR");
+ LogPrintf(LogERROR, "ioctl(SIFBRDADDR): %s", strerror(errno));
#endif
} else if (ioctl(s, SIOCAIFADDR, &ifra) < 0) {
- perror("SIOCAIFADDR");
+ LogPrintf(LogERROR, "ioctl(SIOCAIFADDR): %s", strerror(errno));
close(s);
return(-1);
}
@@ -186,20 +183,23 @@ OsLinkup()
if (linkup == 0) {
if (setuid(0) < 0)
- logprintf("setuid failed\n");
+ LogPrintf(LogERROR, "setuid failed\n");
reconnectState = RECON_UNKNOWN;
if (mode & MODE_BACKGROUND && BGFiledes[1] != -1) {
char c = EX_NORMAL;
if (write(BGFiledes[1],&c,1) == 1)
- LogPrintf(LOG_PHASE_BIT,"Parent notified of success.\n");
+ LogPrintf(LogPHASE,"Parent notified of success.\n");
else
- LogPrintf(LOG_PHASE_BIT,"Failed to notify parent of success.\n");
+ LogPrintf(LogPHASE,"Failed to notify parent of success.\n");
close(BGFiledes[1]);
BGFiledes[1] = -1;
}
peer_addr = IpcpInfo.his_ipaddr;
s = (char *)inet_ntoa(peer_addr);
- LogPrintf(LOG_LINK_BIT|LOG_LCP_BIT, "OsLinkup: %s\n", s);
+ if (LogIsKept(LogLINK))
+ LogPrintf(LogLINK, "OsLinkup: %s\n", s);
+ else
+ LogPrintf(LogLCP, "OsLinkup: %s\n", s);
if (SelectSystem(inet_ntoa(IpcpInfo.want_ipaddr), LINKFILE) < 0) {
if (dstsystem) {
@@ -219,9 +219,14 @@ OsLinkdown()
if (linkup) {
s = (char *)inet_ntoa(peer_addr);
- LogPrintf(LOG_LINK_BIT|LOG_LCP_BIT, "OsLinkdown: %s\n", s);
+ if (LogIsKept(LogLINK))
+ LogPrintf(LogLINK, "OsLinkdown: %s\n", s);
+ else
+ LogPrintf(LogLCP, "OsLinkdown: %s\n", s);
+
if (!(mode & MODE_AUTO))
DeleteIfRoutes(0);
+
linkup = 0;
}
}
@@ -238,12 +243,12 @@ int final;
return(0);
s = socket(AF_INET, SOCK_DGRAM, 0);
if (s < 0) {
- perror("socket");
+ LogPrintf(LogERROR, "socket: %s", strerror(errno));
return(-1);
}
ifrq.ifr_flags &= ~IFF_UP;
if (ioctl(s, SIOCSIFFLAGS, &ifrq) < 0) {
- perror("SIOCSIFFLAGS");
+ LogPrintf(LogERROR, "ioctl(SIOCSIFFLAGS): %s", strerror(errno));
close(s);
return(-1);
}
@@ -267,7 +272,7 @@ int type, mtu, speed;
info.mtu = VarPrefMTU;
info.baudrate = speed;
if (ioctl(tun_out, TUNSIFINFO, &info) < 0)
- perror("TUNSIFINFO");
+ LogPrintf(LogERROR, "ioctl(TUNSIFINFO): %s", strerror(errno));
}
/*
@@ -287,30 +292,32 @@ int *ptun;
char ifname[IFNAMSIZ];
static char devname[14]; /* sufficient room for "/dev/tun65535" */
unsigned unit, enoentcount=0;
+ int err;
+ err = ENOENT;
for( unit=0; unit <= MAX_TUN ; unit++ ) {
snprintf( devname, sizeof(devname), "/dev/tun%d", unit );
tun_out = open(devname, O_RDWR);
if( tun_out >= 0 )
break;
- if( errno == ENXIO )
- unit=MAX_TUN+1;
- else if( errno == ENOENT ) {
+ if( errno == ENXIO ) {
+ unit = MAX_TUN;
+ err = errno;
+ } else if( errno == ENOENT ) {
enoentcount++;
if( enoentcount > 2 )
- unit=MAX_TUN+1;
- }
+ unit=MAX_TUN;
+ } else
+ err = errno;
}
if( unit > MAX_TUN ) {
- fprintf(stderr, "No tunnel device is available.\n");
- return(-1);
+ if (VarTerm)
+ fprintf(VarTerm, "No tunnel device is available (%s).\n", strerror(err));
+ return -1;
}
*ptun = unit;
- if (logptr != NULL)
- LogClose();
- if (LogOpen(unit))
- return(-1);
+ LogSetTun(unit);
/*
* At first, name the interface.
@@ -325,7 +332,7 @@ int *ptun;
s = socket(AF_INET, SOCK_DGRAM, 0);
if (s < 0) {
- perror("socket");
+ LogPrintf(LogERROR, "socket: %s", strerror(errno));
return(-1);
}
@@ -333,14 +340,14 @@ int *ptun;
* Now, bring up the interface.
*/
if (ioctl(s, SIOCGIFFLAGS, &ifrq) < 0) {
- perror("SIOCGIFFLAGS");
+ LogPrintf(LogERROR, "ioctl(SIOCGIFFLAGS): %s", strerror(errno));
close(s);
return(-1);
}
ifrq.ifr_flags |= IFF_UP;
if (ioctl(s, SIOCSIFFLAGS, &ifrq) < 0) {
- perror("SIOCSIFFLAGS");
+ LogPrintf(LogERROR, "ioctl(SIOCSIFFLAGS): %s", strerror(errno));
close(s);
return(-1);
}
@@ -348,13 +355,13 @@ int *ptun;
tun_in = tun_out;
IfDevName = devname + 5;
if (GetIfIndex(IfDevName) < 0) {
- fprintf(stderr, "can't find ifindex.\n");
+ LogPrintf(LogERROR, "OpenTunnel: Can't find ifindex.\n");
close(s);
return(-1);
}
- if (!(mode & MODE_DIRECT))
- printf("Using interface: %s\r\n", IfDevName);
- LogPrintf(LOG_PHASE_BIT, "Using interface: %s\n", IfDevName);
+ if (VarTerm)
+ fprintf(VarTerm, "Using interface: %s\n", IfDevName);
+ LogPrintf(LogPHASE, "Using interface: %s\n", IfDevName);
close(s);
return(0);
}
diff --git a/usr.sbin/ppp/os.h b/usr.sbin/ppp/os.h
index 461fe01..6e9e827 100644
--- a/usr.sbin/ppp/os.h
+++ b/usr.sbin/ppp/os.h
@@ -15,23 +15,23 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: os.h,v 1.5 1997/02/22 16:10:39 peter Exp $
*
* TODO:
*/
#ifndef _OS_H_
#define _OS_H_
-#include "cdefs.h"
-int OsSetIpaddress __P((struct in_addr myaddr, struct in_addr hisaddr, struct in_addr netmask));
-int OsInterfaceDown __P((int));
-void OsSetInterfaceParams __P((int type, int mtu, int speed));
-int OpenTunnel __P((int *));
-void OsCloseLink __P((int flag));
-void OsLinkup __P((void)), OsLinkdown __P((void));
-void OsSetRoute __P((int, struct in_addr, struct in_addr, struct in_addr));
-void DeleteIfRoutes __P((int));
-void OsAddInOctets __P((int cnt));
-void OsAddOutOctets __P((int cnt));
+int OsSetIpaddress(struct in_addr myaddr, struct in_addr hisaddr, struct in_addr netmask);
+int OsInterfaceDown(int);
+void OsSetInterfaceParams(int type, int mtu, int speed);
+int OpenTunnel(int *);
+void OsCloseLink(int flag);
+void OsLinkup(void);
+void OsLinkdown (void);
+void OsSetRoute(int, struct in_addr, struct in_addr, struct in_addr);
+void DeleteIfRoutes(int);
+void OsAddInOctets(int cnt);
+void OsAddOutOctets(int cnt);
#endif
diff --git a/usr.sbin/ppp/pap.c b/usr.sbin/ppp/pap.c
index 89c387d..75f4384 100644
--- a/usr.sbin/ppp/pap.c
+++ b/usr.sbin/ppp/pap.c
@@ -18,7 +18,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: pap.c,v 1.11 1997/05/24 17:32:42 brian Exp $
+ * $Id: pap.c,v 1.12 1997/05/26 00:44:08 brian Exp $
*
* TODO:
*/
@@ -32,7 +32,7 @@
#include "phase.h"
#include "auth.h"
-#ifdef PASSWDAUTH
+#ifndef NOPASSWDAUTH
# include "passwdauth.h"
#endif
@@ -56,10 +56,9 @@ int papid;
namelen = strlen(VarAuthName);
keylen = strlen(VarAuthKey);
plen = namelen + keylen + 2;
-#ifdef DEBUG
- logprintf("namelen = %d, keylen = %d\n", namelen, keylen);
-#endif
- LogPrintf(LOG_PHASE_BIT, "PAP: %s (%s)\n", VarAuthName, VarAuthKey);
+ LogPrintf(LogDEBUG, "SendPapChallenge: namelen = %d, keylen = %d\n",
+ namelen, keylen);
+ LogPrintf(LogPHASE, "PAP: %s (%s)\n", VarAuthName, VarAuthKey);
lh.code = PAP_REQUEST;
lh.id = papid;
lh.length = htons(plen + sizeof(struct fsmheader));
@@ -96,7 +95,7 @@ int code;
cp = MBUF_CTOP(bp) + sizeof(struct fsmheader);
*cp++ = mlen;
bcopy(message, cp, mlen);
- LogPrintf(LOG_PHASE_BIT, "PapOutput: %s\n", papcodes[code]);
+ LogPrintf(LogPHASE, "PapOutput: %s\n", papcodes[code]);
HdlcOutput(PRI_LINK, PROTO_PAP, bp);
}
@@ -113,17 +112,16 @@ u_char *name, *key;
klen = *key;
*key++ = 0;
key[klen] = 0;
-#ifdef DEBUG
- logprintf("name: %s (%d), key: %s (%d)\n", name, nlen, key, klen);
-#endif
+ LogPrintf(LogDEBUG, "PapValidate: name %s (%d), key %s (%d)\n",
+ name, nlen, key, klen);
-#ifdef PASSWDAUTH
+#ifndef NOPASSWDAUTH
if( Enabled( ConfPasswdAuth ) )
{
- LogPrintf( LOG_LCP, "PasswdAuth enabled - calling\n" );
+ LogPrintf( LogLCP, "PasswdAuth enabled - calling\n" );
return PasswdAuth( name, key );
}
-#endif /* PASSWDAUTH */
+#endif
return(AuthValidate(SECRETFILE, name, key));
}
@@ -142,7 +140,7 @@ struct mbuf *bp;
if (len >= ntohs(php->length)) {
if (php->code < PAP_REQUEST || php->code > PAP_NAK)
php->code = 0;
- LogPrintf(LOG_PHASE_BIT, "PapInput: %s\n", papcodes[php->code]);
+ LogPrintf(LogPHASE, "PapInput: %s\n", papcodes[php->code]);
switch (php->code) {
case PAP_REQUEST:
@@ -163,7 +161,7 @@ struct mbuf *bp;
cp = (u_char *)(php + 1);
len = *cp++;
cp[len] = 0;
- LogPrintf(LOG_PHASE_BIT, "Received PAP_ACK (%s)\n", cp);
+ LogPrintf(LogPHASE, "Received PAP_ACK (%s)\n", cp);
if (lcp->auth_iwait == PROTO_PAP) {
lcp->auth_iwait = 0;
if (lcp->auth_ineed == 0)
@@ -175,7 +173,7 @@ struct mbuf *bp;
cp = (u_char *)(php + 1);
len = *cp++;
cp[len] = 0;
- LogPrintf(LOG_PHASE_BIT, "Received PAP_NAK (%s)\n", cp);
+ LogPrintf(LogPHASE, "Received PAP_NAK (%s)\n", cp);
reconnect(RECON_FALSE);
LcpClose();
break;
diff --git a/usr.sbin/ppp/passwdauth.c b/usr.sbin/ppp/passwdauth.c
index 5de62f7..78f738d 100644
--- a/usr.sbin/ppp/passwdauth.c
+++ b/usr.sbin/ppp/passwdauth.c
@@ -36,16 +36,14 @@ char *name, *key;
char *salt, *ep;
struct utmp utmp;
-#ifdef DEBUG
- logprintf( "passwdauth called with name= %s, key= %s\n", name, key );
-#endif /* DEBUG */
+ LogPrintf(LogDEBUG, "PasswdAuth: Called with name %s, key %s\n", name, key );
if(( pwd = getpwnam( name ) ))
salt = pwd->pw_passwd;
else
{
endpwent();
- LogPrintf( LOG_LCP, "PasswdAuth - user (%s) not in passwd file\n", name );
+ LogPrintf( LogLCP, "PasswdAuth - user (%s) not in passwd file\n", name );
return 0; /* false - failed to authenticate (password not in file) */
}
@@ -58,7 +56,7 @@ char *name, *key;
if( name[0] != 'P' )
{
- LogPrintf( LOG_LCP, "PasswdAuth - user (%s) not a PPP user\n", name );
+ LogPrintf( LogLCP, "PasswdAuth - user (%s) not a PPP user\n", name );
endpwent();
return 0;
}
@@ -70,7 +68,7 @@ char *name, *key;
/* strcmp returns 0 if same */
if( strcmp( ep, pwd->pw_passwd ) != 0 )
{
- LogPrintf( LOG_LCP, "PasswdAuth - user (%s,%s) authentication failed\n",
+ LogPrintf( LogLCP, "PasswdAuth - user (%s,%s) authentication failed\n",
name, key );
endpwent();
return 0; /* false - failed to authenticate (didn't match up) */
@@ -100,7 +98,7 @@ char *name, *key;
login(&utmp);
(void)setlogin( pwd->pw_name );
- LogPrintf( LOG_LCP, "PasswdAuth has logged in user %s\n", name );
+ LogPrintf( LogLCP, "PasswdAuth has logged in user %s\n", name );
logged_in = 1;
}
diff --git a/usr.sbin/ppp/passwdauth.h b/usr.sbin/ppp/passwdauth.h
index da34ccb..05ba1f3 100644
--- a/usr.sbin/ppp/passwdauth.h
+++ b/usr.sbin/ppp/passwdauth.h
@@ -6,6 +6,6 @@
#ifndef _PASSWDAUTH_H_
#define _PASSWDAUTH_H_
-extern int PasswdAuth __P((char *, char *));
+extern int PasswdAuth(char *, char *);
#endif
diff --git a/usr.sbin/ppp/phase.h b/usr.sbin/ppp/phase.h
index 25614c4..2bee812 100644
--- a/usr.sbin/ppp/phase.h
+++ b/usr.sbin/ppp/phase.h
@@ -15,14 +15,13 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: phase.h,v 1.5 1997/02/22 16:10:44 peter Exp $
*
* TODO:
*/
#ifndef _PHASE_H_
#define _PHASE_H_
-#include "cdefs.h"
#define PHASE_DEAD 0 /* Link is dead */
#define PHASE_ESTABLISH 1 /* Establishing link */
@@ -33,6 +32,6 @@
int phase; /* Curent phase */
-extern void NewPhase __P((int));
+extern void NewPhase(int);
extern char *PhaseNames[];
#endif
diff --git a/usr.sbin/ppp/pred.c b/usr.sbin/ppp/pred.c
index d7fb09d..93d2a96 100644
--- a/usr.sbin/ppp/pred.c
+++ b/usr.sbin/ppp/pred.c
@@ -5,7 +5,7 @@
/*
*
- * $Id: pred.c,v 1.10 1997/05/10 01:22:18 brian Exp $
+ * $Id: pred.c,v 1.11 1997/06/01 11:35:04 brian Exp $
*
* pred.c -- Test program for Dave Rand's rendition of the
* predictor algorithm
@@ -130,9 +130,7 @@ Pred1Output(int pri, u_short proto, struct mbuf *bp)
fcs = ~fcs;
len = compress(bufp + 2, wp, orglen);
-#ifdef DEBUG
- logprintf("orglen (%d) --> len (%d)\n", orglen, len);
-#endif
+ LogPrintf(LogDEBUG, "Pred1Output: orglen (%d) --> len (%d)\n", orglen, len);
CcpInfo.orgout += orglen;
if (len < orglen) {
*hp |= 0x80;
@@ -174,7 +172,7 @@ struct mbuf *bp;
CcpInfo.compin += olen;
len &= 0x7fff;
if (len != len1) { /* Error is detected. Send reset request */
- LogPrintf(LOG_LCP_BIT, "%s: Length Error\n", CcpFsm.name);
+ LogPrintf(LogLCP, "%s: Length Error\n", CcpFsm.name);
CcpSendResetReq(&CcpFsm);
pfree(bp);
pfree(wp);
@@ -191,11 +189,10 @@ struct mbuf *bp;
*pp++ = *cp++; /* CRC */
*pp++ = *cp++;
fcs = HdlcFcs(INITFCS, bufp, wp->cnt = pp - bufp);
-#ifdef DEBUG
if (fcs != GOODFCS)
- logprintf("fcs = 0x%04x (%s), len = 0x%x, olen = 0x%x\n",
- fcs, (fcs == GOODFCS)? "good" : "bad", len, olen);
-#endif
+ LogPrintf(LogDEBUG, "Pred1Input: fcs = 0x%04x (%s), len = 0x%x,"
+ " olen = 0x%x\n", fcs, (fcs == GOODFCS)? "good" : "bad",
+ len, olen);
if (fcs == GOODFCS) {
wp->offset += 2; /* skip length */
wp->cnt -= 4; /* skip length & CRC */
@@ -213,7 +210,7 @@ struct mbuf *bp;
}
else
{
- LogDumpBp(LOG_HDLC, "Bad FCS", wp);
+ LogDumpBp(LogHDLC, "Bad FCS", wp);
CcpSendResetReq(&CcpFsm);
pfree(wp);
}
diff --git a/usr.sbin/ppp/pred.h b/usr.sbin/ppp/pred.h
index 1e49c58..356a034 100644
--- a/usr.sbin/ppp/pred.h
+++ b/usr.sbin/ppp/pred.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: pred.h,v 1.3 1997/02/22 16:10:48 peter Exp $
*
* TODO:
*/
@@ -23,7 +23,7 @@
#ifndef _PRED_H_
#define _PRED_H_
-extern void Pred1Output __P((int, u_short, struct mbuf *bp));
-extern void Pred1Input __P((struct mbuf*));
-extern void Pred1Init __P((int));
+extern void Pred1Output(int, u_short, struct mbuf *bp);
+extern void Pred1Input(struct mbuf*);
+extern void Pred1Init(int);
#endif
diff --git a/usr.sbin/ppp/route.c b/usr.sbin/ppp/route.c
index c475935..7fcbd49 100644
--- a/usr.sbin/ppp/route.c
+++ b/usr.sbin/ppp/route.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: route.c,v 1.12 1997/02/22 16:10:49 peter Exp $
+ * $Id: route.c,v 1.13 1997/05/10 01:22:18 brian Exp $
*
*/
#include <sys/types.h>
@@ -25,11 +25,7 @@
#include <sys/ioctl.h>
#include <sys/param.h>
#include <sys/socket.h>
-#if (BSD >= 199306)
#include <sys/sysctl.h>
-#else
-#include <sys/kinfo.h>
-#endif
#include <sys/time.h>
#include <errno.h>
@@ -45,6 +41,8 @@
#include <arpa/inet.h>
#include "log.h"
+#include "loadalias.h"
+#include "vars.h"
static int IfIndex;
@@ -70,7 +68,7 @@ struct in_addr mask;
s = socket(PF_ROUTE, SOCK_RAW, 0);
if (s < 0)
- logprintf("socket\n");
+ LogPrintf(LogERROR, "socket: %s", strerror(errno));
bzero(&rtmes, sizeof(rtmes));
rtmes.m_rtm.rtm_version = RTM_VERSION;
@@ -113,12 +111,11 @@ struct in_addr mask;
rtmes.m_rtm.rtm_msglen = nb;
wb = write(s, &rtmes, nb);
if (wb < 0) {
- LogPrintf(LOG_TCPIP_BIT, "Already set route addr dst=%x, gateway=%x\n"
+ LogPrintf(LogTCPIP, "Already set route addr dst=%x, gateway=%x\n"
,dst.s_addr, gateway.s_addr);
}
-#ifdef DEBUG
- logprintf("wrote %d: dst = %x, gateway = %x\n", nb, dst.s_addr, gateway.s_addr);
-#endif
+ LogPrintf(LogDEBUG, "wrote %d: dst = %x, gateway = %x\n", nb,
+ dst.s_addr, gateway.s_addr);
close(s);
}
@@ -127,12 +124,14 @@ p_sockaddr(sa, width)
struct sockaddr *sa;
int width;
{
- register char *cp;
- register struct sockaddr_in *sin = (struct sockaddr_in *)sa;
+ if (VarTerm) {
+ register char *cp;
+ register struct sockaddr_in *sin = (struct sockaddr_in *)sa;
- cp = (sin->sin_addr.s_addr == 0) ? "default" :
+ cp = (sin->sin_addr.s_addr == 0) ? "default" :
inet_ntoa(sin->sin_addr);
- printf("%-*.*s ", width, width, cp);
+ fprintf(VarTerm, "%-*.*s ", width, width, cp);
+ }
}
struct bits {
@@ -156,14 +155,16 @@ p_flags(f, format)
register int f;
char *format;
{
- char name[33], *flags;
- register struct bits *p = bits;
-
- for (flags = name; p->b_mask; p++)
- if (p->b_mask & f)
- *flags++ = p->b_val;
- *flags = '\0';
- printf(format, name);
+ if (VarTerm) {
+ char name[33], *flags;
+ register struct bits *p = bits;
+
+ for (flags = name; p->b_mask; p++)
+ if (p->b_mask & f)
+ *flags++ = p->b_val;
+ *flags = '\0';
+ fprintf(VarTerm, format, name);
+ }
}
int
@@ -176,11 +177,11 @@ ShowRoute()
int *lp;
int needed, nb;
u_long mask;
-#if (BSD >= 199306)
int mib[6];
-#endif
-#if (BSD >= 199306)
+ if (!VarTerm)
+ return 1;
+
mib[0] = CTL_NET;
mib[1] = PF_ROUTE;
mib[2] = 0;
@@ -188,28 +189,21 @@ ShowRoute()
mib[4] = NET_RT_DUMP;
mib[5] = 0;
if (sysctl(mib, 6, NULL, &needed, NULL, 0) < 0) {
- perror("sysctl-estimate");
+ LogPrintf(LogERROR, "sysctl: estimate: %s", strerror(errno));
return(1);
}
-#else
- needed = getkerninfo(KINFO_RT_DUMP, 0, 0, 0);
-#endif
+
if (needed < 0)
return(1);
sp = malloc(needed);
if (sp == NULL)
return(1);
-#if (BSD >= 199306)
if (sysctl(mib, 6, sp, &needed, NULL, 0) < 0) {
- perror("sysctl-getroute");
+ LogPrintf(LogERROR, "sysctl: getroute: %s", strerror(errno));
free(sp);
return(1);
}
-#else
- if (getkerninfo(KINFO_RT_DUMP, sp, &needed, 0) < 0)
- free(sp);
- return(1);
-#endif
+
ep = sp + needed;
for (cp = sp; cp < ep; cp += rtm->rtm_msglen) {
@@ -227,9 +221,7 @@ ShowRoute()
p_sockaddr(sa, 18);
lp = (int *)(sa->sa_len + (char *)sa);
if ((char *)lp < (char *)wp && *lp) {
-#ifdef DEBUG
- logprintf(" flag = %x, rest = %d", rtm->rtm_flags, *lp);
-#endif
+ LogPrintf(LogDEBUG, " flag = %x, rest = %d", rtm->rtm_flags, *lp);
wp = (u_char *)(lp + 1);
mask = 0;
for (nb = *(char *)lp; nb > 4; nb--) {
@@ -240,12 +232,12 @@ ShowRoute()
mask <<= 8;
}
}
- printf("%08lx ", mask);
+ fprintf(VarTerm, "%08lx ", mask);
p_flags(rtm->rtm_flags & (RTF_UP|RTF_GATEWAY|RTF_HOST), "%-6.6s ");
- printf("(%d)\n", rtm->rtm_index);
+ fprintf(VarTerm, "(%d)\n", rtm->rtm_index);
}
free(sp);
- return(1);
+ return 0;
}
/*
@@ -263,14 +255,10 @@ int all;
u_long mask;
int *lp, nb;
u_char *wp;
-#if (BSD >= 199306)
int mib[6];
-#endif
-#ifdef DEBUG
- logprintf("DeleteIfRoutes (%d)\n", IfIndex);
-#endif
-#if (BSD >= 199306)
+ LogPrintf(LogDEBUG, "DeleteIfRoutes (%d)\n", IfIndex);
+
mib[0] = CTL_NET;
mib[1] = PF_ROUTE;
mib[2] = 0;
@@ -278,12 +266,9 @@ int all;
mib[4] = NET_RT_DUMP;
mib[5] = 0;
if (sysctl(mib, 6, NULL, &needed, NULL, 0) < 0) {
- perror("sysctl-estimate");
+ LogPrintf(LogERROR, "sysctl: estimate: %s", strerror(errno));
return;
}
-#else
- needed = getkerninfo(KINFO_RT_DUMP, 0, 0, 0);
-#endif
if (needed < 0)
return;
@@ -292,28 +277,20 @@ int all;
if (sp == NULL)
return;
-#if (BSD >= 199306)
if (sysctl(mib, 6, sp, &needed, NULL, 0) < 0) {
- free(sp);
- perror("sysctl-getroute");
- return;
- }
-#else
- if (getkerninfo(KINFO_RT_DUMP, sp, &needed, 0) < 0) {
+ LogPrintf(LogERROR, "sysctl: getroute: %s", strerror(errno));
free(sp);
return;
}
-#endif
ep = sp + needed;
for (cp = sp; cp < ep; cp += rtm->rtm_msglen) {
rtm = (struct rt_msghdr *)cp;
sa = (struct sockaddr *)(rtm + 1);
-#ifdef DEBUG
- logprintf("addrs: %x, index: %d, flags: %x, dstnet: %x\n",
- rtm->rtm_addrs, rtm->rtm_index, rtm->rtm_flags,
- ((struct sockaddr_in *)sa)->sin_addr);
-#endif
+ LogPrintf(LogDEBUG, "DeleteIfRoutes: addrs: %x, index: %d, flags: %x,"
+ " dstnet: %x\n",
+ rtm->rtm_addrs, rtm->rtm_index, rtm->rtm_flags,
+ ((struct sockaddr_in *)sa)->sin_addr);
if (rtm->rtm_addrs != RTA_DST &&
(rtm->rtm_index == IfIndex) &&
(all || (rtm->rtm_flags & RTF_GATEWAY))) {
@@ -326,9 +303,8 @@ int all;
lp = (int *)(sa->sa_len + (char *)sa);
mask = 0;
if ((char *)lp < (char *)wp && *lp) {
-#ifdef DEBUG
- printf(" flag = %x, rest = %d", rtm->rtm_flags, *lp);
-#endif
+ LogPrintf(LogDEBUG, "DeleteIfRoutes: flag = %x, rest = %d",
+ rtm->rtm_flags, *lp);
wp = (u_char *)(lp + 1);
for (nb = *lp; nb > 4; nb--) {
mask <<= 8;
@@ -337,10 +313,9 @@ int all;
for (nb = 8 - *lp; nb > 0; nb--)
mask <<= 8;
}
-#ifdef DEBUG
- logprintf("## %s ", inet_ntoa(dstnet));
- logprintf(" %s %d\n", inet_ntoa(gateway), rtm->rtm_index);
-#endif
+ LogPrintf(LogDEBUG, "DeleteIfRoutes: Dest: %s\n", inet_ntoa(dstnet));
+ LogPrintf(LogDEBUG, "DeleteIfRoutes: Gw: %s\n", inet_ntoa(gateway));
+ LogPrintf(LogDEBUG, "DeleteIfRoutes: Index: %d\n", rtm->rtm_index);
if (dstnet.s_addr == INADDR_ANY) {
gateway.s_addr = INADDR_ANY;
mask = INADDR_ANY;
@@ -348,11 +323,9 @@ int all;
maddr.s_addr = htonl(mask);
OsSetRoute(RTM_DELETE, dstnet, gateway, maddr);
}
-#ifdef DEBUG
- else if (rtm->rtm_index == IfIndex) {
- logprintf("??? addrs: %x, flags = %x\n", rtm->rtm_addrs, rtm->rtm_flags);
- }
-#endif
+ else if(rtm->rtm_index == IfIndex)
+ LogPrintf(LogDEBUG, "DeleteIfRoutes: Ignoring (looking for index %d)\n",
+ IfIndex);
}
free(sp);
}
@@ -374,7 +347,7 @@ char *name;
s = socket(AF_INET, SOCK_DGRAM, 0);
if (s < 0) {
- perror("socket");
+ LogPrintf(LogERROR, "socket: %s", strerror(errno));
return(-1);
}
@@ -388,13 +361,11 @@ char *name;
oldbufsize = ifconfs.ifc_len;
bufsize += 1+sizeof(struct ifreq);
buffer = realloc((void *)buffer, bufsize); /* Make it bigger */
-#ifdef DEBUG
- logprintf ("Growing buffer to %d\n", bufsize);
-#endif
+ LogPrintf(LogDEBUG, "GetIfIndex: Growing buffer to %d\n", bufsize);
ifconfs.ifc_len = bufsize;
ifconfs.ifc_buf = buffer;
if (ioctl(s, SIOCGIFCONF, &ifconfs) < 0) {
- perror("IFCONF");
+ LogPrintf(LogERROR, "ioctl(SIOCGIFCONF): %s", strerror(errno));
free(buffer);
return(-1);
}
@@ -406,10 +377,9 @@ char *name;
for (len = ifconfs.ifc_len; len > 0; len -= sizeof(struct ifreq)) {
elen = ifrp->ifr_addr.sa_len - sizeof(struct sockaddr);
if (ifrp->ifr_addr.sa_family == AF_LINK) {
-#ifdef DEBUG
- logprintf("%d: %-*.*s, %d, %d\n", index, IFNAMSIZ, IFNAMSIZ, ifrp->ifr_name,
- ifrp->ifr_addr.sa_family, elen);
-#endif
+ LogPrintf(LogDEBUG, "GetIfIndex: %d: %-*.*s, %d, %d\n",
+ index, IFNAMSIZ, IFNAMSIZ, ifrp->ifr_name,
+ ifrp->ifr_addr.sa_family, elen);
if (strcmp(ifrp->ifr_name, name) == 0) {
IfIndex = index;
free(buffer);
diff --git a/usr.sbin/ppp/route.h b/usr.sbin/ppp/route.h
index 764042c..43f1011 100644
--- a/usr.sbin/ppp/route.h
+++ b/usr.sbin/ppp/route.h
@@ -17,11 +17,11 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: route.h,v 1.3 1997/02/22 16:10:50 peter Exp $
*
*/
#ifndef _ROUTE_H_
#define _ROUTE_H_
-int GetIfIndex __P((char *));
+int GetIfIndex(char *);
#endif
diff --git a/usr.sbin/ppp/sig.c b/usr.sbin/ppp/sig.c
index c54ea77..b9c1451 100644
--- a/usr.sbin/ppp/sig.c
+++ b/usr.sbin/ppp/sig.c
@@ -26,13 +26,12 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: sig.c,v 1.4 1997/02/25 14:05:10 brian Exp $
+ * $Id: sig.c,v 1.6 1997/03/13 12:45:33 brian Exp $
*
* TODO:
*
*/
-#include <sys/cdefs.h>
#include "sig.h"
#include <sys/types.h>
#include <signal.h>
@@ -60,7 +59,8 @@ sig_type pending_signal(int sig,sig_type fn) {
if (sig <= 0 || sig > NSIG) {
/* Oops - we must be a bit out of date (too many sigs ?) */
- logprintf("Eeek! %s:%s: I must be out of date!\n",__FILE__,__LINE__);
+ LogPrintf(LogALERT, "Eeek! %s:%s: I must be out of date!\n",
+ __FILE__,__LINE__);
return signal(sig,fn);
}
diff --git a/usr.sbin/ppp/sig.h b/usr.sbin/ppp/sig.h
index 42598a6..1584edc 100644
--- a/usr.sbin/ppp/sig.h
+++ b/usr.sbin/ppp/sig.h
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: sig.h,v 1.5 1997/02/25 14:05:13 brian Exp $
+ * $Id: sig.h,v 1.7 1997/03/13 12:45:35 brian Exp $
*
* TODO:
*
@@ -35,7 +35,7 @@
typedef void (*sig_type)(int);
/* Call this instead of signal() */
-extern sig_type pending_signal __P((int, sig_type));
+extern sig_type pending_signal(int, sig_type);
/* Call this when you want things to *actually* happen */
-extern void handle_signals __P((void));
+extern void handle_signals(void);
diff --git a/usr.sbin/ppp/slcompress.c b/usr.sbin/ppp/slcompress.c
index d0c5883..39babc9 100644
--- a/usr.sbin/ppp/slcompress.c
+++ b/usr.sbin/ppp/slcompress.c
@@ -17,13 +17,13 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: slcompress.c,v 1.8 1997/02/22 16:10:54 peter Exp $
*
* Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
* - Initial distribution.
*/
#ifndef lint
-static char const rcsid[] = "$Id$";
+static char const rcsid[] = "$Id: slcompress.c,v 1.8 1997/02/22 16:10:54 peter Exp $";
#endif
#include "defs.h"
@@ -32,6 +32,8 @@ static char const rcsid[] = "$Id$";
#include <netinet/tcp.h>
#include <netinet/ip.h>
#include "slcompress.h"
+#include "loadalias.h"
+#include "vars.h"
struct slstat slstat;
@@ -139,28 +141,19 @@ sl_compress_tcp(m, ip, comp, compress_cid)
* set). (We assume that the caller has already made sure the
* packet is IP proto TCP).
*/
-#ifdef DEBUG
if ((ip->ip_off & htons(0x3fff)) || m->cnt < 40) {
- logprintf("??? 1 ip_off = %x, cnt = %d\n", ip->ip_off, m->cnt);
- DumpBp(m);
+ LogPrintf(LogDEBUG, "??? 1 ip_off = %x, cnt = %d\n",
+ ip->ip_off, m->cnt);
+ LogDumpBp(LogDEBUG, "", m);
return (TYPE_IP);
}
-#else
- if ((ip->ip_off & htons(0x3fff)) || m->cnt < 40)
- return (TYPE_IP);
-#endif
th = (struct tcphdr *)&((int *)ip)[hlen];
-#ifdef DEBUG
if ((th->th_flags & (TH_SYN|TH_FIN|TH_RST|TH_ACK)) != TH_ACK) {
- logprintf("??? 2 th_flags = %x\n", th->th_flags);
- DumpBp(m);
+ LogPrintf(LogDEBUG, "??? 2 th_flags = %x\n", th->th_flags);
+ LogDumpBp(LogDEBUG, "", m);
return (TYPE_IP);
}
-#else
- if ((th->th_flags & (TH_SYN|TH_FIN|TH_RST|TH_ACK)) != TH_ACK)
- return (TYPE_IP);
-#endif
/*
* Packet is compressible -- we're going to send either a
@@ -457,9 +450,7 @@ sl_uncompress_tcp(bufp, len, type, comp)
INCR(sls_compressedin)
cp = *bufp;
changes = *cp++;
-#ifdef DEBUG
- logprintf("compressed: changes = %02x\n", changes);
-#endif
+ LogPrintf(LogDEBUG, "compressed: changes = %02x\n", changes);
if (changes & NEW_C) {
/* Make sure the state index is in range, then grab the state.
* If we have a good state index, clear the 'discard' flag. */
@@ -512,9 +503,8 @@ sl_uncompress_tcp(bufp, len, type, comp)
if (changes & NEW_A)
DECODEL(th->th_ack)
if (changes & NEW_S) {
-#ifdef DEBUG
- logprintf("NEW_S: %02x, %02x, %02x\r\n", *cp, cp[1], cp[2]);
-#endif
+ LogPrintf(LogDEBUG, "NEW_S: %02x, %02x, %02x\n",
+ *cp, cp[1], cp[2]);
DECODEL(th->th_seq)
}
break;
@@ -523,9 +513,9 @@ sl_uncompress_tcp(bufp, len, type, comp)
DECODES(cs->cs_ip.ip_id)
} else
cs->cs_ip.ip_id = htons(ntohs(cs->cs_ip.ip_id) + 1);
-#ifdef DEBUG
- logprintf("id = %04x, seq = %08x\r\n", cs->cs_ip.ip_id, ntohl(th->th_seq));
-#endif
+
+ LogPrintf(LogDEBUG, "Uncompress: id = %04x, seq = %08x\n",
+ cs->cs_ip.ip_id, ntohl(th->th_seq));
/*
* At this point, cp points to the first byte of data in the
@@ -575,13 +565,16 @@ bad:
int
ReportCompress()
{
- printf("Out: %d (compress) / %d (total)",
+ if (!VarTerm)
+ return 1;
+
+ fprintf(VarTerm, "Out: %d (compress) / %d (total)",
slstat.sls_compressed, slstat.sls_packets);
- printf(" %d (miss) / %d (search)\n",
+ fprintf(VarTerm, " %d (miss) / %d (search)\n",
slstat.sls_misses, slstat.sls_searches);
- printf("In: %d (compress), %d (uncompress)",
+ fprintf(VarTerm, "In: %d (compress), %d (uncompress)",
slstat.sls_compressedin, slstat.sls_uncompressedin);
- printf(" %d (error), %d (tossed)\n",
+ fprintf(VarTerm, " %d (error), %d (tossed)\n",
slstat.sls_errorin, slstat.sls_tossed);
- return(1);
+ return 0;
}
diff --git a/usr.sbin/ppp/slcompress.h b/usr.sbin/ppp/slcompress.h
index 9442656..35b9199 100644
--- a/usr.sbin/ppp/slcompress.h
+++ b/usr.sbin/ppp/slcompress.h
@@ -1,7 +1,7 @@
/*
* Definitions for tcp compression routines.
*
- * $Header: /home/ncvs/src/usr.sbin/ppp/slcompress.h,v 1.4 1997/01/14 07:15:40 jkh Exp $
+ * $Header: /home/ncvs/src/usr.sbin/ppp/slcompress.h,v 1.5 1997/02/22 16:10:55 peter Exp $
*
* Copyright (c) 1989 Regents of the University of California.
* All rights reserved.
@@ -18,12 +18,11 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: slcompress.h,v 1.5 1997/02/22 16:10:55 peter Exp $
*
* Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
* - Initial distribution.
*/
-#include "cdefs.h"
#define MAX_STATES 16 /* must be > 2 and < 256 */
#define MAX_HDR 128 /* XXX 4bsd-ism: should really be 128 */
@@ -138,7 +137,7 @@ struct slstat {
/* flag values */
#define SLF_TOSS 1 /* tossing rcvd frames because of input err */
-extern void sl_compress_init __P((struct slcompress *));
+extern void sl_compress_init(struct slcompress *);
extern u_char sl_compress_tcp __P((struct mbuf *, struct ip *,
struct slcompress *, int compress_cid_flag));
-extern int sl_uncompress_tcp __P((u_char **, int, u_int, struct slcompress *));
+extern int sl_uncompress_tcp(u_char **, int, u_int, struct slcompress *);
diff --git a/usr.sbin/ppp/systems.c b/usr.sbin/ppp/systems.c
index 57a4e2d..0922dde 100644
--- a/usr.sbin/ppp/systems.c
+++ b/usr.sbin/ppp/systems.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: systems.c,v 1.10 1997/05/10 01:22:19 brian Exp $
+ * $Id: systems.c,v 1.11 1997/05/26 00:44:09 brian Exp $
*
* TODO:
*/
@@ -55,11 +55,11 @@ SetUserId()
{
if (!usermode) {
if (setreuid(euid, uid) == -1) {
- logprintf("unable to setreuid!\n");
+ LogPrintf(LogERROR, "unable to setreuid!\n");
exit(1);
}
if (setregid(egid, gid) == -1) {
- logprintf("unable to setregid!\n");
+ LogPrintf(LogERROR, "unable to setregid!\n");
exit(1);
}
usermode = 1;
@@ -71,11 +71,11 @@ SetPppId()
{
if (usermode) {
if (setreuid(uid, euid) == -1) {
- logprintf("unable to setreuid!\n");
+ LogPrintf(LogERROR, "unable to setreuid!\n");
exit(1);
}
if (setregid(gid, egid) == -1) {
- logprintf("unable to setregid!\n");
+ LogPrintf(LogERROR, "unable to setregid!\n");
exit(1);
}
usermode = 0;
@@ -103,7 +103,7 @@ char *file;
fp = fopen(line, "r");
}
if (fp == NULL) {
- fprintf(stderr, "can't open %s.\n", line);
+ LogPrintf(LogWARN, "OpenSecret: Can't open %s.\n", line);
SetPppId();
return(NULL);
}
@@ -126,7 +126,6 @@ char *file;
FILE *fp;
char *cp, *wp;
int n;
- int val = -1;
u_char olauth;
char line[200];
char filename[200];
@@ -145,15 +144,11 @@ char *file;
fp = fopen(filename, "r");
}
if (fp == NULL) {
-#ifdef DEBUG
- fprintf(stderr, "can't open %s.\n", filename);
-#endif
+ LogPrintf(LogDEBUG, "SelectSystem: Can't open %s.\n", filename);
SetPppId();
return(-1);
}
-#ifdef DEBUG
- fprintf(stderr, "checking %s (%s).\n", name, filename);
-#endif
+ LogPrintf(LogDEBUG, "SelectSystem: Checking %s (%s).\n", name, filename);
linenum = 0;
while (fgets(line, sizeof(line), fp)) {
@@ -168,7 +163,7 @@ char *file;
default:
wp = strpbrk(cp, ":\n");
if (wp == NULL) {
- fprintf(stderr, "Bad rule in %s (line %d) - missing colon.\n",
+ LogPrintf(LogWARN, "Bad rule in %s (line %d) - missing colon.\n",
filename, linenum);
exit(1);
}
@@ -179,9 +174,7 @@ char *file;
if (*cp == ' ' || *cp == '\t') {
n = strspn(cp, " \t");
cp += n;
-#ifdef DEBUG
- fprintf(stderr, "%s", cp);
-#endif
+ LogPrintf(LogCOMMAND, "%s: %s", name, cp);
SetPppId();
olauth = VarLocalAuth;
VarLocalAuth = LOCAL_AUTH;
@@ -202,7 +195,7 @@ char *file;
}
fclose(fp);
SetPppId();
- return(val);
+ return -1;
}
int
@@ -219,10 +212,11 @@ char **argv;
name = "default";
if (SelectSystem(name, CONFFILE) < 0) {
- printf("%s: not found.\n", name);
- return(-1);
+ LogPrintf(LogWARN, "%s: not found.\n", name);
+ return -1;
}
- return(1);
+
+ return 0;
}
int
@@ -231,6 +225,6 @@ struct cmdtab *list;
int argc;
char **argv;
{
- printf("save command is not implemented (yet).\n");
- return(1);
+ LogPrintf(LogWARN, "save command is not implemented (yet).\n");
+ return 1;
}
diff --git a/usr.sbin/ppp/systems.h b/usr.sbin/ppp/systems.h
index 823bdbb..ff85241 100644
--- a/usr.sbin/ppp/systems.h
+++ b/usr.sbin/ppp/systems.h
@@ -17,13 +17,13 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: systems.h,v 1.3 1997/02/22 16:10:57 peter Exp $
+ * $Id: systems.h,v 1.4 1997/05/26 00:44:09 brian Exp $
*
*/
#ifndef _SYSTEMS_H_
#define _SYSTEMS_H_
-extern int OrigUid __P((void));
-extern void GetUid __P((void));
-extern int SelectSystem __P((char *, char*));
+extern int OrigUid(void);
+extern void GetUid(void);
+extern int SelectSystem(char *, char*);
#endif
diff --git a/usr.sbin/ppp/timeout.h b/usr.sbin/ppp/timeout.h
index 4e77e20..fec8f86 100644
--- a/usr.sbin/ppp/timeout.h
+++ b/usr.sbin/ppp/timeout.h
@@ -15,14 +15,13 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: timeout.h,v 1.9 1997/02/22 16:10:58 peter Exp $
*
* TODO:
*/
#ifndef _TIMEOUT_H_
#define _TIMEOUT_H_
-#include "cdefs.h"
#define TICKUNIT 100000 /* Unit in usec */
#define SECTICKS (1000000/TICKUNIT)
@@ -43,10 +42,12 @@ struct pppTimer {
struct pppTimer *TimerList;
-extern void StartTimer __P((struct pppTimer *));
-extern void StopTimer __P((struct pppTimer *));
-extern void TimerService __P((void));
-extern void InitTimerService __P((void));
-extern void TermTimerService __P((void));
-extern void StartIdleTimer __P((void));
+extern void StartTimer(struct pppTimer *);
+extern void StopTimer(struct pppTimer *);
+extern void TimerService(void);
+extern void InitTimerService(void);
+extern void TermTimerService(void);
+extern void StartIdleTimer(void);
+extern void UpdateIdleTimer(void);
+extern void ShowTimers();
#endif /* _TIMEOUT_H_ */
diff --git a/usr.sbin/ppp/timer.c b/usr.sbin/ppp/timer.c
index fbc46d9..00eaa49 100644
--- a/usr.sbin/ppp/timer.c
+++ b/usr.sbin/ppp/timer.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: timer.c,v 1.15 1997/05/09 20:48:21 brian Exp $
+ * $Id: timer.c,v 1.16 1997/05/10 01:22:19 brian Exp $
*
* TODO:
*/
@@ -31,7 +31,6 @@
#include "sig.h"
void StopTimerNoBlock( struct pppTimer *);
-void ShowTimers(void);
void
StopTimer( struct pppTimer *tp )
@@ -45,6 +44,7 @@ StopTimer( struct pppTimer *tp )
sigsetmask(omask);
#endif
}
+
void
StartTimer(tp)
struct pppTimer *tp;
@@ -61,17 +61,14 @@ struct pppTimer *tp;
StopTimerNoBlock(tp);
}
if (tp->load == 0) {
-#ifdef DEBUG
- logprintf("timer %x has 0 load!\n", tp);
-#endif
+ LogPrintf(LogDEBUG, "timer %x has 0 load!\n", tp);
sigsetmask(omask);
return;
}
pt = NULL;
for (t = TimerList; t; t = t->next) {
-#ifdef DEBUG
- logprintf("StartTimer: %x(%d): ticks: %d, rest: %d\n", t, t->state, ticks, t->rest);
-#endif
+ LogPrintf(LogDEBUG, "StartTimer: %x(%d): ticks: %d, rest: %d\n",
+ t, t->state, ticks, t->rest);
if (ticks + t->rest >= tp->load)
break;
ticks += t->rest;
@@ -80,9 +77,8 @@ struct pppTimer *tp;
tp->state = TIMER_RUNNING;
tp->rest = tp->load - ticks;
-#ifdef DEBUG
- logprintf("Inserting %x before %x, rest = %d\n", tp, t, tp->rest);
-#endif
+ LogPrintf(LogDEBUG, "StartTimer: Inserting %x before %x, rest = %d\n",
+ tp, t, tp->rest);
/* Insert given *tp just before *t */
tp->next = t;
if (pt) {
@@ -111,9 +107,8 @@ struct pppTimer *tp;
* So just marked as TIMER_STOPPED.
* Do not change tp->enext!! (Might be Called by expired proc)
*/
-#ifdef DEBUG
- logprintf("StopTimer: %x, next = %x state=%x\n", tp, tp->next, tp->state);
-#endif
+ LogPrintf(LogDEBUG, "StopTimer: %x, next = %x state=%x\n",
+ tp, tp->next, tp->state);
if (tp->state != TIMER_RUNNING) {
tp->next = NULL;
tp->state = TIMER_STOPPED;
@@ -133,9 +128,9 @@ struct pppTimer *tp;
}
if (t->next)
t->next->rest += tp->rest;
- } else {
- logprintf("Oops, timer not found!!\n");
- }
+ } else
+ LogPrintf(LogERROR, "Oops, timer not found!!\n");
+
tp->next = NULL;
tp->state = TIMER_STOPPED;
}
@@ -145,9 +140,8 @@ TimerService()
{
struct pppTimer *tp, *exp, *wt;
-#ifdef DEBUG
- ShowTimers();
-#endif
+ if (LogIsKept(LogDEBUG))
+ ShowTimers();
tp = TimerList;
if (tp) {
tp->rest--;
@@ -161,19 +155,15 @@ TimerService()
wt = tp->next;
tp->enext = exp;
exp = tp;
-#ifdef DEBUG
- logprintf("Add %x to exp\n", tp);
-#endif
+ LogPrintf(LogDEBUG, "TimerService: Add %x to exp\n", tp);
tp = wt;
} while (tp && (tp->rest == 0));
TimerList = tp;
if ( TimerList == NULL ) /* No timers ? */
TermTimerService(); /* Terminate Timer Service */
-#ifdef DEBUG
- logprintf("TimerService: next is %x(%d)\n",
+ LogPrintf(LogDEBUG, "TimerService: next is %x(%d)\n",
TimerList, TimerList? TimerList->rest : 0);
-#endif
/*
* Process all expired timers.
*/
@@ -199,11 +189,11 @@ ShowTimers()
{
struct pppTimer *pt;
- logprintf("---- Begin of Timer Service List---\n");
+ LogPrintf(LogDEBUG, "---- Begin of Timer Service List---\n");
for (pt = TimerList; pt; pt = pt->next)
- logprintf("%x: load = %d, rest = %d, state =%x\n",
+ LogPrintf(LogDEBUG, "%x: load = %d, rest = %d, state =%x\n",
pt, pt->load, pt->rest, pt->state);
- logprintf("---- End of Timer Service List ---\n");
+ LogPrintf(LogDEBUG, "---- End of Timer Service List ---\n");
}
#ifdef SIGALRM
@@ -274,9 +264,8 @@ void InitTimerService( void ) {
pending_signal(SIGALRM, (void (*)(int))TimerService);
itimer.it_interval.tv_sec = itimer.it_value.tv_sec = 0;
itimer.it_interval.tv_usec = itimer.it_value.tv_usec = TICKUNIT;
- if (setitimer(ITIMER_REAL, &itimer, NULL) == -1) {
- logprintf("Unable to set itimer.\n");
- }
+ if (setitimer(ITIMER_REAL, &itimer, NULL) == -1)
+ LogPrintf(LogERROR, "Unable to set itimer.\n");
}
void TermTimerService( void ) {
@@ -284,9 +273,8 @@ void TermTimerService( void ) {
itimer.it_interval.tv_usec = itimer.it_interval.tv_sec = 0;
itimer.it_value.tv_usec = itimer.it_value.tv_sec = 0;
- if (setitimer(ITIMER_REAL, &itimer, NULL) == -1) {
- logprintf("Unable to set itimer.\n");
- }
+ if (setitimer(ITIMER_REAL, &itimer, NULL) == -1)
+ LogPrintf(LogERROR, "Unable to set itimer.\n");
pending_signal(SIGALRM, SIG_IGN);
}
#endif
diff --git a/usr.sbin/ppp/vars.c b/usr.sbin/ppp/vars.c
index f9e4d1d..918fb7d 100644
--- a/usr.sbin/ppp/vars.c
+++ b/usr.sbin/ppp/vars.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: vars.c,v 1.17 1997/05/26 00:44:09 brian Exp $
+ * $Id: vars.c,v 1.18 1997/06/01 01:13:03 brian Exp $
*
*/
#include "fsm.h"
@@ -30,7 +30,7 @@
#include "defs.h"
char VarVersion[] = "Version 0.94";
-char VarLocalVersion[] = "$Date: 1997/05/26 00:44:09 $";
+char VarLocalVersion[] = "$Date: 1997/06/01 01:13:03 $";
/*
* Order of conf option is important. See vars.h.
@@ -53,7 +53,7 @@ struct pppvars pppVars = {
DEF_MRU, DEF_MTU, 0, MODEM_SPEED, CS8, MODEM_CTSRTS, 180, 30, 3,
RECONNECT_TIMER, RECONNECT_TRIES, REDIAL_PERIOD,
NEXT_REDIAL_PERIOD, 1, MODEM_DEV, BASE_MODEM_DEV,
- OPEN_ACTIVE, LOCAL_NO_AUTH,
+ OPEN_ACTIVE, LOCAL_NO_AUTH,0
};
int
@@ -61,122 +61,73 @@ DisplayCommand()
{
struct confdesc *vp;
- printf("Current configuration option settings..\n\n");
- printf("Name\t\tMy Side\t\tHis Side\n");
- printf("----------------------------------------\n");
+ if (!VarTerm)
+ return 1;
+
+ fprintf(VarTerm, "Current configuration option settings..\n\n");
+ fprintf(VarTerm, "Name\t\tMy Side\t\tHis Side\n");
+ fprintf(VarTerm, "----------------------------------------\n");
for (vp = pppConfs; vp->name; vp++)
- printf("%-10s\t%s\t\t%s\n", vp->name,
+ fprintf(VarTerm, "%-10s\t%s\t\t%s\n", vp->name,
(vp->myside == CONF_ENABLE)? "enable" : "disable",
(vp->hisside == CONF_ACCEPT)? "accept" : "deny");
- return(1);
+
+ return 0;
}
-int
-DisableCommand(list, argc, argv)
-struct cmdtab *list;
-int argc;
-char **argv;
+static int
+ConfigCommand(struct cmdtab *list, int argc, char **argv, int mine, int val)
{
struct confdesc *vp;
- int found = FALSE;
+ int err;
- if (argc < 1) {
- printf("disable what?\n");
- return(1);
- }
+ if (argc < 1)
+ return -1;
+
+ err = 0;
do {
- for (vp = pppConfs; vp->name; vp++) {
+ for (vp = pppConfs; vp->name; vp++)
if (strcasecmp(vp->name, *argv) == 0) {
- vp->myside = CONF_DISABLE;
- found = TRUE;
+ if (mine)
+ vp->myside = val;
+ else
+ vp->hisside = val;
+ break;
}
+
+ if (!vp->name) {
+ LogPrintf(LogWARN, "Config: %s: No such key word\n", *argv );
+ err++;
}
- if ( found == FALSE )
- printf("%s - No such key word\n", *argv );
- argc--; argv++;
+ argc--;
+ argv++;
} while (argc > 0);
- return(1);
+
+ return err;
}
int
-EnableCommand(list, argc, argv)
-struct cmdtab *list;
-int argc;
-char **argv;
+EnableCommand(struct cmdtab *list, int argc, char **argv)
{
- struct confdesc *vp;
- int found = FALSE;
-
- if (argc < 1) {
- printf("enable what?\n");
- return(1);
- }
- do {
- for (vp = pppConfs; vp->name; vp++) {
- if (strcasecmp(vp->name, *argv) == 0) {
- vp->myside = CONF_ENABLE;
- found = TRUE;
- }
- }
- if ( found == FALSE )
- printf("%s - No such key word\n", *argv );
- argc--; argv++;
- } while (argc > 0);
- return(1);
+ return ConfigCommand(list, argc, argv, 1, CONF_ENABLE);
}
int
-AcceptCommand(list, argc, argv)
-struct cmdtab *list;
-int argc;
-char **argv;
+DisableCommand(struct cmdtab *list, int argc, char **argv)
{
- struct confdesc *vp;
- int found = FALSE;
-
- if (argc < 1) {
- printf("accept what?\n");
- return(1);
- }
- do {
- for (vp = pppConfs; vp->name; vp++) {
- if (strcasecmp(vp->name, *argv) == 0) {
- vp->hisside = CONF_ACCEPT;
- found = TRUE;
- }
- }
- if ( found == FALSE )
- printf("%s - No such key word\n", *argv );
- argc--; argv++;
- } while (argc > 0);
- return(1);
+ return ConfigCommand(list, argc, argv, 1, CONF_DISABLE);
}
int
-DenyCommand(list, argc, argv)
-struct cmdtab *list;
-int argc;
-char **argv;
+AcceptCommand(struct cmdtab *list, int argc, char **argv)
{
- struct confdesc *vp;
- int found = FALSE;
+ return ConfigCommand(list, argc, argv, 0, CONF_ACCEPT);
+}
- if (argc < 1) {
- printf("enable what?\n");
- return(1);
- }
- do {
- for (vp = pppConfs; vp->name; vp++) {
- if (strcasecmp(vp->name, *argv) == 0) {
- vp->hisside = CONF_DENY;
- found = TRUE;
- }
- }
- if ( found == FALSE )
- printf("%s - No such key word\n", *argv );
- argc--; argv++;
- } while (argc > 0);
- return(1);
+int
+DenyCommand(struct cmdtab *list, int argc, char **argv)
+{
+ return ConfigCommand(list, argc, argv, 0, CONF_DENY);
}
int
@@ -185,10 +136,8 @@ struct cmdtab *list;
int argc;
char **argv;
{
- if (argc < 1) {
- printf("Please Enter passwd for manipulating.\n");
- return(1);
- }
+ if (argc != 1)
+ return -1;
switch ( LocalAuthValidate( SECRETFILE, VarShortHost, *argv ) ) {
case INVALID:
@@ -199,12 +148,12 @@ char **argv;
break;
case NOT_FOUND:
pppVars.lauth = LOCAL_AUTH;
- printf("WARING: No Entry for this system\n");
+ LogPrintf(LogWARN, "WARING: No Entry for this system\n");
break;
default:
pppVars.lauth = LOCAL_NO_AUTH;
- printf("Ooops?\n");
- break;
+ LogPrintf(LogERROR, "LocalAuthCommand: Ooops?\n");
+ return 1;
}
- return(1);
+ return 0;
}
diff --git a/usr.sbin/ppp/vars.h b/usr.sbin/ppp/vars.h
index 3c524f9..2f5b87a 100644
--- a/usr.sbin/ppp/vars.h
+++ b/usr.sbin/ppp/vars.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: vars.h,v 1.16 1997/05/26 00:44:10 brian Exp $
+ * $Id: vars.h,v 1.17 1997/06/01 01:13:04 brian Exp $
*
* TODO:
*/
@@ -67,15 +67,16 @@ struct pppvars {
int reconnect_tries; /* Attempt reconnect on carrier loss */
int redial_timeout; /* Redial timeout value */
int redial_next_timeout; /* Redial next timeout value */
- int dial_tries; /* Dial attempts before giving up, 0 == forever */
+ int dial_tries; /* Dial attempts before giving up, 0 == inf */
char modem_dev[20]; /* Name of device */
char *base_modem_dev; /* Pointer to base of modem_dev */
int open_mode; /* LCP open mode */
- #define LOCAL_AUTH 0x01
- #define LOCAL_NO_AUTH 0x02
+#define LOCAL_AUTH 0x01
+#define LOCAL_NO_AUTH 0x02
u_char lauth; /* Local Authorized status */
- #define DIALUP_REQ 0x01
- #define DIALUP_DONE 0x02
+ FILE *termfp; /* The terminal */
+#define DIALUP_REQ 0x01
+#define DIALUP_DONE 0x02
char dial_script[200]; /* Dial script */
char login_script[200]; /* Login script */
char auth_key[50]; /* PAP/CHAP key */
@@ -113,6 +114,7 @@ struct pppvars {
#define VarRedialTimeout pppVars.redial_timeout
#define VarRedialNextTimeout pppVars.redial_next_timeout
#define VarDialTries pppVars.dial_tries
+#define VarTerm pppVars.termfp
#define VarAliasHandlers pppVars.handler
#define VarGetNextFragmentPtr (*pppVars.handler.GetNextFragmentPtr)
diff --git a/usr.sbin/ppp/vjcomp.c b/usr.sbin/ppp/vjcomp.c
index ec1e585..3e02623 100644
--- a/usr.sbin/ppp/vjcomp.c
+++ b/usr.sbin/ppp/vjcomp.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: vjcomp.c,v 1.6 1997/02/22 16:11:05 peter Exp $
+ * $Id: vjcomp.c,v 1.7 1997/05/07 23:30:50 brian Exp $
*
* TODO:
*/
@@ -47,16 +47,12 @@ struct mbuf *bp;
int proto;
int cproto = IpcpInfo.his_compproto >> 16;
-#ifdef DEBUG
- logprintf("SendPppFrame: proto = %x\n", IpcpInfo.his_compproto);
-#endif
+ LogPrintf(LogDEBUG, "SendPppFrame: proto = %x\n", IpcpInfo.his_compproto);
if (((struct ip *)MBUF_CTOP(bp))->ip_p == IPPROTO_TCP
&& cproto== PROTO_VJCOMP) {
type = sl_compress_tcp(bp, (struct ip *)MBUF_CTOP(bp), &cslc, IpcpInfo.his_compproto & 0xff);
-#ifdef DEBUG
- logprintf("type = %x\n", type);
-#endif
+ LogPrintf(LogDEBUG, "SendPppFrame: type = %x\n", type);
switch (type) {
case TYPE_IP:
proto = PROTO_IP;
@@ -68,7 +64,7 @@ struct mbuf *bp;
proto = PROTO_VJCOMP;
break;
default:
- logprintf("unknown type %x\n", type);
+ LogPrintf(LogERROR, "Unknown frame type %x\n", type);
pfree(bp);
return;
}
@@ -132,10 +128,8 @@ int proto;
{
u_char type;
-#ifdef DEBUG
- logprintf("VjCompInput (%02x):\n", proto);
- DumpBp(bp);
-#endif
+ LogPrintf(LogDEBUG, "VjCompInput: proto %02x\n", proto);
+ LogDumpBp(LogDEBUG, "Raw packet info:", bp);
switch (proto) {
case PROTO_VJCOMP:
@@ -145,7 +139,7 @@ int proto;
type = TYPE_UNCOMPRESSED_TCP;
break;
default:
- logprintf("???\n");
+ LogPrintf(LogERROR, "VjCompInput...???\n");
return(bp);
}
bp = VjUncompressTcp(bp, type);
OpenPOWER on IntegriCloud