summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/modem.c
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1996-03-08 09:03:09 +0000
committerache <ache@FreeBSD.org>1996-03-08 09:03:09 +0000
commit60108c50eda0b8364cdd265fad8bf523a1a4d49f (patch)
tree434653e4c736dc05201645fd555da448e439f078 /usr.sbin/ppp/modem.c
parent9acf1cecfc141db5d0fc49519e5b2ed71a4a5996 (diff)
downloadFreeBSD-src-60108c50eda0b8364cdd265fad8bf523a1a4d49f.zip
FreeBSD-src-60108c50eda0b8364cdd265fad8bf523a1a4d49f.tar.gz
1) Add multi-phone dialing/redialing, several phones separated by ':'
2) Improve on-line help subsystem 3) Make 'term' mode works even carrier dropped (old code close line forever here) 4) Make 'term' mode 8bit clean. 5) Improve manual page 6) #ifdef DEBUG diagnostic about missing optional files. 7) Don't put interactive dialing info to logfile
Diffstat (limited to 'usr.sbin/ppp/modem.c')
-rw-r--r--usr.sbin/ppp/modem.c33
1 files changed, 24 insertions, 9 deletions
diff --git a/usr.sbin/ppp/modem.c b/usr.sbin/ppp/modem.c
index 9e7808c..9f09e97 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.11 1996/01/11 17:48:54 phk Exp $
+ * $Id: modem.c,v 1.12 1996/01/30 11:08:43 dfr Exp $
*
* TODO:
*/
@@ -49,7 +49,8 @@ static struct pppTimer ModemTimer;
static char uucplock[10];
extern int uu_lock(), uu_unlock();
-extern void PacketMode();
+extern void PacketMode(), TtyTermMode(), TtyCommandMode();
+extern int TermMode;
#define Online (mbits & TIOCM_CD)
@@ -216,6 +217,15 @@ DownConnection()
CloseModem();
LcpDown();
connect_time = 0;
+ if (TermMode) {
+ modem = OpenModem(mode);
+ if (modem < 0) {
+ printf("failed to open modem.\n");
+ modem = 0;
+ TtyCommandMode(1);
+ }
+ TtyTermMode();
+ }
}
/*
@@ -454,7 +464,7 @@ int mode;
rstio.c_cflag |= VarParity;
cfsetspeed(&rstio, IntToSpeed(VarSpeed));
}
- rstio.c_iflag |= (IGNBRK | ISTRIP | IGNPAR | IXON | IXOFF);
+ rstio.c_iflag |= (IGNBRK | IGNPAR | IXON | IXOFF);
rstio.c_iflag &= ~(BRKINT|ICRNL|IXANY|IMAXBEL);
rstio.c_lflag = 0;
@@ -727,18 +737,23 @@ DialModem()
strcpy(ScriptBuffer, VarDialScript);
if (DoChat(ScriptBuffer) > 0) {
- fprintf(stderr, "dial OK!\n");
+ if ((mode & (MODE_INTER|MODE_AUTO)) == MODE_INTER)
+ fprintf(stderr, "dial OK!\n");
strcpy(ScriptBuffer, VarLoginScript);
if (DoChat(ScriptBuffer) > 0) {
- fprintf(stderr, "login OK!\n");
+ if ((mode & (MODE_INTER|MODE_AUTO)) == MODE_INTER)
+ fprintf(stderr, "login OK!\n");
return(1);
} else {
- fprintf(stderr, "login failed.\n");
+ if ((mode & (MODE_INTER|MODE_AUTO)) == MODE_INTER)
+ fprintf(stderr, "login failed.\n");
}
ModemTimeout(); /* Dummy call to check modem status */
}
- else
- fprintf(stderr, "dial failed.\n");
+ else {
+ if ((mode & (MODE_INTER|MODE_AUTO)) == MODE_INTER)
+ fprintf(stderr, "dial failed.\n");
+ }
HangupModem(0);
return(0);
}
@@ -782,6 +797,6 @@ ShowModemStatus()
printf("outqlen: %d\n", ModemQlen());
printf("DialScript = %s\n", VarDialScript);
printf("LoginScript = %s\n", VarLoginScript);
- printf("PhoneNumber = %s\n", VarPhone);
+ printf("PhoneNumber(s) = %s\n", VarPhoneList);
return(1);
}
OpenPOWER on IntegriCloud